MariaDB 集群與 MySQL 的 Percona 集群
兩者之間的優缺點是什麼?我只能找到關於這兩種實現的資訊,而沒有關於集群的任何細節。
我目前正在實施一個 Percona 集群,但我目前唯一關心的是使用 MISAM 數據庫進行複制。我在這些伺服器上的 INNODB 中執行了幾個 wordpress 數據庫,但是當我需要從其他系統遷移數據庫時,它們有時完全或部分是 MYISAM,這導致我最近的設置出現了一些問題。
從 Percona 集群遷移到 MariaDB 集群是更好的選擇嗎?
兩個平台都使用相同的複制機制:Galera。在該連結的頁面上,您會注意到包含 PXC 和 MariaDB 集群的圖像。
Galera 庫提供事務複製。MyISAM 不進行交易,因此您現在可能遇到的問題很可能是相關的,並且在備用平台上不會有任何不同。
目前複製僅適用於 InnoDB 儲存引擎。任何對其他類型表的寫入,包括系統 (mysql.) 表,都不會被複製。但是,DDL 語句是在語句級別複製的,對 mysql. 表的更改將以這種方式複制。因此,您可以安全地發出:CREATE USER…,但發出:INSERT INTO mysql.user…,不會被複製。
— http://www.percona.com/doc/percona-xtradb-cluster/limitation.html
目前 MariaDB Galera Cluster 僅支持 InnoDB/XtraDB 儲存引擎。
— https://mariadb.com/kb/en/getting-started-with-mariadb-galera-cluster/
而且,當然,PXC 使用 XtraDB,Percona 的 InnoDB 兼容替代品(名稱中有“XtraDB”),MariaDB 也使用 Percona 的 XtraDB而不是 Oracle 的 InnoDB,儘管為了在兩個系統上兼容,儲存引擎仍然呼叫本身 InnoDB。
由於這兩個系統共享大量程式碼並且都旨在本質上是相互替代的,因此使用哪個平台的決定在很大程度上是一個見仁見智的問題。我個人更喜歡供應商“x”,這可能意味著我個人建議您使用 MariaDB,也可能意味著我個人建議堅持使用 PXC,但我實際上不需要告訴您我的偏好,因為這無關緊要——它主要基於意見、印象、文件和個性,而不是任何有價值的證據。
遷移 MyISAM 的最佳解決方案可能是將轉儲文件修改為
ENGINE=InnoDB
(以及任何其他必要的更改)或將它們暫存在獨立伺服器上,然後在嘗試將它們導入集群之前將它們轉換並導出為完全 InnoDB。如果 MyISAM 問題是您唯一關心的問題,甚至只是您最關心的問題,那麼 MariaDB Cluster 和 PXC 在這方面本質上是相同的——出於非常合理的原因,它們不支持它——這樣做是不可行的。