在 SQL Server 中重新啟動資料庫鏡像之後,鏡像資料庫會中斷連線

本文可協助您解決鏡像資料庫處於 已中斷連線復原 狀態的問題。

原始產品版本:SQL Server
原始 KB 編號: 2490051

徵兆

請考慮下列案例:

  • 您有一部在雙伺服器資料庫鏡像中執行 Microsoft SQL Server 次要實例的電腦。

  • 計算機上的 CPU 使用量達到 100%,您無法使用 SQL Server 管理工具來停止 SQL Server 服務。

  • 您可以使用任務管理員結束 SQL Server 次要實例的程式。

  • 您會重新啟動 SQL Server 的次要實例。

在此案例中,所有鏡像資料庫都處於 已中斷連線處於復原 狀態。 此外,每個資料庫的 SQL Server 錯誤記錄檔中會記錄類似下列的錯誤訊息:

略過資料庫 「資料庫名稱」的復原,因為它標示為無法存取的資料庫鏡像資料庫。 鏡像工作階段發生問題。 工作階段缺少仲裁,或者因為連結、端點組態或 (伺服器帳戶或安全性憑證的) 權限等問題以致通訊連結中斷。 若要能夠存取資料庫,請找出在工作階段組態中變更的項目,然後恢復變更。

原因

此問題是因為 SQL Server 資料庫鏡像端點發生問題。

解決方法

若要解決此問題,請使用下列方法。 如果第一個方法無法解決問題,請使用第二個方法。

方法 1

回收資料庫鏡像上的端點。 若要這樣做,請遵循下列步驟:

  1. 在主體資料庫上,執行下列 SQL 腳本來停止端點:

    ALTER ENDPOINT <Endpoint Name> STATE=STOPPED
    
  2. 執行下列 SQL 腳本來重新啟動端點:

    ALTER ENDPOINT <Endpoint Name> STATE=STARTED
    

    注意

    如果您在執行文稿之後,端點之間的通訊不會重新啟動,請在資料庫鏡像上執行腳本。 不過,在您執行此動作之後,資料庫可能會進入 暫停 狀態。 如果發生此問題,請執行下列 SQL 腳稿:

    ALTER DATABASE <Database Name> SET PARTNER RESUME
    

方法 2

刪除並重新建立兩部伺服器上的資料庫鏡像端點。