2012-02-23 94 views
0

我們一直在開發一個將與網站集成的.NET桌面應用程序,它們都使用MySQL。每個軟件的客戶都有一個網站。我們需要將客戶的數據庫與運行在我們服務器上的通訊數據庫同步。我們將在每個客戶的服務器上運行一個數據庫。這些信息將顯示在客戶的網站上。.NET應用程序Mysql遠程數據庫同步

同步必須在短時間內完成。我們不想有一個過時的網站。

我們認爲要編寫代碼來進行此同步。實現穩定同步似乎是一項艱鉅的任務。客戶的數據庫會很大,在短時間內發送似乎是不切實際的。

然後我們發現數據庫複製。大!一種平滑的方式來同步數據庫。我們不需要對此解決方案進行硬編碼!我們客戶的數據庫將成爲主人,我們的服務器將成爲奴隸。我們需要在同一個MySQL服務器上有多個從站。 MySQL不允許它。

我們可以運行多個MySQL實例,每個客戶一個實例。但是我們需要爲每個實例打開一個端口,而且聽起來不安全。

最後,我們認爲打開端口並拒絕非防火牆客戶訪問。

你會如何解決這個問題?我們希望聽取您的意見。 謝謝。

回答

1

我有一個類似的程序,我使用的是CQL CE數據庫/ MS SQL。我所做的是在主服務器上,我需要將更新發送到客戶端數據庫的每個表中放置了一個更新日期字段。客戶端數據庫將擁有一個表,其中包含最後一次更新數據庫的日期。因此,當服務器上的某些更改被更新到當前日期時,客戶端程序將根據Web服務檢查上次更新日期,以確定是否需要執行任何更新。

0

我以前想過這個。

我認爲最好的選擇是避免通過直接從客戶端數據庫提供數據在Web上覆制太多的數據存儲。

我可以想到在不打開端口等的情況下這樣做的最佳方式是使用長輪詢或HTML 5套接字來僅提供請求的數據。只要您的用戶不希望經常查看所有數據,這將提供一個合理的解決方案。

相關問題