MySQL主从复制全面解析及应用演练


Mysql复制

Mysql内建的复制功能是构建大型、高性能应用程序的基础。Mysql支持单向、异步复制,复制过程中一台服务器充当主服务器,而另外一个或多个服务器充当从服务器。这不仅仅对高性能的程序有益,对其他任务也方便,比如远程共享数据、保持“热备”等等。
复制解决的基本问题是让一台服务器的数据和另外的服务器保持同步。主服务器和从服务器可以位于不同的网络拓扑中,还能对整台服务器、特定的数据库、甚至特定的表进行复制。

--------------------------------------------------------------------------------
在进入详细设置复制之前,先看看它实际是如何复制数据的。总体来说,复制有3个步骤:
1、主服务器把数据更改记录到二进制日志中。(这叫做二进制日志事件)
2、从服务器把主服务器的二进制日志拷贝到自己的中继日志中。
3、从服务器重放中继日志中的事件,把更改应用到自己的数据上。
这只是概述,每一个步骤都很复杂。下图更清晰描述了复制的过程。

第一步是在主服务器上记录二进制日志。在每个更新数据的事务完成之前,主服务器都会将数据更改记录到二进制日志中。即使事务在执行期间是交错的,mysql也会串行地将事务写入到二进制日志中。在把事件写入二进制日志之后,主服务器告诉存储引擎提交事务。
第二步是从服务器把主服务器的二进制日志拷贝到自己的硬盘上,进入所谓的“中继日志”中。首先,它启动一个工作线程,叫I/O线程,这个I/O线程开启一个普通的客户端连接,然后启动一个特殊的二进制日志转储进程(它没有相应的SQL命令)。这个转储进程从主服务器的二进制日志中读取数据。它不会对事件进行轮询。如果3跟上了主服务器,就会进入休眠状态并等待有新的事件发生时主服务器发出的信号。I/O线程把数据写入从服务器的中继日志中。
第三步SQL线程读取中继日志,并且重放其中的事件,然后更新从服务器的数据。由于这个线程能跟上I/O线程,中继日志通常在操作系统的缓存中,所以中继日志的开销很低。SQL线程执行事件也可以被写入从服务器自己的二进制日志中,它对于有些场景很实用。

--------------------------------------------------------------------------------
本篇博文主要讲解Mysql的主从复制、半同步复制、基于SSL复制。

--------------------------------------------------------------------------------
环境介绍:

系统:CentOS6.4-x86_64
主服务器:node1:172.16.18.7
从服务器:node2:172.16.18.9
Mysql版本:mysql-5.5.33

--------------------------------------------------------------------------------
主从复制:

思路解析:
主服务器:创建具有复制权限的用户账号;设置server-id;启动二进制日志。
从服务器:启动中继日志;设置server-id;启动复制线程。
过程解析:
1、创建主从服务器并实现双机互信:
主服务器:
[root@node1~]# ssh-keygen -t rsa -P ''
[root@node1~]##ssh-copy-id -i .ssh/id_rsa.pub root@172.16.18.9

从服务器:
[root@node2~]# ssh-keygen -t rsa -P ''
[root@node2~]##ssh-copy-id -i .ssh/id_rsa.pub root@172.16.18.7

2、编辑主从服务器的hosts文件:
[root@node1~]# vim /etc/hosts
#####添加如下两项:###############
172.16.18.7node1.magedu.com  node1
172.16.18.9node2.magedu.com node2
#####保存并复制至node2上:########
[root@node1~]# scp /etc/hosts 172.16.18.9:/etc

3、查看时间并同步时间:
[root@node1 ~]#date;ssh node2 'date'

注意:必须保证时间一致,这样主从复制才不会实现时间间隔。

推荐阅读:

Ubuntu下Nginx做负载实现高性能WEB服务器5---MySQL主主同步

生产环境MySQL主主同步主键冲突处理

MySQL主从失败 错误Got fatal error 1236

MySQL主从复制,单台服务器上实施

 

继续阅读本文的精彩内容请看第2页

  • 1
  • 2
  • 3
  • 4
  • 下一页

相关内容