2012-01-06 141 views
1

我正在與包含完全相同的模式和數據的SQL Server和MySQL之間進行同步的客戶端合作。我們希望將這些數據集中到一個數據庫中。除了性能和可維護性問題之外,原始設計還有什麼不好?SQL Server和MySQL同步

+0

從一個角度來看,您正在使用一個開源產品,這是一個摧毀癌症的社會。從另一個角度來看,你使用的是一款微軟產品,它會讓你的機器崩潰並且踢你的狗。 – 2012-01-06 05:03:41

+1

@MarcB小苛刻:-) - 除了開源只是複製商業癌症設計(ps總OSF粉絲) – 2012-01-06 05:07:58

+1

我認爲你不能稱之爲癌症驅逐者,儘管這個事實,人們變得實際有很多企業可能提供的功能與開源相比有所不同,但有時候人們不需要這些功能,因此最好選擇一個功能清單足以維持一次需要的開源代碼,但不知何故,如果您真的不在乎實際操作,可以花很多錢做任何事情,那麼沒有人會阻止你。我認爲這將取決於你如何分析和解決問題。 ;) – 2012-01-06 05:18:40

回答

4

您可以使用MySQL實例在SQL Server中創建鏈接服務器實例。

儘管是完全專有的,SQL Server中提供的一個很好的連接功能是通過鏈接服務器查詢其他服務器的能力。從本質上講,鏈接服務器是直接查詢另一個RDBMS的方法;這通常是通過使用安裝在服務器上的ODBC驅動程序來實現的。

請參閱這篇文章:step-by-step process SQL Server Linked Server to MySQL

如果您授予您代表適當權限連接的MySQL用戶,您可以寫入適合您的MySQL實例。因此,您可以更新存儲過程來執行額外的步驟來將記錄插入到MySQL中。

更簡單的解決方案是使用商業應用程序 - Omega Sync from Spectral Core 歐米茄同步可以比較和同步數據庫模式和表數據。甚至可以同步異構數據庫的數據(例如,將本地SQL Server數據庫與網站上的MySQL副本進行比較 - 並在幾分鐘內同步所有差異)。

+0

如果我想刪除MySQL數據庫,並且只是使用SQL Server數據庫,因爲它們是相同的,那麼使用一個數據庫而不是兩個數據庫會有什麼好處。使用MySql的Java項目可以通過使用方言引用SQL Server的方式構建。 – 2012-01-06 05:27:29

0

另一方面,我想你已經提到了在同步2分貝的同時,你可能會遇到什麼可能的問題,除了這兩個我認爲這將是資源。因爲有不同的RDBMS爲應用程序工作,它們也會爲每個應用程序分別提供一個資源,例如當我更新某個用戶的特定記錄時,它仍然需要檢查它確實存在的資源,但是我喜歡從其他資源獲取更多信息那裏的人們真的是一個有趣的話題來討論。 ;)