2012-07-11 82 views
3

我爲幾個小客戶開發網站,我希望能夠保持我的本地數據庫與每個客戶的生產服務器保持同步。 (我正在考慮每晚更新)他們的許多數據庫都在幾百兆字節,所以我覺得每晚創建和傳輸完整的轉儲是過度的。如何讓我的開發服務器數據庫保持最新狀態?

這裏是輕率的想法我想出迄今:

  • 我的本地機器上創建服務器和rsync與前一天晚上的轉儲 上轉儲。那應該只能傳輸 文件的改變位?

  • 在服務器上創建一個轉儲,並從轉儲的昨晚 轉儲中創建一個轉儲。只傳輸該差異。也許它也可以發送到原始轉儲的 的md5,所以我可以確定我將diff應用於相同的 基本文件。

前往(大部分)這些服務器的SSH訪問是可能的,但需要讓我的客戶打電話給他們的託管服務提供商與相當的技術要求,這是一件好事,我寧願沒有要求他們做。獎勵點,如果你可以建議一個解決方案,我可以通過FTP/PHP實現。

編輯:

@雅各布的回答促使一些進一步的谷歌搜索導致此主題:Compare two MySQL databases

這個問題(多種形式)似乎很常見。大多數需求,因此大多數工具似乎都集中在使模式保持最新而不是數據上。而且,大部分工具似乎都是商業和GUI。

到目前爲止,來自Percona Toolkit的最好看的選項似乎是pt-table-sync,雖然看起來在OSX上設置可能會很痛苦。我們正在下載Navicat來測試。我在OSX上運行,但是是一個商業GUI程序。

回答

0

我認爲最有效的方法是使用rsync來備份文件,通過使用rsync來運行每晚,通過將昨天的備份同步到今天的備份然後運行當天的rsync進行增量備份。在備份方面,我會考慮將站點作爲從站備份到您的服務器(主站)使用複製器功能的不同網站,這將允許您保持所有數據庫保持最新並備份

http://dev.mysql.com/doc/refman/5.0/en/replication.html