MySQL级联复制(A-B-C)
MySQL主从结构实际中是⽤到最多的⼀种架构。新上的两台服务器B和C,要替换掉之前旧的服务器A,同时,B和C是新的主从关系。因此,配置成级联复制,来迁移数据,也⽅便切换。
架构图如下:
mysql无法连接到服务器master A ------> slave B ------> slave C
有这么情况发⽣了,服务器B可以正常复制服务器A的数据,服务器B和C主从状态Slave_IO_Running和Slave_SQL_Running都是yes的,但是服务器C却⽆法复制新的数据。
原因分析:
1. 检查服务器B有没有开启⼆进制⽇志log_bin
2. log_slave_updates是否启⽤
log_slave_updates是将从服务器从主服务器收到的更新记⼊到从服务器⾃⼰的⼆进制⽇志⽂件中。
上⾯的问题是由于没有启⽤log_slave_updates = 1导致的。
总结:
因此,对于mysql级联复制,上游的从服务器不仅仅要开启log_bin还要开启log_slave_updates,否则将导致下游的从服务器⽆法更新复制。
---------------------------------------------------------------------
MySQL主从复制⼏个重要的启动选项
html恐怖游戏网页版下载 (1) log-slave-updates
log-slave-updates这个参数⽤来配置从服务器的更新是否写⼊⼆进制⽇志,这个选项默认是不打开的,但是,如果这个从服务器B是服务器A的从服务器,同时还作为服务器C的主服务器,那么就需要开发这个选项,这样它的从服务器C才能获得它的⼆进制⽇志进⾏同步操作
(2) master-connect-retry
public函数的用法 master-connect-retry这个参数是⽤来设置在和主服务器连接丢失的时候,重试的时间间隔,默认是60秒
(3) read-onlyjava获取范围内随机数
read-only是⽤来限制普通⽤户对从数据库的更新操作,以确保从数据库的安全性,不过如果是超级⽤户依然可以对从数据库进⾏更新操作
(4) slave-skip-errors
在复制过程中,由于各种的原因,从服务器可能会遇到执⾏BINLOG中的SQL出错的情况,在默认情况下,服务器会停⽌复制进程,不再进⾏同步,等到⽤户⾃⾏来处理。
Slave-skip-errors的作⽤就是⽤来定义复制过程中从服务器可以⾃动跳过的错误号,当复制过程中遇到定义的错误号,就可以⾃动跳过,直接执⾏后⾯的SQL语句。
数组函数运行慢>api接口汇总 --slave-skip-errors=[err1,err2,…….|ALL]
但必须注意的是,启动这个参数,如果处理不当,很可能造成主从数据库的数据不同步,在应⽤中需要根据实际情况,如果对数据完整性要求不是很严格,那么这个选项确实可以减轻维护的成本
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论