Sql-Server

為數據庫鏡像成功配置 SQL Server 後,收到一條錯誤消息,指出它沒有為數據庫鏡像配置

  • August 28, 2013

我需要用生產數據庫的新副本替換我們測試環境中的舊數據庫。

測試環境實際上由測試數據庫的兩個實例組成,在兩台不同的伺服器上,在一個鏡像配置中(它有鏡像,因為生產有鏡像,並且客戶端希望測試環境就像生產一樣)。

我認為這將是一個簡單的問題:

  • 獲取生產數據庫的備份(.bak 文件)
  • 暫時禁用測試數據庫的鏡像
  • 從(prod)備份覆蓋(即:恢復)它們
  • 重新啟動鏡像

但顯然,這還遠遠不夠。經過一天的努力(權限問題,神秘錯誤,如果您重新啟動 SSMS(嚴重)就會消失的問題,我會為您省去完整列表……)我終於將新數據庫恢復到了原則和測試數據庫的鏡像實例。

但是,SQL Server 在某處放棄了鏡像配置設置,所以我右鍵點擊原理,選擇鏡像,然後直接通過安全嚮導。當我在安全嚮導的最後點擊“完成”時,它完成了,我得到了一個螢幕,報告一切都已成功設置(“配置端點”-“成功”)。緊接著是另一個視窗,詢問我是否希望開始鏡像,但是,點擊該視窗上的開始,我收到以下 SQL Server 錯誤:

啟動鏡像時出錯。

沒有為數據庫鏡像配置數據庫“3DSS_TEST”。(Microsoft SQL Server,錯誤:1416)

所以我得到“鏡像配置成功!” 然後,作為同一過程的一部分,“鏡像無法啟動,因為您沒有配置它!” :(

有任何想法嗎?任何人以前見過這個,或者知道如何梳理出更有用的錯誤消息或其他資訊?

更新:已解決

正如布賴恩在下面所說,我使用錯誤的恢復選項恢復了鏡像數據庫,正確的方法是:

RESTORE DATABASE [MyDb]
FROM disk = 'C:\TEmp\MyDb_LIVE_Prod_backup_2010-06-18_for_test_server.bak'
WITH
REPLACE,
NOrecovery /* This should be 'norecovery', my problem was I used 'recovery' */

謝謝!

鏡像數據庫恢復後經常會出現錯誤 1416。確保鏡像數據庫處於正在恢復狀態(NORECOVERY 選項)

在鏡像伺服器上執行以下查詢並驗證數據庫的狀態。

select database_id, user_access_desc, state_desc, recovery_model_desc, is_broker_enabled, log_reuse_wait_desc from sys.databases where name = 'database'

如果鏡像數據庫處於 ONLINE 狀態,則需要在設置鏡像夥伴之前使用 NORECOVERY 選項再次恢復數據庫和後續的 T-Log 備份。

引用自:https://serverfault.com/questions/153124