Sql-Server

大規模的點對點複製拓撲?

  • May 8, 2020

我們有一個客戶,它在地理上分佈在偏遠社區,每個物理位置之間的網路/網際網路連接有些不可靠。有一個中央位置和 52 個衛星位置。

通常,我們的應用程序部署為一個中央解決方案,其中只有一個數據庫,所有位置都連接到一個數據庫。數據本身由大多數表中的位置列進行分區(一些數據是集中的),並且應用程序操作使得在一個物理位置接觸數據不會接觸另一個物理位置的數據,包括集中數據(至少,我們很確定它不會——如果是這樣,那很可能是一個錯誤)。我們的客戶想要進行集中報告(我們通常支持),以及跨企業同步多個集中配置表(相同,因為通常只有一個表副本)。

每個位置都有自己的數據中心,並獲得 SQL Server 2008 R2 Enterprise 的許可。

目標是部署我們的應用程序,使網路/網際網路連接中斷不能阻止本地讀/寫操作,因為我們的應用程序是關鍵任務。


我的第一個想法是使用一個巨大的點對點拓撲來複製數據庫中的每個對象。我無法找到任何使用這種方法進行如此大規模擴展的任何安裝的文件或參考資料,所以我不知道它在技術上是否可行,如果可行,將需要什麼硬體。這是否適用於集中式分發數據庫(為了便於管理)?這甚至是一個好主意嗎?如何部署數據庫架構更改?索引維護是否會產生大量的網路成本?

還可以選擇創建一個自己滾動的解決方案,我認為這將涉及將數據庫的單獨副本(每個非中心位置僅包含其數據的分區部分)的日誌傳送到中心位置,然後使用用於創建報告數據庫的合併工具(我們已經擁有)。配置表更改將由其他機制推出,可能是合併複製,可能是自製解決方案。

我考慮並測試了在整個數據庫上使用合併複製,但我們需要大量的數據庫和應用程序更改/重新設計/等。為了使這項工作正常進行,因此由於時間限制,我已經排除了這一點。(對此有什麼想法?)


我在這裡尋找的是有更多經驗的人的一些指導。顯然,為此做好計劃至關重要。我在正確的道路上嗎?還有其他選擇嗎?(網址?)

對於僅僅 52 個客戶端站點,複製就可以了。將您的本地副本視為“主”站點,並始終讓應用程序僅在本地副本上執行。使用複制將數據聚合到中央儲存庫以進行聚合報告。索引維護操作通常不會產生複製流量。通過應用程序部署遷移管理架構更改,即。每個發布版本都有升級腳本

隨著站點數量的增加,管理複製變得越來越困難。許可也將推動在外圍部署 Express。當涉及複製時,SQL Server 升級絕對是一件痛苦的事情,因為升級組件(發布者、分發者、訂閱者)的順序很關鍵,但很難與許多站點協調。我所知道的 +1500 個站點的部署使用基於 Service Broker 的自定義數據移動。有關範例,請參閱使用 Service Broker 而不是複制。我什至見過使用 Service Broker 將新位(應用程序更改)推送到外圍的設計,這些新位(應用程序更改)反過來又在啟動時部署遷移和架構更改,從而使整個部署從中心執行。

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