當您確定沒有使用者錯誤,而且複製仍然完全無法運作或不穩定時,就該向我們傳送錯誤回報。我們需要從您那裡取得盡可能多的資訊,才能追蹤錯誤。請花一些時間和精力準備一份良好的錯誤回報。
如果您有一個可重複的測試案例,可以示範錯誤,請依照第 1.6 節「如何回報錯誤或問題」中的指示,將其輸入我們的錯誤資料庫中。如果您有「「幻影」」問題 (您無法隨意複製的問題),請使用下列程序
確認沒有使用者錯誤。例如,如果您在複製執行緒之外更新複本,資料會失去同步,而且您可能會在更新時發生唯一鍵違規。在這種情況下,複製執行緒會停止並等待您手動清理表格,使其恢復同步。這不是複製問題。這是外部干擾導致複製失敗的問題。
確保複本正在執行且已啟用二進位記錄 (
log_bin
系統變數),並啟用--log-replica-updates
選項,這會導致複本將從來源接收的更新記錄到其自己的二進位記錄中。這些設定是預設值。在重設複製狀態之前儲存所有證據。如果我們沒有任何資訊或只有粗略的資訊,我們就很難或不可能追蹤問題。您應收集的證據是
來源的所有二進位記錄檔
複本的所有二進位記錄檔
您發現問題時來源的
SHOW BINARY LOG STATUS
輸出您發現問題時複本的
SHOW REPLICA STATUS
輸出來源和複本的錯誤記錄
使用 mysqlbinlog 來檢查二進位記錄。下列項目應有助於找出問題陳述式。
log_file
和log_pos
是SHOW REPLICA STATUS
中的Master_Log_File
和Read_Master_Log_Pos
值。$> mysqlbinlog --start-position=log_pos log_file | head
在您收集到問題的證據後,請先嘗試將其隔離為單獨的測試案例。然後依照第 1.6 節「如何回報錯誤或問題」中的指示,將問題連同盡可能多的資訊輸入我們的錯誤資料庫中。