MySQL 配置延迟从库(master_delay)及疑似BUG

MySQL配置延迟从库,可以在从库设置master_delay参数,单位为秒:
change master to master_delay=86400;
执行之前在需要先stop slave,否则会报错,无法执行;
设置master_delay并重新开启复制start slave后,MySQL从库会清空原有的relay log,并根据上一次的应用位置,重新从主库拉取binlog。所以如果从库原本已经是延迟从库了,需要重新设置延迟数值时,重启从库复制以后,会发现原有的relay log被清空了,并重新生成了序号从1开始的relay log。但不用担心复制会被影响,因重新生成的relay log,是根据上一次从库停止时所应用到的主库log pos重新从主库拉取binlog的。
在5.7版本以后,设置master_delay可以不用完全停止从库复制,只需停止sql thread即可,即stop slave sql_thread,通过这种方式,从库就不会清空relay log并重新拉取主库binlog了。这样可以节省一些网络流量和IO资源。

延迟从库也可以在配置主从复制时指定,如:

change master to 
master_host='',
master_port=3306,
master_user='',
master_password='',
master_delay=86400,
master_auto_position=1;

从我的实践,有遇到延迟复制和并行复制同时开启的BUG,当延迟数值设置较大,同时开启并行复制,过一段时间之后,MySQL从库对延迟时间的判断就会出现异常,会超过所设置的延迟数值很长一段时间后,才应用一个relay log,然后停止,再等待一段比延迟数值大很多的时间,再应用relay log,导致从库复制的延迟越来越大,而且这些情况是已经确认没有大事务的影响。而且出现这种情况之后,无法进行从库复制的任何操作,例如stop slave也会无限期的hang住。最终是通过将slave_parallel_workers设为0,暂时规避了这种问题。上述情况在5.6,5.7版本都有出现。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MySQL 8从库并行复制是一种新的复制方式,可以提高复制性能。下面是MySQL主库和从库配置步骤: 1. 主库配置 在主库的my.cnf配置文件中添加以下参数: ``` binlog_format=ROW binlog_row_image=FULL gtid_mode=ON enforce_gtid_consistency=ON log_slave_updates=ON ``` 2. 从库配置从库的my.cnf配置文件中添加以下参数: ``` gtid_mode=ON enforce_gtid_consistency=ON binlog_format=ROW log_slave_updates=ON slave_parallel_workers=4 slave_parallel_type=LOGICAL_CLOCK ``` 其中,slave_parallel_workers表示从库使用多少个线程进行并行复制,slave_parallel_type表示并行复制的算法,这里选择了LOGICAL_CLOCK。 3. 主库和从库创建用户 在主库和从库中创建一个用于复制的用户,并赋予REPLICATION SLAVE的权限。 4. 主库备份 在主库上执行备份命令,例如: ``` mysqldump --all-databases --master-data > backup.sql ``` 5. 从库恢复 将备份文件拷贝到从库上,执行以下命令进行恢复: ``` mysql < backup.sql ``` 6. 从库连接主库 在从库上执行以下命令连接主库: ``` CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='repl', MASTER_PASSWORD='repl_password', MASTER_AUTO_POSITION=1; ``` 其中,MASTER_HOST为主库的IP地址,MASTER_USER和MASTER_PASSWORD为创建的复制用户的用户名和密码,MASTER_AUTO_POSITION表示使用GTID进行复制。 7. 启动从库复制 在从库上执行以下命令启动复制: ``` START SLAVE; ``` 至此,MySQL 8从库并行复制的主从库配置就完成了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值