MySQL 複製:不要將失敗的查詢傳播到從屬伺服器

MySQL 複製:不要將失敗的查詢傳播到從屬伺服器

我有一個簡單的 MySQL 複製設置,其中有一個主伺服器和兩個從伺服器。有時,在主伺服器上執行的查詢會因重複的唯一按鍵或其他原因而失敗。我看到的是失敗的查詢被複製到從屬伺服器,這也會導致錯誤。每次都必須去解決這個問題,這很煩人而且很乏味,因為每次出現錯誤查詢時複製都會停止。

在我看來,如果主伺服器上的查詢失敗,那麼 MySQL 不應該將其傳播到從伺服器。 MySQL可以這樣設定嗎?如何?我嘗試過谷歌搜尋並瀏覽 MySQL 文檔,但我沒有看到它。

答案1

MySQL 複製透過 binlog 進行。只有成功的事務才會寫入 binlog,因此如果主伺服器上的查詢失敗,它不會出現在 binlog 中。這意味著此類查詢不會出現在副本上。如果您出現錯誤,例如由於沒有用於更新的列(等)而導致從機 1 上的複製停止,那麼這意味著您的主伺服器和從伺服器是不同的。您應該安裝 percona-toolkit,並使用 pt-table-checksum 檢查您的表。

相關內容