Sql-Server

SQL Server AlwaysOn 數據庫在升級後卡在未同步/處於恢復模式。錯誤:無法打開數據庫“…”版本 782

  • January 10, 2016

在測試從 SQL Server 2014 SP1 (12.0.4422.0) 升級到 SQL Server 2016 CTP 3.2 (13.0.900.73) 時,我按照推薦的更新過程進行操作,但遇到了故障轉移後數據庫無法在舊主伺服器上啟動的問題到更新的二級。我們的設置是一個主副本和一個輔助副本,我完成的步驟是:

  1. 刪除同步送出輔助副本上的自動故障轉移
  2. 將輔助伺服器實例升級到新版本
  3. 手動故障轉移到輔助副本
  4. 驗證數據庫在新的主副本上是否線上
  5. 將以前的主副本升級到新版本

次要節點的升級和故障轉移使其成為主要節點的工作完全符合預期。但是在升級以前的主副本後,我注意到它上面的數據庫在 SSMS 中列為Not Synchronizing / In Recovery。嘗試訪問它們也會生成錯誤消息:

數據庫…無法訪問。(對象瀏覽器)

通過我看到的 SQL Server 日誌檢查

無法打開數據庫“…”版本 782。將數據庫升級到最新版本。

查詢master..sysdatabases表,確實是老版本,升級時沒有更新:

SSMS 系統數據庫版本

不幸的是,日誌沒有說明為什麼它沒有更新,可用性組儀表板只給出了一個通用警告,表明某些可用性數據庫的數據同步狀態不健康,沒有原因。

我嘗試使用 TSQL 分離數據庫或將它們設置為離線以“啟動”它進行更新,但由於它們是 SQL AG 的一部分,因此這些命令不起作用。

當數據庫是 SQL AG 的一部分時,如何將數據庫升級到最新版本?

在 SSMS 中瀏覽了一段時間後,我注意到在輔助副本上,可用性數據庫旁邊有一個暫停圖示。主要顯示兩者都是“綠色”,但次要上有一個選項Resume Data Movement。我恢復了第一個數據庫,並立即刪除了**In Recovery狀態消息。**一分鐘後,它從不同步變為同步,一切都按預期工作。

這是我修復“更新檔”之後但在修復測試數據庫之前的 AG 數據庫的螢幕截圖:

在 SQL AG 上恢復數據移動

請注意,您還可以在輔助伺服器上使用 TSQL 同時恢復多個數據庫上的複制:

ALTER DATABASE [Patch] SET HADR RESUME;
ALTER DATABASE [test] SET HADR RESUME;
GO

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