2011-03-21 27 views
0

目前我有這種情況,MySQL的複製問題

  1. 多個桌面客戶端與MySQL數據庫安裝在他們的Windows機器上。
  2. 需要同步到網絡上託管的一臺服務器才能進行報告。
  3. 只需要做一種方式同步(客戶端到網絡)。
  4. 客戶端IP總是在變化,因爲他們使用標準的adsl而沒有修復ip。
  5. 每個客戶端數據庫將同步到服務器上的一個獨立數據庫(託管在Web上)。
  6. 可以在調度程序上運行此同步嗎?就像每隔3小時一次。

我想使用mysql複製,但我有一些關於如何設置這個問題的問題?我應該將這個設置爲主從?還是高手要掌握? 我假設客戶端將是主服務器,並且服務器將是從服務器,因爲服務器僅用於報告目的,但檢查大量的mysql複製,看起來複制是從slave初始化的? (我看到有設置像主服務器=從服務器設置ip)這樣做失敗的目的,因爲服務器不知道有關客戶端IP ...

回答

0

也許這是完全脫離標記給予你的一些項目(奴隸/主/等),但在我正在開發的一個應用程序中,我有一個類似的體系結構,其中單個源提供未知/動態IP的多個客戶端。我的解決方案是在另一個字段中包含該行上次更新的時間戳,然後進行同步,客戶端搜索其本地數據庫以查找該列中的MAX,然後將該變量作爲變量發送給Web服務,然後將所有行一個更近的時間戳。然後,客戶端通過響應數據進行解析,並將REPLACES INTO置於其本地數據庫中,以覆蓋舊數據。

一個細節我沒有解決(因爲我的場景不需要它)是如何溝通,一個項目已被刪除...也許當一行被刪除,一個條目在另一個表中的行主ID和刪除時間戳,然後Web服務可以包含具有該表的更新時間戳的所有行的數組。