Mysql

複製 MySQL 數據庫表的最佳方法

  • October 6, 2019

我正在嘗試圍繞如何可能將數據庫表從一個數據庫自動同步到下一個(以及下一個,下一個,…)的許多選項。

我們正在嘗試為我們的行銷 saas 產品創建一個非常簡單的數據庫分片系統,其中我們創建了代表項目 ID(我們想要“分片”的 ID)和本地 ID(主鍵表)。這些 ID 是 64 位的,看起來像這樣:(1099511627777項目:1,本地 ID:1)。

我們喜歡創建一個系統,通過讓我們將項目從一個數據庫或伺服器移動到另一個數據庫或伺服器,甚至移動到一個全新的數據庫,我們可以“橫向”擴展。

現在,我已經嘗試研究所有選項,但對我來說開始太多了。我們喜歡創建一個系統,其中只有數據庫表被複製到所有其他數據庫。但只有表,而不是這些表中的數據。

有沒有這樣一種方法可以只複製表,從而保持數據庫的“集群”彼此同步?理想情況下,我們希望我們的應用程序(基於 Laravel/PHP/MySQL)僅在一個數據庫/伺服器上執行遷移,並將其自動複製到所有其他數據庫和伺服器

提前致謝

“分片”涉及並行執行的伺服器,而不是從另一個複制。

在沒有數據的情況下複製模式的最實用方法是通過mysqldump --no-data. 但是,沒有自動化。

坦率地說,你必須重新發明分片輪。很少有解決分片的許多問題。

也就是說,我建議你看看 Spider、Clustrix、NDB Clustering,也許還有其他一些。

我強烈建議您完善一種將“項目”從一個分片複製到另一個分片的方法。它應該盡可能接近非侵入性。然後它可能是更新硬體、更新軟體、解除安裝繁忙的分片、退役硬體等的主要工具。具體到你的問題,你可以用升級的 Laravel/schema/etc 建構一個新的分片,然後將項目遷移到它。沖洗,重複。

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