MySQL之-詳解Replication的容量、故障排錯以及多執行緒方式傳輸二進位日誌

黄舟
發布: 2017-03-14 16:45:39
原創
1141 人瀏覽過

一、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=&#39;<Relay_Master_Log_file>&#39;,
	-> master_log_pos=<Exec_Master_Log_Pos>;
mysql> start slave;
登入後複製

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

mysql> stop slave;
mysql> set gtid_next=&#39;uuid:nexti_d&#39;;
mysql> begin;
mysql> commit;
mysql> set gtid_next=&#39;automatic&#39;;
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; (开启二进制日志)
登入後複製

以上是MySQL之-詳解Replication的容量、故障排錯以及多執行緒方式傳輸二進位日誌的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!