Replication

我可以逐步升級 MariaDB 複製基礎設施嗎?

  • February 18, 2022

我有 2 個主人和 1 個奴隸(從兩個主人那裡複製)。

M1- MariaDB 10.4.11 M2- MariaDB 10.4.16 S1- MariaDB 10.4.12

我想將此 LIVE 系統升級到 10.5,停機時間可能為 0。這個想法是這樣的:

  1. 升級slave S1(這個主要用於備份,根本不用查詢)
  2. 將所有流量切換到 M2,停止 M1 併升級 M1
  3. 打開 M1 並從 M2 同步它 - 在這個階段,我將讓活動主 M2 執行舊的 10.4 MariaDB,但備用主 M1 和從 S1 都已經在 10.5
  4. 將所有流量切換到 M1,停止 M2 併升級 M2
  5. 從 M1 同步 M2 並將其保持為備用主機

我想我的主要問題是 - **MariaDB 10.5 <-> 10.4 複製兼容嗎?**我應該尋找任何特殊問題嗎?

謝謝!

快進幾個月,我想警告使用不同的主要版本進行複制。即使slave比master更新,因此應該保持兼容性,也有可能導致問題的SQL更改。我遇到的一個例子

UPDATE table SET count=1 WHERE offset=1

這個查詢在 MariaDB 10.4 上執行得很好。但是offset在 MariaDB 10.5 中添加了一個關鍵字,它不會執行,而是拋出一個錯誤。當然,如果你非常專業並且你逃避一切(就像你應該的那樣),那麼你有

UPDATE `table` SET `count`=1 WHERE `offset`=1

在這種情況下,不會有任何問題。

但是對於基於語句的複制,請記住,由於對 SQL 查詢的解釋不同,slave 可以停止複制。

MariaDB 副本可以從較舊的 master 複製。換一種方式是行不通的。

您應該添加一個步驟 2.5:停止從 M1 複製到 M2(即使它只是一個備用主機)。在第 4 步之後,M1 可以再次從 M2 複製。

引用自:https://dba.stackexchange.com/questions/279431