2011-03-28 58 views
2

我正在尋找有關從2個不同數據庫同步mySQL表(myISAM)的最佳方法的建議。mySQL Table Sync

目前我們使用Navicat將表格從我們的生產服務器同步到我們的測試服務器,但我們遇到了很多問題。幾乎每天我們都在桌上遇到同步失敗。

我們在很多時候都會得到錯誤,更不用說Navicat用我們的電子郵件發送成功和失敗的同步(無論如何只接收不成功的同步?)。我也知道改變表格會導致失敗同步。因此,無論如何改變桌子必須先向主人做(這是有道理的,但有沒有辦法解決這個問題?)。

- [同步]完成 - 不成功同步:列表索引越界(0)

有什麼理由不使用Navicat的同步?我的老闆建議使用mySQL複製,但我的第一個擔心是找到爲什麼我們有這麼多的問題,因爲它似乎我們只是濫用同步,從而給我們所有這些問題。

謝謝。從我們的生產服務器

回答

0

同步表,我們的測試服務器

這聽起來像你想複製您的生產環境,測試環境,對不對?

在這種情況下遵循的常見模式是using a tool like mysqldump來創建整個數據庫的備份,然後再將備份導入測試環境。通過執行完整的備份和恢復,您不僅可以確保至少有一種已知可用的備份方法,還可以確保測試數據庫不會包含同步工具可能會錯過的修改。 (同步工具通常需要每個表上的主鍵或唯一鍵纔能有效操作。)

備份和重新導入過程對於您自動執行應該是一件容易的事情。在我的工作場所,我們每天晚上執行基於mysqldump的數據庫轉儲,並在第二天早上執行可選的導入到每個開發人員的個人副本的開發環境。

+0

我想我們有兩種類型的環境。其中一個就是你所說的真實的現場測試環境(我們不同步)。另一個是從實況網站獲取數據並製作報告供內部使用(我們同步,因爲我們需要數據是最新的) – Bobby 2011-03-28 17:04:40

+1

@Bobby,對於第二種情況,如果您發現運行報告會破壞主數據庫,這顯然是一個只讀的奴隸是一個很好的解決方案的情況。 – Charles 2011-03-28 17:28:59

+0

感謝您的回覆,我會在接下來的一兩天內給您一個鏡頭,讓您知道它對我們的影響。謝謝您的幫助 – Bobby 2011-03-30 12:31:27