AwaysOn災備恢復演練問題處理

datapeng發表於2016-06-08

最近在做災備,針對sql server2012,我們採用的是跨子網部署災備節點,我們在進行破壞性災備演練時,有幾個資料庫可以正常透過with recovery的方式進行恢復,但有一個始終不能,並報錯如下:
訊息 4303,級別 16,狀態 1,第 1 行
前滾開始點現在位於日誌序列號(LSN) 542946000079939400001 處。需要繼續前滾到 LSN 542946000079945400001 之前才能完成還原順序。
訊息 3013,級別 16,狀態 1,第 1 行
RESTORE DATABASE 正在異常終止。
資料庫一直處於正在還原的狀態。如果不能保證災備點的恢復使用,那災備的意義就完全沒有了。最後搞了半天,還是完成了恢復,記錄下來供大家參考。

1、恢復災備節點資料庫
restore database mytest with recovery;
通常情況下是沒問題的,有問題,就會報上面提到的錯誤。然後繼續往下操作。

2、首先,把資料庫服務停了,然後把這個資料庫的檔案進行複製到其路徑,我是複製到了資料庫預設安裝路徑的data下面
F:\Program Files\Microsoft SQL Server\MSSQL11.WFCPROD\MSSQL\DATA\
兩個作用,一是備份,二是在附加資料庫的時候需要。

3、把資料庫服務重新開啟,刪除這個資料庫
這一步比較簡單,刪除資料庫後,資料檔案也一併刪除了。

4、檢查剛複製到data資料夾下的資料檔案的屬性。
我在複製的過程中,發現檔案屬性發生了變化。主要有兩個地方:
--當前使用者是不是具有對這些資料檔案的操作許可權,如果沒有,需要增加進去。點選資料檔案右鍵,安全,然後檢視當前使用者是否具有許可權。
--檢視當前檔案是否是隻讀,如果是隻讀需要調整隻讀許可權為讀寫許可權

5、檢查沒有問題後,進入management studio管理介面。
在資料庫,點選右鍵,附加資料庫,然後選擇主檔案的路徑,找到主檔案,然後確定。
為了方便檢視報錯,使用了命令的方式進行。
CREATE DATABASE [mytest] ON
( FILENAME = N'F:\Program Files\Microsoft SQL Server\MSSQL11.WFCPROD\MSSQL\DATA\mytest.mdf' ),
( FILENAME = N'F:\Program Files\Microsoft SQL Server\MSSQL11.WFCPROD\MSSQL\DATA\mytest_log.ldf' )
 FOR ATTACH
GO
報過的錯有:資料庫或檔案是隻讀的;當前使用者是否有操作許可權。這些需要進一步去檢查檔案屬性的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29371470/viewspace-2117493/,如需轉載,請註明出處,否則將追究法律責任。

相關文章