簡體   English   中英

兩個數據庫之間的Mysql數據庫同步

[英]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

這里有一些您必須記住的簡單規則(當然還有更多規則,但這是主要概念):

  1. 設置 1 個服務器(主)用於寫入數據。
  2. 設置 1 個或多個服務器(從站)用於讀取數據。

這樣,您將避免錯誤。

例如:如果您的腳本插入到主從上的相同表中,您將有重復的主鍵沖突。

您可以將“從”視為“備份”服務器,它與主服務器保持相同的信息,但不能直接添加數據,只能按照主服務器的說明進行操作。

注意:當然,您可以從 master 讀取,也可以寫入 slave,但請確保不要寫入相同的表(master 到 slave 和 slave 到 master)。

我建議監控您的服務器以確保一切正常。

如果您需要其他幫助,請告訴我

三種不同的方法:

  1. 經典的客戶端/服務器方法:不要在商店中放置任何數據庫; 只需讓應用程序訪問您的服務器即可。 當然,如果設置了VPN 更好,但簡單地將連接包裝在SSL 或ssh 中是合理的。 優點:這是數據庫最初的想法。 缺點:如果您有高延遲,復雜的操作可能會變慢,您可能必須使用存儲過程來減少往返次數。

  2. 復制的主/主:正如@Book Of Zeus 所建議的那樣。 缺點:設置有點復雜(特別是如果您有幾家商店),闖入任何商店機器可能會危及整個系統。 優點:更好的響應性,因為讀操作完全是本地的,寫操作是異步傳播的。

  3. 離線操作 + 同步步驟:在本地和不時(可能是每小時一次,每天一次,每周一次,等等)完成所有工作,用上次同步操作的所有新/修改記錄編寫摘要,然后發送到服務器。 優點:可以在沒有網絡的情況下工作,速度快,易於檢查(如果摘要可讀)。 缺點:您沒有實時信息。

SymmetricDS 就是答案。 它支持單向或雙向異步數據復制的多個訂閱者。 如果需要,它使用 Web 和數據庫技術在關系數據庫之間復制表,近乎實時。

全面而強大的 Java API 以滿足您的需求。

查看 dbForge Studio for MySQL 中的架構和數據比較工具 這些工具將幫助您比較、查看差異、生成同步腳本並同步兩個數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM