加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL主从复制、基于SSL的主从复制、主主复制及半同步复制

发布时间:2016-07-30 18:51:28 所属栏目:MySql教程 来源:站长网
导读:MySQL复制分为主从复制,主主复制。 什么是主从复制 主从复制指有一台器做为主服务器,一台或多台服务器做为从服务器。从服务器不写入任何数据,数据的来源是主
MySQL复制分为主从复制,主主复制。

什么是主从复制

主从复制指有一台器做为主服务器,一台或多台服务器做为从服务器。从服务器不写入任何数据,数据的来源是主服务器。复制的目的是为了数据同步,如果从服务器也写入数据的话,在主从架构里,主服务器是不会复制从服务器的数据的,所以会造成数据的不同步,所以,从服务器不能写入数据。MySQL复制的基础,就是二进制日志,因为二进志日志里面,记录了所有能改变或者能潜在改变数据库数据的SQL语句,当从服务器把这些SQL语句复制过来之后,再执行一遍,数据就会跟主服务器相同了。所以,从服务器的MySQL版本,一定要比主服务器高或才跟主服务器相同,最好是主从版本一样,这样就不会因为不同版本,SQL语句不同,而造成错误。

什么是主主复制

主主复制是指,两台或多台MySQL服务器,都为主服务器,大家相互复制,这样的好处是,每台服务器,都可以进行数据的写入操作,而主从里面,从服务器是不能进行写操作的。主主复制的原理,跟主从复制差不多,只不过是数据之间,是相互复制,相互同步的。

不管是主从复制,还是主主复制,其复制过程,都是异步的。可以加快数据的查询,而对数据的写入,没有任何提高。做主从或者主主复制,也可以实现对数据的冗余,当从服务器DOWN机的时候,主服务器可以正常工作而不受任何影响。当主服务器DOWN机的时候,只需要将从服务器暂时切换为主服务器即可。也方便数据的备份,备份的时候,可以停止从服务器,然后对从服务器上的数据进行备份,备份完成后,再启用。

主从复制的实现

START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让主服务器发送二进制日志。

主服务器创建一个Binlog Dump线程将二进制日志中的内容发送到从服务器。从服务器I/O 线程读取主服务

器Binlog Dump线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继

日志。第3个线程是SQL 线程,从服务器使用此线程读取中继日志并执行日志中包含的更新。

SHOW PROCESSLIST语句可以查询在主服务器上和从服务器上发生的关于复制的信息。

从服务器在数据目录中另外创建两个状态文件master.info 和relay-log.info。状态文件保存

在硬盘上,从服务器关闭时不会丢失。下次从服务器启动时,读取这些文件以确定它已经从主服

务器读取了多少二进制日志,以及处理自己的中继日志的程度。

从服务器flush tables with read lock;之后,数据暂时就不能同步了,只有解锁之后,复制过来的语句,才会被执行。

从服务器可以不用关闭二进制日志,也可以不用开户中继日志,因为服务器会自动帮你开户或关闭。不关闭二进制日志,从主服务器复制过来的SQL语句,执行的时候,也不会被记录到二进制日志,只有在本机执行的SQL语句,才会被记录到二进制日志。中继日志默认存放在数据目录下,文件名为 主机名.relay-00000N。如果想保存到其它位置,可以在配置文件里面进行指定。

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读