Ubuntu

將 MariaDB Galera 集群從 5.5 升級到 10.0 - 可以滾動升級嗎?

  • October 23, 2014

我已經進行了很好的搜尋,但找不到關於該主題的太多內容。我們希望將我們的實時 MariaDB 5.5 Galera 集群升級到 MariaDB 10.0 分支,理想情況下沒有任何停機時間。我們最初使用官方 APT 儲存庫(在 Ubuntu 上)安裝(並在 5.5 分支上升級)。

我發現這篇關於從 5.5 升級到 10.0 的有用文章,但它沒有在任何地方提到 Galera。有誰知道我們是否可以從 5.5 分支滾動升級到 10.0 分支?

謝謝你的幫助。

幾個月來我一直在問同樣的問題,也無法在網際網路上找到明確的答案。也許這意味著我比我應該更關心;也許我不應該進行數據庫伺服器維護……

所以我昨天被迫這樣做,一切都很好。這就是我的做法:

我使用循環技術一次升級伺服器。因此,將對集群中的每台伺服器重複這些步驟,一次一個。

使節點失效

關閉 MySQL。(service mysql stop在 CentOS 上)

解除安裝 Galera 伺服器

yum remove MariaDB-Galera-server在 CentOS 上。對我來說,解除安裝和重新安裝是必要的,因為包管理器讓我適合升級。你的旅費可能會改變。

必要時更新儲存庫

您將需要安裝或配置您的系統以指向具有更高版本 Galera 的儲存庫。請參閱 Galera 儲存庫配置頁面

安裝 Galera 伺服器 10.0

yum install MariaDB-Galera-server在 CentOS 上。完成安裝後,我還升級了系統上的所有其他軟體包,以幫助確保必要的客戶端庫等是最新的。

此外,如果您的軟體包管理器在解除安裝軟體時重命名中央配置文件,請確保在再次安裝 Galera 後撤消此操作。否則,對我來說,/etc/my.cnf.d/server.cnf不會有正確的資訊。

啟動新版本的 Galera

這對我來說似乎是最危險的一步,但進展順利。伺服器日誌可能會包含幾行關於某些內部表中的列。別擔心

升級內部架構

這是棘手的部分。您要確保應用於內部表的更新不會復製到集群中的其他節點。有兩個 wsrep 設置可以幫助解決這個問題。一個叫做wsrep_desync,它是第 10 版的新功能。它做了一些我不太了解的事情,這將有助於防止該節點在升級過程中減慢集群的其餘部分。另一個wsrep_on用於配置本地節點是否應將更改複製到集群中的其他節點。

通過在本地登錄數據庫來調整設置root

set global wsrep_desync = on;

set global wsrep_on = off;

現在您可以退回命令行並安全地升級內部架構。

mysql_upgrade --skip-write-binlog -u root -p

我使用該skip-write-binlog選項進一步幫助避免複製更新。

(可選)重建數據庫

我這樣做是因為過去的升級失敗等等。它不會花費太多時間,並有助於確保您的所有數據都是一致的並採用新格式。

mysqlcheck --optimize --all-databases -u root -p

將節點帶回集群

只需反轉wsrep_desyncwsrep_on設置,節點將與集群重新同步。重新登錄 MySQL 命令行客戶端並重新設置這些全域變數。

set global wsrep_desync = off;

set global wsrep_on = on;

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