内容简介:主从复制是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
以上所述就是小编给大家介绍的《数据库主从复制》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Windows API编程范例入门与提高
东方人华 / 清华大学出版社 / 2004-1-1 / 38.00
本书通过大量实用、经典的范例,以Visual Basic为开发平台由浅入深地介绍了Windows API编程的基本方法和大量的实用技巧。本书采用实例带动知识点的形式,使读者快速入门并逐步得到提高。本书每节即是一个实例,操作步骤详尽,所用到的源文件均可在网站下载。读者可以按照操作步骤完成每个实例的制作,并根据自己的喜好进行修改、举一反三。 本书内容翔实,凝结了作者多年的编程经验,既适合......一起来看看 《Windows API编程范例入门与提高》 这本书的介绍吧!