--常規SQL SERVER資料庫置疑後恢複步驟
--1. 恢複步驟:
--a.將smlog_log.ldf檔案備份到其它目錄下;
--b.將來源目錄下的smlog_log.ldf檔案改名為smlog_log_bak.ldf;
--c.執行以下語句修改資料庫的狀態:
use Master
go
update sysdatabases set status=32768 where name='資料庫名稱' --修改狀態,設為緊急狀態
go
shutdown with nowait --停止資料庫伺服器
go
--d.退出SQL並在(COMMAND)命令列模式中通過下面的代碼重新啟動SQL:
sqlservr -c -T3608 -T4022 --安全模式啟動SQL SERVER
--e.在查詢分析器中執行以下語句來查看剛剛修改過狀態的資料庫狀態:
select Name,Status from sysdatabases where Name='資料庫名稱'
--f.執行以下代碼建立記錄檔:
dbcc traceon(3604)--跟蹤
dbcc rebuild_log('資料庫名稱','記錄檔全路徑') --檔案名稱要有全路徑和副檔名
--dbcc rebuild_log('prs_msc','d:\mscsql\mssql\data\prs_msc_log.ldf
--g.將資料庫置回正常狀態:
update sysdatabases set status=0 where name='資料庫名稱'
--h.重新啟動資料庫後執行以下語句檢查資料庫:
DBCC CHECKDB --如果執行完有錯誤用以下語句修複
--i.要修複資料庫必需將資料庫改為單一使用者模式:
Exce sp_dboption '資料庫名稱','single user','true'---('false'恢複多使用者)
--j.執行以下語句修複資料庫:
DBCC CHECKDB('資料庫名稱',REPAIR_ALLOW_DATA_LOSS)
REPAIR_ALLOW_DATA_LOSS:是比較進階的修複方式
REPAIR_FAST:是簡單快速的修複方式
/*
處理狀態就為"置疑"的資料庫
備份資料檔案,然後按下面的步驟處理:
1.建立一個同名的資料庫(資料檔案與原來的要一致)
2.再停掉sql server(注意不要分離資料庫)
3.用原資料庫的資料檔案覆蓋掉這個建立的資料庫
4.再重啟sql server
5.此時開啟企業管理器時會出現置疑,先不管,執行下面的語句(注意修改其中的資料庫名)
6.完成後一般就可以訪問資料庫中的資料了,這時,資料庫本身一般還要問題,解決辦法是,利用資料庫的指令碼建立一個新的資料庫,並將資料導進去就行了.
*/
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1
GO
RECONFIGURE WITH OVERRIDE
GO
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的資料庫名'
Go
sp_dboption '置疑的資料庫名','single user','true'
Go
DBCC CHECKDB('置疑的資料庫名')
Go
update sysdatabases set status=28 where name='置疑的資料庫名'
Go
sp_configure 'allow updates',0
GO
reconfigure with override
Go
sp_dboption '置疑的資料庫名', 'single user','false'
Go