【MySQL】保证复制高可用的一些重要参数


expire_logs_day s ,binlog清理的时间。
从库上relay-log-recovery = 1和relay-log-info-repository = TABLE; 保证了主从数据的一致性,不论从机怎么出错都能保证,主从一致。

为什么呢?

首先说SQL线程,SQL线程apply应用二进制日志,并且将binlog应用到的位置记录到relay-info.log中。

并且并不是relay log应用一次就刷盘写relay-log.info一次,而是一个参数指定,如下,意思是说回放events 10000次写一次盘。这个就是为什么从库crash了,出现1062错误。因为从库已经插入了数据,但是文件relay-log.info并没有记录文件,当重启后文件告诉数据库还要执行一次操作,就会出现这个主键重复插入的错误。所以这个参数设置为table的,就满足了一致性,避免了数据库和文件的不同步问题。

IO线程:
和relay_log_info_repository不同的是,单单把master_info_repository设置成table是不能解决,备库crash了,从IO线程接收日志的一致性问题,因为IO线程接收日志写的文件是relay log文件,而数据库接收到主库的日志到哪里写的是master-info.log文件,(同步情况由sync_master_info决定)这是两个不同的文件,比如当relay接收到了日志,为event2,但是此时master-info.log记录的是1,此时crash了,当重新启动从库时,master-info.log告诉数据库我才接收到1,又重新接收了一次2,这样就重复了,即便是 master_info_repository设置成table一样不解决问题。 但是报错时,show slave status。最终作用到的都是SQL线程报错。所以还要设置另外一个参数 relay-log-recovery=1



最后一个非常重要的参数:

把当前接收到的relay log清理掉。 然后从SQL Thread应用到的位置,重新拉取relay log。

但是要保证主库binlog要保留,保留时间要够,因为我见过的有的公司主从延迟一个月之久。
还有read-only的设置,5.7有个新的权限super_read_only参数,设置为on,大家都没有权限,dba也没有。

SQL 线程高可用

SQL 回放的位置写到 relay-info.log 中,没执行到一个 event ,就写一次这个文件,那么性能会不会很差啊?因为没有 fsync 所以文件记录的会落后,将 relay_log_info_repository=TABLE(5.6 才有 ) ,将这次造作放在数据库,原子操作。(从库配置)

写10000个event才fsync一次写盘,那么就有一问题,如果设置为1,有用吗?没用,有丢失一条记录的可能。

sync_relay_log_info:这个参数和sync_relay_log参数一样,当设置为1时,slave的I/O线程每次接收到master发送过来的binlog日志都要写入系统缓冲区,然后刷入relay-log.info里,这样是最安全的,因为在崩溃的时候,你最多会丢失一个事务,但会造成磁盘的大量I/O。当设置为0时,并不是马上就刷入relay-log.info里,而是由操作系统决定何时来写入,虽然安全性降低了,但减少了大量的磁盘I/O操作。

IO 线程的高可用

 

接收到一个 event ,写 master.log 文件,表示接受到的位置,然后再去写 relay log file ,这时候发送 crash ,又会有问题,同样可以存表 master_info_repository

 

master log 文件会落后, IO 线程会重新拉 master log 文件中后的 binlog ,重复拉日志, SQL 线程就报错了,最终错误的显示都是 SQL 线程。

Relay-log-recovery=1 ,将当前接受到的所有 relay log 清除掉。然后以 SQL 线程运行到的位置重新拉取 thread SQL 线程是可靠的,那么,还有什么问题呢?如果主库上的二进制日志没有了,那么也来不过来了,就有问题了,即便是基于 SQL 线程。但是线上有落后很久的情形。

master_info_repository=TABLE 从开启并行复制,也一定设置为 table ,性能有一倍的差距。

Read_only super_read_only 的区别,有 super_priv 权限的用户设置 read_only 还是可以写入的,

从库 super_read_only 也打


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29990276/viewspace-2057301/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29990276/viewspace-2057301/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值