目录
一、级联概念
1、原理
级联结构就是通过减少直接从属于 Master 的 Slave 数量,减轻 Master 的压力,分散复制请求,从而提高整体的复制效率。
2、级联复制的应用场景
跨机房复制,A—>B–|-->C(C跨机房),A挂,B提升为主,此时C不用做change master,缺点是复制延迟大,无法避免,库的拆分,某库压力很大,可以使用级联复制将其独立出
3、缺点
这种架构可以降低主库的负载,但是存在的问题是由于存在了多级复制,而主从复制由于是异步复制存在延迟问题,故最底层的从库会延迟更大,并且延迟随着级联层次的增大而增大,故如果读服务不能容忍太大的数据延迟,则不能采用这种架构模式
二、实验配置
主服务器A
vim /etc/my.cnf
server-id=1
log_bin = master-bin
grant replication slave on *.* to 'myslave'@'192.168.255.%' identified by '123456';
show master status;
slave服务器B
vim /etc/my.cnf
server-id = 2
read_only=ON #只读
log-slave-updates = true #用于C被同步
log_bin = master-bin
change master to master_host='192.168.255.142',master_user='myslave',master_password='123456',master_log_file='master-bin.000001',master_log_pos=457;
show slave status\G
//确保 IO 和 SQL 线程都是 Yes,代表同步正常。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
grant replication slave on *.* to 'myslave'@'192.168.255.%' identified by '123456';
show master status;
slave服务器C
vim /etc/my.cnf
server-id=3
read_only=ON
change master to master_host='192.168.255.150',master_user='myslave',master_password='123456',master_log_file='master-bin.000001',master_log_pos=452;
start slave;
show slave status\G
//确保 IO 和 SQL 线程都是 Yes,代表同步正常。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
结果测试
A数据会被B和C同步,为了看出差别,B新增数据的时候,C会同步,A不会