2011-10-11 119 views
13

我正在開發一個使用php和mysql的web應用程序。此應用程序運行在三個不同的位置。 1.在互聯網上。 2.總公司。 3.分支機構。應用程序在總公司和分支機構的本地服務器上運行。互聯網連接並不是每次都可用。客戶通過這三個地點下單。我的問題是,我想同步這三個數據庫之間的數據,並保持這三個數據庫是最新的。有沒有辦法解決這個問題。在線/離線數據庫同步 - MySQL/PHP

+0

hmm。嘗試複製 – Gajahlemu

+0

可能重複[MySQL數據庫同步](http://stackoverflow.com/questions/3648242/mysql-database-synchronization)(也看看[其他問題](http://stackoverflow.com/search ?q = mysql + synchronization + php)) – mario

+0

請參閱http://www.mysql.com/products/cluster/mysql-cluster-datasheet.pdf – Gajahlemu

回答

11

我使用SymmetricDS同步數據庫。它能夠同步或複製節點(服務器/數據庫)之間的數據,只需推送或拉取您定義的數據。這是一個基於Java的軟件,它有一個陡峭的學習曲線,但它確實做到了這一點。

可以將SymmetricDS設置爲將更改從一個節點推送到另外兩個節點,從而確保所有三個節點都包含相同的數據。您需要確保主鍵是唯一鍵,而不是由數據庫分配的自動遞增值,因爲這很可能會成爲您想要同步的三個不同數據庫的問題。

該軟件在數據庫上安裝觸發器,並在執行INSERT,UPDATE或DELETE(和其他)操作時捕獲更改。這些數據更改然後在其他節點上調用。該軟件需要在每個位置運行,但不需要隨時可用的互聯網連接。

我在開始時擔心觸發所有表格會降低性能,但這根本不成問題。在安裝觸發器後,我不能說我們發現任何性能問題。

查看http://symmetricds.org/瞭解更多詳情。

+0

感謝sbrattla提供的工具。我寫了一些自定義的PHP腳本來解決我的問題。我用SymmetricDS的一些想法來解決這個問題。 – iamsumesh

+0

如何使用它? –

+0

我上面的文章描述了它是如何工作的,但是你需要到軟件的網站去了解它的細節。如前所述,它有一個陡峭的學習曲線,但它可以很好地工作,而且你可以掌握它。 – sbrattla

相關問題