Mysql

MySQL 5.5 複製到 Galera/Percona XtraDB 集群

  • March 3, 2015

我們目前正在研究將我們目前的MySQL5.5 Master > 5 x Slaves(具有基於語句的複制,apx 250GB 數據並不斷增長)移動到 HA 集群選項。主要是為了提供更大的彈性、寫入擴展性以及更容易執行諸如優化表之類的管理工作,而無需使主伺服器離線。

我們已經(暫時)排除了MySQLndb Cluster,因為它需要對我們目前的數據庫結構進行太多更改(大量 BLOB 欄位以及其他問題)。

因此,我們正在將 Galera Cluster 或 Percona Cluster 視為替代方案,因為它們似乎可以做我們想做的事情,而沒有“太”陡峭的學習曲線。

我們希望首先將集群設置為主主系統的從屬(用於測試等),然後再將集群作為我們的主系統。這可能嗎?通讀文件似乎並沒有真正談論這方面的事情(除非我錯過了)。

是的,很有可能。

正如文件所說,Percona XtraDB 集群中至少應該有三個節點。您只需要三個節點中的一個節點。

  • 確保 PXC 中的所有節點都具有唯一的 server_id。

  • 確保您從中複製的 Master 具有來自 PXC 節點的唯一 server_id

  • 確保主節點和每個 PXC 節點都配置了以下內容

  • 確保主節點和每個 PXC 節點都使用binlog_format=ROW

選擇一個節點並將其設置為通過 指定為從站的數據庫伺服器CHANGE MASTER TO

如果您要設置任何復製過濾器,請將其限制為僅作為您的 Slave 的 PXC 節點。就個人而言,我不會在此設置中完全使用複製過濾器,因為 Percona 的 Galera 講師之一對此並不滿意

請注意,數據在同一時刻出現在所有節點上需要時間(請參閱Investigating MySQL Replication Latency in Percona XtraDB Cluster

順便說一句,您也可以將任何 PXC 用作 StandAlone Slaves 的 Master

抬頭#1

不要對充當 MySQL 從屬的 PXC 節點中的複制滯後感到驚訝。畢竟,三個節點必須寫入數據並最終保持一致,然後才能一起送出所有更改。有關更多資訊,請參閱遷移到 Percona XtraDB Cluster for MySQL 時遵循這些基礎知識

抬頭#2

由於您使用的是 MySQL 5.5,因此不要使用 PXC 5.6。使用 PXC 5.5。為什麼 ?MySQL 5.5 中基於行的 binlogging 有時不能被 MySQL 5.6 mysqld 程序正確解釋。這可能會中斷從 MySQL 5.5 到 MySQL 5.6 的複制。兩個月前我寫了一篇關於這個的文章。解決方法是切換到binlog_format=STATEMENT,但您不能對 Percona XtraDB Cluster 執行此操作,因為它需要binlog_format=ROW

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