Sql-Server

Service Broker 是否適合在伺服器之間發布數據?

  • July 29, 2013

將數據發佈到遠端表時,我試圖找到更好的解決方案。

所以我們有伺服器 A 和伺服器 B。伺服器 A 擁有一個應該複製到伺服器 B 的主表。

目前,我們有這個非常混亂的儲存過程,每分鐘左右執行一次。它定位任何更改並將它們插入到伺服器 B 上的臨時表中。一旦載入,它會插入新記錄或更新此臨時表中的現有記錄(該表不斷被命中,我們希望限制任何 for 鎖定)。

我們目前沒有 DBA,所以我正在盡我所能(我只是一名 Web 開發人員)來找出可以在未來擴展的更好的解決方案。

注意:我們有幾十個這樣的儲存過程。

您最好的選擇是使用事務複製

T-Rep 旨在適合您的場景,因為您希望將表從伺服器 A 複製到伺服器 B。

無需每分鐘執行一次儲存過程(除非您對這些 SP 執行特定操作,而您在問題中沒有突出顯示)。

注意:只有在事務複製中生成初始快照時,才會對錶進行鎖定。因此,如果您的表非常大,最好在維護視窗期間進行設置。

此外,在 T-Rep 中,更改被非同步跟踪並非同步應用於訂閱者(目標)伺服器。它有嚮導,讓您無需編碼即可正確配置 T-Rep。

另一方面,Service Broker 將同步跟踪數據更改並非同步應用於目標伺服器。它需要更多的編碼,並且根據要傳輸的數據量,它會很慢。

我已經與 Service Broker 打過交道,相信我……它很難調試……就像黑盒 vs 複製會在 GUI 上顯示錯誤,並且也很容易排除故障。

引用自:https://dba.stackexchange.com/questions/47230