現在位置: 首頁 > MySQL > 正文

MySQL Replication 處理 Got fatal error 1236 from master & 驗證 binlog 資訊

最近遇到在 MySQL Replication 的時候遇到 Master / Slave 之間出現錯誤訊息

 

Error 1236 通常是出現在 binlog 的同步出現異常

Could not find first log file name in binary log index file 這個問題訊息告知在讀 binlog 的時候找不到對應的 binlog 檔案

 

Troubleshooting:

先確認 Master 和 Slave 的 binlog

  • Master

由此確認 master binlog 的檔案為 mysql-bin.000001,在進行確認 slave

  • Slave

找到 Master_Log_File 和 Relay_Master_Log_file 這兩項,發現 Master 和 Slave 的 binlog 竟不相同,所以導致 Slave 在向 Master 要求 binlog 的時候出現了找不到 mysql-bin.000012 這個檔案

 

針對這個狀況發生的可能性是 Master 進行 rebuild 過,造成 Slave 對應不上,由於 binlog 重建後也可能已經完全無法對應起來

你必須調整你的 Slave,使其和 Master 一致,若遇到這個狀況請直接重建 Slave Replication

 

 

驗證 Master / Slave binlog

要驗證 binlog 主要在於幾個關鍵的數值

  • Slave

  • Master_Log_File: 讀取 Master binlog 的檔案,和 Master binlog filename 一致
  • Read_Master_Log_Pos: 讀取 Master binlog 最後一筆的 end_log_pos 值 (也可以說他是 binlog 的 id 啦)
  • Relay_Log_File: Slave 自己的 binlog,可以用於 Replication 其他台 sub slave 使用
  • Relay_Log_Pos: 同 Relay_Log_File 是屬於 Slave 自己的 end_log_pos,可以用於 Replication 其他台 sub slave 使用
  • Relay_Master_Log_File: 準備讀取的 Master binlog 檔案,通常和 Master_Log_File 相同,但有可能因為 Master_Log_File超過檔案限制寫第二個檔案而改變。
  • Exec_Master_Log_Pos: 已寫入的 Master end_log_pos 值

 

 

有了以上這些就可以到 Master binlog 去驗證了

 

  • Master

File 必須和 Relay_Master_Log_File 一致 (通常也和 Master_Log_File 相同)

Position 和 Read_Master_Log_Pos,Exec_Master_Log_Pos 對應

 

如果要看的更詳細,也可以到 binlog 去查看每一筆的執行記錄

 

解析 binlog

binlog 可以從 資料表 或是 實體檔案 查看

  • 資料表

 

  • 實體檔案

由於 binlog 實體檔案是二進制的文件,所以必須使用 mysqlbinlog 來查看

  • at 133046:本身資料庫的 end_log_pos id (範例以 Slave binlog)
  • 160508 0:55:02:代表時間 2016年05月08日 0:55:02
  • server id:在這個 Replication 中 Master 的 server id = 1
  • end_log_pos:Master 的 Position
  • Query:執行的動作類型
  • thread_id:這有關 mysql thread 執行序
  • exec_time:執行時間
  • error_code:錯誤代碼,0 為沒有錯誤

 

文章連結: https://shazi.info/mysql-replication-%e8%99%95%e7%90%86-got-fatal-error-1236-from-master-%e9%a9%97%e8%ad%89-binlog-%e8%b3%87%e8%a8%8a/ | Mr. 沙先生

該文章由 shazi7804 於2016年05月08日發表在 MySQL 分類下, 你可以發表回文,並在保留原文地址及作者的情况下引用到你的網站或部落格。
原文轉載請註明: MySQL Replication 處理 Got fatal error 1236 from master & 驗證 binlog 資訊 | Mr. 沙先生
標籤: , ,

MySQL Replication 處理 Got fatal error 1236 from master & 驗證 binlog 資訊:給Mr.沙先生一點建議

發表回文