Sql-Server
數據庫鏡像,“WITH NORECOVERY”
最近開始實現數據庫鏡像,遇到了一些麻煩。根據Books online,完整的數據庫備份和
T-Log backup
必須在鏡像實例中恢復WITH NORECOVERY mode
:鏡像數據庫必須處於 RESTORING 狀態才能使鏡像工作。準備鏡像數據庫時,必須對每個還原操作使用 RESTORE WITH NORECOVERY。最低限度,您需要使用 NORECOVERY 恢復主體數據庫的完整備份,然後是所有後續日誌備份。
但是當我開始鏡像時,我收到以下異常:
“數據庫“MyDB”無法打開。它正在恢復(Microsoft SQL Server,錯誤 927)
誰能解釋一下,我是否誤解了什麼?
在所有伺服器上創建端點:
CREATE ENDPOINT EndPointName STATE=STARTED AS TCP(LISTENER_PORT = PortNumber, LISTENER_IP = ALL) FOR DATA_MIRRORING(ROLE = PARTNER, AUTHENTICATION = WINDOWS NEGOTIATE, ENCRYPTION = REQUIRED ALGORITHM RC4)
對於見證伺服器,更改
ROLE = PARTNER
為ROLE = WITNESS
在見證的端點中。在鏡像伺服器上執行第一
SET PARTNER
條命令:ALTER DATABASE DatabaseName SET PARTNER = N'TCP://PrincipalServer:PortNumber'
請注意,它在命令中指向主體伺服器,但您是在鏡像上執行它。
然後在主體伺服器上執行接下來的兩個命令,指向
SET PARTNER
鏡像:ALTER DATABASE DatabaseName SET PARTNER = N'TCP://MirrorServer:PortNumber' ALTER DATABASE DatabaseName SET SAFETY OFF --OFF=async, FULL=sync
如果您要為自動故障轉移設置見證,請使用
SET SAFETY FULL
上述SET SAFETY OFF
命令,然後在主體上執行以下命令:ALTER DATABASE DatabaseName SET WITNESS = N'TCP://WitnessServer:PortNumber'
請按照以下過程解決問題。如果它是小型數據庫,則不會花費太多時間。
**Note : Below steps are to be followed in Secondary Server Only**
刪除數據庫。
轉到數據文件夾並刪除所有看起來適用於數據庫的 MDF。
轉到日誌文件夾並刪除所有看起來適用於數據庫的 LDF。
使用 NORECOVERY 再次恢復數據庫(主伺服器數據庫的新副本)
使用 NORECOVERY 恢復 T-Log(主伺服器數據庫完整備份後的 T-Log)
配置數據庫鏡像
- 另外請檢查服務包並嘗試將 sql server 升級到最新版本。
祝你好運!