Sql-Server

當主伺服器上存在複製同步問題時,可以使用 AlwaysOn 可用性組來減少停機時間嗎?

  • March 15, 2019

有時,我會在事務複製設置中遇到與訂閱伺服器同步的問題。拍攝發布者的新快照會導致我的訂閱伺服器出現大量停機。

如果我的訂閱伺服器是作為主伺服器的 AlwaysOn AG 的一部分,我是否可以在主伺服器同步到發布伺服器上的新快照時故障轉移到輔助伺服器,並減少停機時間?(然後我可以在它與發布伺服器完成同步後切換回主伺服器?)

例如,伺服器 Z 是我在事務複製中的發布者,伺服器 A 是我的訂閱者。然後我在伺服器 A 上創建一個 AlwaysOn AG 和一個名為伺服器 B 的新伺服器。如果伺服器 A 與伺服器 Z 不同步,我需要在伺服器 Z 上拍攝新快照以重新同步伺服器 A 到它,我可以故障轉移嗎同時到伺服器 B?

一般來說,不,這是行不通的,因為可用性組中的數據庫在輔助伺服器上是只讀的。如果 SQL Server 以某種方式允許其他程序(複製)更改輔助伺服器上的數據,那麼輔助伺服器上的數據庫將不再與主伺服器同步,對嗎?並且 SQL Server AG 同步(鏡像)的工作方式,它必須完全重寫才能考慮支持這樣的東西。

但是,如果訂閱者是只讀的,您可以使用類似於以下的過程來完成您想要的,但我不建議這樣做,因為它遠離 What It Is Design To Do,並且您的時間越長重新從事 IT 工作,您就會越了解為什麼這是個問題。

一旦出現需要重新同步的情況:

  1. 故障轉移到伺服器 B
  2. 從可用性組中刪除屬於 Server Z 複製方案的數據庫
  3. 使伺服器 A 上的數據庫退出恢復並讓您的複制從伺服器 Z 重新同步
  4. 一旦伺服器 A 上的數據與伺服器 Z 同步,故障回復到伺服器 A
  5. 從伺服器 B 中刪除不在可用性組中的數據庫
  6. 將數據庫重新添加到可用性組中

同樣,這僅在伺服器 B 在此期間用於只讀時才有效。當伺服器 B 為主伺服器時,對從可用性組中刪除的數據庫所做的任何更改都將失去。

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