MySQL之-詳解Replication的容量、故障排錯以及多線程方式傳輸二進制日志

一、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&gt;?stop?slave;  mysql&gt;?charge?master?to  	-&gt;?master_log_file='<relay_master_log_file>',  	-&gt;?master_log_pos=<exec_master_log_pos>;  mysql&gt;?start?slave;</exec_master_log_pos></relay_master_log_file>

4)如果Replcation工作在GTIDs模式下,則需要

mysql&gt;?stop?slave;  mysql&gt;?set?gtid_next='uuid:nexti_d';  mysql&gt;?begin;  mysql&gt;?commit;  mysql&gt;?set?gtid_next='automatic';  mysql&gt;?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&gt;?set?sql_log_bin=OFF;?(關閉二進制日志)  mysql&gt;?set?sql_log_bin=ON;?(開啟二進制日志)

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享