2015-06-30 79 views
1

我有一個應用程序,需要我從DB#1中抽取某些信息,並在每次更新DB#1的表中的某個條目時將其推送到DB#2。輪詢率不需要非常快,但可能不應該低於1秒。 我打算使用C++連接器庫編寫一個小型服務,但我擔心在DB#1上施加過多負載。有沒有更有效的方法來做到這一點?比如內置SQL腳本中的功能?從一個SQL服務器自動推送到另一個

+0

你看過複製,這看起來像你所需要的。設置一個示例http://www.sql-server-performance.com/2010/transactional-replication-2008-r2/。 – TYY

回答

1

有很多方法可以實現這一點,所以它可能是你喜歡的其他因素驅動的方法。

如果SQL Server數據庫在同一服務器實例:

  • 當事件推到DB2表
  • 存儲過程(DB1或DB2)的DB1表使用MERGE識別變化與它們同步到DB2,然後使用SQL作業調用程序,妥善的安排
  • 數據庫啓用更改跟蹤和所需的表,然後用存儲過程+ SQL作業對源表不發送任何疑問變化

如果在不同的情況下,或服務器(也可以工作,如果在同一個實例雖然):

  • SSIS包識別變化並推到DB2(獎金可以改變數據採集工作)
  • 合併複製到同步變化
  • AlwaysOn可用性組同步整個DBS
  • Microsoft同步框架

知道一無所知您的偏好或舒適度水平,我可能會從合併複製開始 - 可能會有點棘手和繁瑣的設置,但表現非常好。

+0

感謝您的幫助。你們倆。我不太熟悉合併複製,所以我將不得不考慮這一點。 – mreff555

1

您可以在DB1和DB2之間創建DB1和DBlink中的觸發器。因此,您可以本地調用DB1中的觸發器並將數據直接傳輸到DB2。

相關問題