Replication
我可以逐步升級 MariaDB 複製基礎設施嗎?
我有 2 個主人和 1 個奴隸(從兩個主人那裡複製)。
M1- MariaDB 10.4.11 M2- MariaDB 10.4.16 S1- MariaDB 10.4.12
我想將此 LIVE 系統升級到 10.5,停機時間可能為 0。這個想法是這樣的:
- 升級slave S1(這個主要用於備份,根本不用查詢)
- 將所有流量切換到 M2,停止 M1 併升級 M1
- 打開 M1 並從 M2 同步它 - 在這個階段,我將讓活動主 M2 執行舊的 10.4 MariaDB,但備用主 M1 和從 S1 都已經在 10.5
- 將所有流量切換到 M1,停止 M2 併升級 M2
- 從 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 複製。