Sql-Server

推薦的用於事務複製的分發器架構?

  • March 26, 2022

我們計劃在 SQL Server 2008 R2 的 2 個節點上創建事務複製,每個節點將是發布者和訂閱者。

為了完成這個場景,最佳實踐是什麼?Microsoft 始終建議分發者應該獨立於發布者或訂閱者,因此很明顯第 3 個節點將參與該場景。但是,由於每個節點將同時是發布者和訂閱者,同一(第 3 個節點)可以成為 2 個發布者的分發者嗎?我應該創建 2 個分發者,還是仍然可以在同一個架構上,只使用 2 個節點,每個節點都充當分發者和發布者?

為了完成這個場景,最佳實踐是什麼?

這取決於您要複製的數據量,即

  • 您是否正在複製選定的列/表、整個數據庫(所有表)等?
  • 兩個節點是位於同一個域還是不同域?
  • 您是在同一區域還是跨區域(美國-英國等)進行複制?

我已經實現了 T-Rep,其中我使用了與發布者和分發者相同的伺服器,因為需要複製的數據較少,並且還在單獨的伺服器上實現了單獨的分發數據庫,該伺服器完成了將數據發布給訂閱者的所有繁重工作我們有大量數據可以推送給訂閱者。

您必須考慮以下因素 -

  • 執行快照並將該快照應用於訂閱者所花費的時間
  • 當複制中涉及的表發生重大(例如模式)更改時重新初始化項目的可行性。

我應該創建 2 個分銷商嗎? 您可以使用相同的分發數據庫。雖然,為了便於維護和更好的性能

$$ reducing contention - both writing to and reading from the distribution database $$我強烈建議您使用單獨的分發數據庫。 請記住,分發數據庫是複制的核心。所以它需要適當的維護、備份等。現在,如果您只有一個支持多個發布者的分發數據庫並且發生了災難,那麼從以前的備份中恢復它會影響所有發布者。

來自BOL

在許多情況下,一個分發數據庫就足夠了。但是,如果多個 Publisher 使用單個 Distributor,請考慮為每個 Publisher 創建一個分發數據庫。這樣做可確保流經每個分發數據庫的數據是不同的。


最後一些很好的參考資料可以幫助你:

深入了解從備份進行事務複製的初始化

複製非聚集索引可提高訂閱者查詢性能

遵循事務複製中的數據 - 白皮書

事務複製疑難解答

橫向擴展分發數據庫

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