![](/img/trans.png)
[英]How to sync a MySQL databases between two remote databases (without MySQL database replication technique )
[英]Mysql database sync between two databases
我們正在各個商店運行 Java PoS(銷售點)應用程序,並帶有 MySql 后端。 我想讓商店中的數據庫與主機服務器上的數據庫保持同步。
當商店發生一些變化時,它們應該在主機服務器上得到更新。 我如何實現這一目標?
創建復制並不難。
這里有一些很好的教程:
http://www.ghacks.net/2009/04/09/set-up-mysql-database-replication/
http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html
http://www.lassosoft.com/Beginners-Guide-to-MySQL-Replication
這里有一些您必須記住的簡單規則(當然還有更多規則,但這是主要概念):
這樣,您將避免錯誤。
例如:如果您的腳本插入到主從上的相同表中,您將有重復的主鍵沖突。
您可以將“從”視為“備份”服務器,它與主服務器保持相同的信息,但不能直接添加數據,只能按照主服務器的說明進行操作。
注意:當然,您可以從 master 讀取,也可以寫入 slave,但請確保不要寫入相同的表(master 到 slave 和 slave 到 master)。
我建議監控您的服務器以確保一切正常。
如果您需要其他幫助,請告訴我
三種不同的方法:
經典的客戶端/服務器方法:不要在商店中放置任何數據庫; 只需讓應用程序訪問您的服務器即可。 當然,如果設置了VPN 更好,但簡單地將連接包裝在SSL 或ssh 中是合理的。 優點:這是數據庫最初的想法。 缺點:如果您有高延遲,復雜的操作可能會變慢,您可能必須使用存儲過程來減少往返次數。
復制的主/主:正如@Book Of Zeus 所建議的那樣。 缺點:設置有點復雜(特別是如果您有幾家商店),闖入任何商店機器可能會危及整個系統。 優點:更好的響應性,因為讀操作完全是本地的,寫操作是異步傳播的。
離線操作 + 同步步驟:在本地和不時(可能是每小時一次,每天一次,每周一次,等等)完成所有工作,用上次同步操作的所有新/修改記錄編寫摘要,然后發送到服務器。 優點:可以在沒有網絡的情況下工作,速度快,易於檢查(如果摘要可讀)。 缺點:您沒有實時信息。
SymmetricDS 就是答案。 它支持單向或雙向異步數據復制的多個訂閱者。 如果需要,它使用 Web 和數據庫技術在關系數據庫之間復制表,近乎實時。
全面而強大的 Java API 以滿足您的需求。
查看 dbForge Studio for MySQL 中的架構和數據比較工具。 這些工具將幫助您比較、查看差異、生成同步腳本並同步兩個數據庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.