Percona
Percona XtraDB Cluster 節點恢復
我一直在審查 XtraDB 集群,並使用 4 個實例在 Openstack 上製作了一個 PoC 環境,但在我的彈性測試期間它已經崩潰了。
根據 pxc 文件:http ://www.percona.com/doc/percona-xtradb-cluster/howtos/virt_sandbox.html涵蓋了 3 個節點安裝,我選擇了第 4 個。
初始設置完整的數據載入測試通過,所有節點使用 1.6GB 測試 sql 文件同步更新以載入數據庫。
節點的故障和恢復開始,該測試需要停止節點上的 mysql 服務,創建並隨後刪除數據庫以測試倖存的節點複製,並啟動已關閉的節點以重新同步。
這適用於節點 4、3、2。
根據 pxc 文件,Node1 本質上是一個控制器,不會重新加入集群。
所以我的問題如下:
- 如果倖存的節點已經將數據寫入它們,如何將控制器節點返回服務
- 以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 工作。