SQL Server系統數據庫損壞時的快速恢復使用

1.假設data文件夾中master,masterlog,model,modellog,msdbdata,msdblog的系統數據庫文件已損壞,複製Binn/template中的同名文件替換。

2.管理員模式運行cmd,命令行中輸入NET START MSSQLSERVER /f /T3608啓動

輸入SQLCMD -S .\windows驗證方式連接到實例。

更改master中各系統文件的路徑。(複製進來後,model等系統庫的路徑是一個E盤的無效路徑,故需更改。)

輸入以下語句更改。

ALTER DATABASE model MODIFY FILE ( NAME = modeldev, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\model.mdf');

ALTER DATABASE model MODIFY FILE ( NAME = modellog, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\modellog.ldf');

ALTER DATABASE msdb MODIFY FILE ( NAME = MSDBData, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MSDBData.mdf');

ALTER DATABASE msdb MODIFY FILE ( NAME = MSDBLog, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MSDBLog.ldf');

ALTER DATABASE tempdb MODIFY FILE ( NAME = tempdev, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\temp.mdf');

ALTER DATABASE tempdb MODIFY FILE ( NAME = templog, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\temp.ldf');

go

3.輸入exit退出sqlcmd,再輸入NET STOP MSSQLSERVER關閉master-only的實例連接。

然後NET START MSSSQLSERVER重啓服務。

4.這時已經可以連上了。但是因爲複製的master是一個原始的master庫,並沒有連接賬戶的信息。所以手動加入賬戶。

可用create login手動添加。並放置到相應的rolemember下(用EXEC sp_addsrvrolemember @loginname= N' ' ,@rolename=N' ')。

5.這時,在SSMS上可以用添加的賬戶連接上該數據庫了。

這種方法可以快速地恢復數據庫使用,但是用戶數據庫的信息是全新的。

所以,提前定期做好關鍵數據庫備份是最佳的選擇。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章