1. 程式人生 > >MySQL資料庫:RESET MASTER、RESET SLAVE、MASTER_INFO、RELAY_LOG_INFO

MySQL資料庫:RESET MASTER、RESET SLAVE、MASTER_INFO、RELAY_LOG_INFO

MySQL資料庫:RESET MASTER、RESET SLAVE、MASTER_INFO、RELAY_LOG_INFO

RESET MASTER
刪除所有index file中記錄的所有binlog檔案,將日誌索引檔案清空,建立一個新的日誌檔案,這個命令通常僅僅用於第一次用於搭建主從關係的時的主庫

注意 ;reset master 不同於purge binary log的兩處地方
1:reset master 將刪除日誌索引檔案中記錄的所有binlog檔案,建立一個新的日誌檔案 起始值從000001 開始,然而purge binary log 命令並不會修改記錄binlog的順序的數值
2:reset master 不能用於有任何slave正在執行的主從關係的主庫。因為在slave 執行時, reset master 命令不被支援,reset master 將master 的binlog從000001 開始記錄,
slave記錄的master log 則是reset master 時主庫最新的binlog,從庫會報錯無法找的指定的binlog檔案。


RESET SLAVE
reset slave 將使slave 忘記主從複製關係的位置資訊。該語句將被用於乾淨的啟動, 它刪除master.info檔案和relay-log.info 檔案以及所有的relay log 檔案並重新啟用一個新的relaylog檔案。
使用reset slave之前必須使用stop slave 命令將複製程序停止。

注:所有的relay log將被刪除不管他們是否被SQL thread程序完全應用(這種情況發生於備庫延遲以及在備庫執行了stop slave 命令),儲存複製連結資訊的master.info檔案將被立即清除,
如果SQL thread 正在複製臨時表的過程中,執行了stop slave ,並且執行了reset slave,這些被複制的臨時表將被刪除。

RESET SLAVE ALL
在 5.6 版本中 reset slave 並不會清理儲存於記憶體中的複製資訊比如 master host, master port, master user, or master password,也就是說如果沒有使用change master 命令做重新定向,執行start slave 還是會指向舊的master 上面。
當從庫執行reset slave之後,將mysqld shutdown 複製引數將被重置。

relay-log-info
記錄SQL執行緒讀取Master binlog的位置,用於Slave 宕機後根據檔案中記錄的pos點恢復Sql執行緒

master-info
記錄IO執行緒讀取已經讀取到的master binlog位置,用於slave宕機後IO執行緒根據檔案中的POS點重新拉取binlog日誌

sync_relay_log_info
執行多少個事務後將relay-log-info,sync一下檔案重新整理到磁碟

sync_master_info

如果下面兩個sync引數設定較大,當宕機時:
sync_master_info較大將導致重複拉取binlog日誌
sync_relay_log_info較大將導致重複執行binlog日誌

 

 

參考:

https://www.aliyun.com/jiaocheng/1405382.html

https://yq.aliyun.com/articles/233178