文章目录
- 一、mysql级联复制
- 1.复制server2上的mysql到server3的指定目录下
- 2.在server3上创建mysql用户并初始化、安装,编辑/etc/my.cnf文件,设置环境变量
- 3.备份数据库中已有的文件并导入server3数据库中
- 4.在server2上编辑/etc/my.cnf并重启mysql
- 5.在server2上授权
- 6.在server3上作slave设置,开启slave
- 7.在server1数据库中添加新的内容,看server3上是否同步
- 二、设置使用gtid进行复制
- 1.配置
- 2.测试
- 三、半同步复制
- 1.半同步复制下的两种模式
- 2.配置
一、mysql级联复制
这里我们使用三台虚拟机来做这个实验:
所谓级联复制是指采用A(B的master)->B(A的slave,C的master)->C(B的slave)
方式复制
在此次实验中A对应server1,B对应server2,C对应server3
1.复制server2上的mysql到server3的指定目录下
2.在server3上创建mysql用户并初始化、安装,编辑/etc/my.cnf文件,设置环境变量
3.备份数据库中已有的文件并导入server3数据库中
由于进行主从复制之前必须要保证数据库中的文件同步,因此需要先把之前在server1和server2上做主从复制时创建的数据表导入到
server3数据库
中以达到初始数据同步的目的
4.在server2上编辑/etc/my.cnf并重启mysql
关于log-slave-updates参数的详细解释可参考下面的链接:.
5.在server2上授权
6.在server3上作slave设置,开启slave
7.在server1数据库中添加新的内容,看server3上是否同步
主从复制机制:
主库中的I/O线程
负责记录主库二进制日志,从库中的I/O线程复杂将主库中的二进制日志复制到本地,之后由replication机制的SQL线程
读取relay-log
而执行二进制日志中的SQL语句,从而达到复制的目的,这个过程称为回放
二、设置使用gtid进行复制
Gtid采用了新的复制协议,旧协议是,首先从服务器上在一个特定的偏移量位置连接到主服务器上一个给定的二进制日志文件,然后主服务器再从给定的连接点开始发送所有的事件。
新协议有所不同,支持以全局统一事务ID (GTID)
为基础的复制。当在主库上提交事务或者被从库应用时,可以定位和追踪每一个事务。GTID复制是以全部事务为基础
,使得检查主从一致性变得非常简单。如果所有主库上提交的事务也同样提交到从库上,一致性就得到了保证。
相关原理参考链接:.
1.配置
2.测试
三、半同步复制
传统的复制模式属于异步复制,主库只管发送二进制日志,而不关心从库是否收到,这种复制方式虽然能够保证复制的速度很快,但无法保证主从数据的一致性,这在生产环境中是不可取的。而半同步方式是指当主库发送二进制日志到从库中时,从库
收到数据并存储到relay-log之后会发送一个ack确认
给master,这样就保证了主从数据的一致性
1.半同步复制下的两种模式
2.配置
再把server2上的I/O线程开启后server2和server3上又能同步server1上的数据,这就是半同步复制方式的优点:能够保证主从数据的一致性