Mysql

MySQL 軟體包升級 (Debian apt-get) 總是由於 mysql 模式的變化而中斷主-主複製

  • March 27, 2020

我在 2 台 Debian 伺服器上設置了主-主複製,它們複製所有內容,包括 mysql 數據庫本身(以便新使用者等也複製)。這通常工作得很好,除了大多數(如果不是全部)對 mysql 的 apt 升級涉及對 mysql 數據庫模式的一些更改,這會導致複製錯誤而停止複制。最終,我總是需要通過跳過每一側的錯誤語句來手動修復。這總是很耗時,而且我擔心手動操作會出錯(跳過太多語句、錯誤輸入 CHANGE MASTER 詳細資訊等)。

我可以做些什麼來確保將來對 MySQL 的 apt-get 更新能夠順利處理而不會導致複製問題?肯定有一個完善的最佳實踐嗎?

我不知道它是否適用於所有可能的升級方案,但我只是對此進行了測試,升級工作沒有任何複製問題:

# /etc/mysql/conf.d/binlog_ignoredb_mysql.cnf.disabled
# Rename this to end in .cnf prior to performing `apt-get upgrade`.
# Otherwise, its attempts to `ALTER TABLE users` will cause replication errors.
# After upgrade is complete, rename back to .disabled and then /etc/init.d/mysql restart

[mysqld]
binlog-ignore-db=mysql

請注意,我的測試是小幅升級(5.5.41 到 5.5.43)。

很高興知道哪些命令破壞了您的複制,但我想 mysql_upgrade 腳本將是那個流氓。如果是,您可以重建 mysql 包,在安裝後腳本中添加 –skip-write-binlog(5.6.7 後不需要)

但通常我永遠不會只是 apt-get 升級生產中的伺服器,停止從屬伺服器,升級它並重新連接它們。這就是禪道。

引用自:https://serverfault.com/questions/686025