Mysql

從 Percona XtraDB Cluster 到標準獨立從站的本地複制

  • January 29, 2014

我正在使用正常 MySQL 複製從三成員 Percona XtraDB 集群的一個節點複製到一個單獨的從屬節點。節點設置為以 ROW 模式寫入 binlog,log_slave_updates=true專門用於此。複製似乎工作正常。我仍然想知道,鑑於 XtraDB 是從站正在使用的 InnoDB 的擴展,是否存在某些更新無法複製的風險?複製到 XtraDB 從站是否值得,需要如何配置?我希望將本機非同步複製到從屬伺服器,因為它是一個分析數據庫,目標是從分析查詢中解除安裝生產 Percona 集群,因此它不應該只是一個正常集群成員。

當儲存引擎是 XtraDB 和 InnoDB 時,binlog 不包含不同的結構。

在互操作性的意義上,XtraDB 不是 InnoDB 的“擴展”——它是一個完全兼容的替代品,它以不同的方式處理一些內部操作,但無論它暴露在伺服器核心之外,它仍然是非常“InnoDB”。

對於它的價值,我採取了“datadir”——包括來自停止的 MySQL 伺服器的 ibdata1 和 ibd 文件,將它們放在 MariaDB 伺服器上(如果 InnoDB,它也使用 XtraDB)並且具有零兼容性問題。

想到的唯一警告與任何 MySQL 非同步複製設置相同:從屬伺服器必須執行與其主伺服器相同或更新版本的 MySQL(順便說一下,可以是任何一台 PXC 機器)。

這種“從屬版本相同或更新”規則的原因是二進制日誌格式只能向前擴展:當二進制日誌格式添加新功能時,較新的主設備會破壞舊的從設備,因為從設備可能並不總是理解它從 binlog 中讀取了什麼,並且複制將遇到硬停止(不是軟失敗)。較新的從屬伺服器永遠不會不理解較舊的主伺服器寫入其二進制日誌的內容,因為正式地,跨主要版本(例如,5.1 到 5.5)支持複製,但實際上,5.1 到 5.6 似乎也完全兼容。

MySQL Server、MariaDB 的並行次要版本或更新版本,或者——看似最簡單的——Percona Server……應該可以作為非同步從屬伺服器正常工作。

如果您從具有相同數據的從屬伺服器開始,並且複制每個表和模式,則永遠不會發生失去的事務。甚至不要嘗試過濾複製的內容並嘗試複製模式/表的子序列,除非並且直到您真正了解這可能遇到的問題。複製一切是預設行為。

是的……為報告設置非同步從站是非常值得的。集群成員應該已經有了他們需要的配置(除了從站將用來連接的使用者帳戶)。

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