思路:
1、做中間件(簡單:定時采集;復雜:分布式,訂閱中心的形式,如微信的中間件:https://github.com/tencent-wechat/phxsql)
2、采用觸發器的形式,有數據觸發是進行多服務器的來回數據分發。
3、基於計划任務的形式觸發存儲過程進行同步,和定時任務差不多
4、采用SQL Server的發布訂閱功能(注意,經過測試這個是可以連接外網的;技巧:通過SQL Server配置管理器新建別名為外網機器的計算機名+IP+端口,然后就和內網一樣的操作;且通過合並發布可以實現雙向;通常這個功能同步的時間為1分鍾的間隔)參考:http://www.cnblogs.com/EasonJim/p/6115142.html。
數據同步還需要考慮的問題:
1、如果是用於負載均衡時的數據,那么要考慮兩個不同的用戶同一時間在兩台數據庫上插入數據導致主鍵ID重復
2、實時性對於業務表現層的處理,比如延遲或者假象處理
所以,在做同步數據庫,統一的發號器可以很大程度上解決ID重復的問題。
如果考慮負載均衡而無需考慮ID重復的問題,那么可以嘗試”讀寫分離“的方案,參考老D的博客實現的事務發布:http://www.cnblogs.com/daizhj/archive/2010/06/21/dbsnap_master_slave_database.html