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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章