mysql 5.7主从延迟 相关参数配置

一直以来,都是听到 mysql 5.7已 消除了延迟,但我们测试环境主从一直存在延迟。
找了很多原因,但一直不理想,直接到找参数:sync_relay_log ,在讨论主从延迟时,很少会说到这个参数。
因为它默认是 10000.也正是这样,容易被忽略。

×××××××××××××××××××××××××××××××××××××××××××××××××××××

innodb_flush_log_at_trx_commit:是 InnoDB 引擎特有的,
ib_logfile的刷新方式( ib_logfile:记录的是redo log和undo log的信息)

innodb_flush_log_at_trx_commit= 2
sync_binlog = 500

#sync_relay_log,这个参数用来保证relay log的安全 功能类似于 sync_binlog 参数
sql_thread 读取主节点同步过来的日志进行重解析为sql,并刷新到relay_log 文件中。
这个参数默认就是 10000 ,在不明所以的情况下,被设置成了 sync_relay_log=1 ,
坑太大,测试了半天才知道是这个参数引起的大延迟。
这个参数不常用,很少会被设置成1,被它害惨了。

sync_relay_log = 10000 #写10000个event才fsync一次写盘
sync_relay_log_info = 10000
sync_master_info = 10000

relay_log_recovery=1 #保证relay-log的完整性

#多线程 sql_thread 重解析,以加快同步
slave-parallel-type=LOGICAL_CLOCK #行级别多线程
slave-parallel-workers=16 #线程数量
master-info-repository=TABLE #
relay-log-info-repository=TABLE #

log_slave_updates=1

#缓存刷新方式,IO优化
innodb_flush_method=O_DIRECT

你可能感兴趣的:(MYSQL)