簡體   English   中英

如何同步SQLServer數據庫和MySQL數據庫

[英]How to Synchronize SQLServer Database and MySQL Database

我的場景:

我有兩個應用程序。 第一個是連接到MySQL數據庫的網站,第二個是連接到SQL Server2008 R2數據庫的桌面應用程序。 桌面應用程序在本地更新記錄,而MySQL數據庫通過網站在線更新。

問題:

兩個不同的數據庫,當在MySQL或SQL數據庫中進行更改時,如何在現場更新?

我想要的是:

數據庫應彼此同步(例如,如果在MySQL中進行了更改,則應更新SQL Server數據庫,或者如果在SQL數據庫中進行了更改,則應更新MySQL數據庫)

有人可以建議一些代碼,任何想法或任何解決方案來解決此問題嗎?

利用Restful API將信息從MS SQL服務器更新到MYSQL服務器。

我要指出的第一件事是不可能實現完整和完美的同步。 不幸的是,SQL Server中將存在MySQL中不存在的數據類型,反之亦然。

但是,假設數據類型非常簡單且架構相似,則可以使用以下選項:

  1. 使用服務總線。 您可以編寫一個同時監視兩個數據庫系統的應用程序,並在看到更改時將對象推入服務總線。 服務總線的偵聽器將看到對象並將它們寫入適當的目的地。

  2. 使用像Alex建議的觸發器。 SQL Server可以使CLR代碼在觸發器上執行。 CLR代碼可以是一些直接寫入MySQL的C#。 進行一些設置,但是有可能。 我研究了從MySQL中的觸發器運行一個進程,所有選項都很丑陋。 可能,但是安全是一個主要問題。 想法是更改記錄,觸發觸發器並運行外部進程。

  3. 編寫一個不斷尋找表中“差異”並來回移動數據的應用程序。 您需要修改所有表,以確保每個記錄都支持日期/時間戳,以便您可以跟蹤記錄“更改”的時間。

暫無
暫無

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

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