一、Replication容量
將replication暫停一段時間(m),再重新開啟,并觀察slave多久可以達到與master一致(n)。
replication容量=n:m
建議保持容量在3倍以上,即1:3
二、排除Replication故障
1、日志錯誤
1)大多數replication錯誤都是因為日志錯誤引起的。
2)主日志和中繼日志都可能會錯,辨別的方法:
#mysqlbinlog?MASTER_BINLOG_FILE?>?/dev/null #mysqlbinlog?SLAVE_BINLOG_FILE?>?/dev/null
2、跳過日志錯誤
1)很多問題都可能導致日志錯誤。有時候也可能日志本身沒有錯誤,SQL解析時出錯了(例如主從數據本來就不一致)。可以手動跳過日志錯誤,不過這樣做可能造成主從數據不一致。
2)如果是主日志錯誤,可以在Slave上執行(如果有多個錯誤可能要執行多次)。
mysql>?stop?slave; mysql>?set?global?sql_slave_skip_counter=1; mysql>?start?slave;
3)如果是中繼日志出錯,可以在Slave上通過show slave status G命令查看Replication狀態,根據日志信息跳過出錯的日志:
mysql>?stop?slave; mysql>?charge?master?to ->?master_log_file='<relay_master_log_file>', ->?master_log_pos=<exec_master_log_pos>; mysql>?start?slave;</exec_master_log_pos></relay_master_log_file>
4)如果Replcation工作在GTIDs模式下,則需要
mysql>?stop?slave; mysql>?set?gtid_next='uuid:nexti_d'; mysql>?begin; mysql>?commit; mysql>?set?gtid_next='automatic'; mysql>?start?slave;
注:uuid:nextid例如:’0470a4fd-93d1-11e3-86bf-4ec905bea80f:17’。
三、多線程方式傳輸二進制日志
1、MySQL5.6開始支持多線程方式傳輸二進制日志。
2、只能工作在GTIDs模式下。
3、只有對不同的庫執行的操作才能采用多線程傳輸。同一個庫下不同表的操作仍只能用單線程傳輸。
#vi?/etc/my.cnf [mysqld] slave_parallel-workers=N?(默認值為0,不開啟)
其他命令:
mysql>?set?sql_log_bin=OFF;?(關閉二進制日志) mysql>?set?sql_log_bin=ON;?(開啟二進制日志)
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END