Mysql

什麼是穩定、防故障、可擴展的 galera 集群實現

  • July 15, 2015

**上下文:**我們正在使用帶有(僅)2 個主節點的 MariaDB Gallera 集群用於 Web 應用程序。昨晚我們遇到了電源故障,現在我們似乎無法恢復數據,並發現兩個節點上的數據庫都已損壞。我們對這種設置的最初印像是,如果一個節點出現故障,另一個節點將迅速充當主節點。

我的問題是,

  1. 有沒有辦法設置一個集群,所以如果其中一個節點出現故障,總會有一個備份節點自動複製?特別是如果出現電源故障。
  2. 畫廊集群的正確實現是什麼?

我們正在使用一個有 5 個節點的 Galera 集群,這些節點前面有一個負載均衡器,即不斷檢查所有節點。我們的配置是我們只有一個節點為來自負載均衡器的連接提供寫入和讀取目標,而其他節點處於熱備用狀態。但是當然 Galera 也支持多主讀寫,所以你可以根據自己的喜好進行調整。

最小集群大小需要為 3,因為當節點之間的連接因任何原因斷開時,它必須為奇數以避免出現裂腦情況。(您也可以使用仲裁器,但更簡單的設置是使用至少 3 個適當的集群節點。)我們使用 5 個節點,以便更輕鬆地升級集群並提高彈性。

Galera 還支持 WAN 上的集群,但這需要對伺服器設置進行一些額外的調整,以免破壞伺服器性能。通常,具有 3 個以上節點且具有冗餘網路和電源的集群應該適合應用程序。

您在問題中沒有說的一些事情是您在 Galera 集群上使用的數據庫引擎的類型。看到你有腐敗,我想可能是MyISAM?如果是這種情況,您需要遷移到使用 InnoDB,因為 Galera 實際上不支持 MyISAM。它還具有其他一些其他好處,例如更具彈性的寫入,即使在集群實際上應該分裂並且您需要恢復數據庫的不太可能的情況下也可以避免數據損壞。

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