数据库主从复制

栏目: IT技术 · 发布时间: 4年前

内容简介:主从复制是MySQL中最重要的功能之一。主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。对于多级复制,数据库服务器即可充当主机,也可充当从机。MySQL主从复制的基础是主服务器对数据库修改记录二进制日志,从服务器通过主服务器的二进制日志自动执行更新。1.基于语句的复制主服务器上面执行的语句在从服务器上面再执行一遍

主从复制是 MySQL 中最重要的功能之一。主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。对于多级复制,数据库服务器即可充当主机,也可充当从机。MySQL主从复制的基础是主服务器对数据库修改记录二进制日志,从服务器通过主服务器的二进制日志自动执行更新。

主从复制的类型:

1.基于语句的复制

主服务器上面执行的语句在从服务器上面再执行一遍
存在的问题:时间上可能不完全同步造成偏差,执行语句的用户也可能不是同一个用户。

2.基于行的复制

把主服务器上面改编后的内容直接复制过去,而不关心到底改变该内容是由哪条语句引发的
存在的问题:比如一个工资表中有一万个用户,我们把每个用户的工资+1000,那么基于行的复制则要复制一万行的内容,由此造成的开销比较大,而基于语句的复制仅仅一条语句就可以了。

3.混合类型的复制

MySQL默认使用基于语句的复制,当基于语句的复制会引发问题的时候就会使用基于行的复制,MySQL会自动进行选择。

主从复制的原理:

主服务器上面的任何修改都会保存在二进制日志Binary log里面

从服务器上面启动一个I/O thread,连接到主服务器上面请求读取二进制日志,然后把读取到的二进制日志写到本地的一个Realy log(中继日志)里面。

从服务器上面开启一个SQL thread定时检查Realy log,如果发现有更改立即把更改的内容在本机上面执行一遍。

主从复制的步骤:

主服务器:ip:192.168.10.139  系统:Rhel7 数据库Maria DB            
从服务器:ip:192.168.10.129  系统:Centos6.5  数据库:MySQL

主服务器配置:

  • 修改主服务器配置文件 /etc/my.cnf  ,修改完后需要重启mysql服务
1 [mysqld]
2 log-bin=mysql-bin         //启用二进制日志 (必选)
3 server-id=139             //设置服务器唯一ID,一般取IP最后一段(必选)
4 binlog-do-db=140          //指定对db_nameA记录二进制日志 (可选) 
5 binlog-ignore-db=mysql    //指定不对db_namB记录二进制日志(可选)
  • 为从服务器添加mysql账户并配置权限,在主服务器上,必须为从服务器创建一个用来连接主服务器的用户,并设置replication slave权限
1 mysql>grant  replication  slave  on  *.*   to  backup@'192.168.10.129'   identified   by   '123';    
2  //创建backup用户,密码为123,并且配置好权限
  • 刷新权限:flush   privileges;
  • 验证是否开启主从复制:
1 select * from user where user = 'backup'  \G;
  • 查看主服务器正在使用二进制日志状态:
show master status;

从服务器配置 :

  • 修改从服务器配置文件 /etc/my.cnf  ,修改完后需要重启mysql服务:service  mysqld restart
1 [mysqld]
2 server-id=129              //必须服务器唯一ID,一般取IP最后一段
  • 进入数据库,设置主服务器信息:
1 mysql> change master to master_host='192.168.10.139',
2     -> master_user='backup',
3     -> master_password='123',
4     -> master_log_file='mysql-bin.000001',
5     -> master_log_pos=245;
  • 开启从服务器复制二进制日志,实现同步功能: slave  start ;
  • 验证数据库相关参数: show  slave  status  \G;

数据库的备份和还原:

衡量备份还原的指标:

  • RPO:恢复点目标,恢复的程度
  • RIO:恢复时间目标,恢复花费的时间

备份方式:

  • 冷备份:拷贝数据库目录,需要先停机再备份,对于在线不间断提供业务的不适用
  • 快照备份:lvm快照,mysql装在lvm创建的分区,可以热备份(在线备份),缺点在于所有的文件,包括数据、日志等需要存放在一个逻辑卷中,然后再对卷快照备份,只支持本地备份,生产环境用的也比较少
  • 逻辑备份: mysqldump工具,单线程备份,备份速度较慢;mydumper工具,mysqldump升级版,有限制条件

备份单个库:

  • 备份:
    mysqldump  -uroot  -p   dbname1> 1.sql
    
  • 还原:
    mysql  -uroot  -p   dbname2 < 1.sql
    

备份多个库:

  • 备份:
    mysqldump  -uroot  -p  --database  db1  db2 > 1.sql
    
  • 还原: 
    mysql  -uroot -p  < 1.sql
    

备份全部库:

  • 备份:
    mysqldump  -uroot  -p  --all-databases >  1.sql
    
  • 还原:
    mysql  -uroot  -p  <  1.sql
    

备份单个表:

  • 备份:
    mysqldump  dbname1  tb1 >  1.sql
    
  • 还原: 
    mysql  -uroot  -p   dbname2 <  1.sql
    

以上所述就是小编给大家介绍的《数据库主从复制》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Programming Collective Intelligence

Programming Collective Intelligence

Toby Segaran / O'Reilly Media / 2007-8-26 / USD 39.99

Want to tap the power behind search rankings, product recommendations, social bookmarking, and online matchmaking? This fascinating book demonstrates how you can build Web 2.0 applications to mine the......一起来看看 《Programming Collective Intelligence》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具