Percona

Percona XtraDB Cluster 節點恢復

  • April 6, 2013

我一直在審查 XtraDB 集群,並使用 4 個實例在 Openstack 上製作了一個 PoC 環境,但在我的彈性測試期間它已經崩潰了。

根據 pxc 文件:http ://www.percona.com/doc/percona-xtradb-cluster/howtos/virt_sandbox.html涵蓋了 3 個節點安裝,我選擇了第 4 個。

  1. 初始設置完整的數據載入測試通過,所有節點使用 1.6GB 測試 sql 文件同步更新以載入數據庫。

  2. 節點的故障和恢復開始,該測試需要停止節點上的 mysql 服務,創建並隨後刪除數據庫以測試倖存的節點複製,並啟動已關閉的節點以重新同步。

  3. 這適用於節點 4、3、2。

  4. 根據 pxc 文件,Node1 本質上是一個控制器,不會重新加入集群。

所以我的問題如下:

  1. 如果倖存的節點已經將數據寫入它們,如何將控制器節點返回服務
  2. 以4個節點為參考,有沒有辦法消除node1中的這個單點故障?(如果一個倖存的節點在控制器(node1)關閉/不同步的情況下重新啟動,該節點也將失敗)。

根據您在節點一上的症狀,您正在使用

wsrep_cluster_address=gcomm:// 

在您的配置文件中,這意味著該節點將啟動一個新集群。您可以通過 wsrep_cluster_size 變數在 node1 上為 1 和在其他節點上為 3 來確認這一點。如果你想將 node1 加入你已經存在的集群,你應該指定

wsrep_cluster_address=gcomm://(這裡是執行節點的ip)

在這種情況下,node1 將重新加入集群。

一些額外的想法:

  • 由於 PXC(Percona Xtradb Cluster)中的仲裁機制,不建議在 4 個節點上執行。建議使用奇數個節點,這樣在網路分裂的情況下,分裂集群的一部分將能夠擁有多數。
  • 您可以使用 wsrep_urls 代替 wsrep_cluster_address

$$ mysqld_safe $$部分。

免責聲明:我為 Percona 工作。

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