SQL2005數據庫置疑處理


2005中遇到置疑、丟失日志時按照網上常見的MSSQL2000修復方法來做,
結果發現行不通,甚至連一步都做不下去。其實,在MSSQL2005在處理置疑問題的思
路與MSSQL2000是一致的,但具體到一些語句上MSSQL2005 有了很大的變動。我們以
一個被誤刪日志文件的數據庫為例:
1.MSSQL2000在日志被誤刪除后會提示置疑(suspect),而在MSSQL2005中卻沒有特
殊標志,但圖標前的不見了當你查詢數據庫屬性時會有Error:945提示:

2.順着老思路,首先我們想到先進入緊急模式:
MSSQL2000進入緊急模式:
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go
update sysdatabases set status = 32768 where name = 'dbname'
MSSQL2005進入緊急模式的方法簡單了
alter database dbname set emergency

3.重建日志文件
MSSQL2000使用DBCC REBUILD_LOG
MSSQL2005中沒有了DBCC REBUILD_LOG
MSSQL2005中是使用dbcc checkdb('dbname',REPAIR_ALLOW_DATA_LOSS)
當然要想使用dbcc checkdb我們得進入單用戶模式:
sp_dboption 'dbname', 'single user','true'

alter database dbname set single_user(推薦使用后者)

4.再運行dbcc checkdb看看是否有損壞的頁
5.恢復多用戶模式
sp_dboption 'dbname', 'single user','false'

alter database dbname set multi_user(推薦使用后者)

6.恢復非緊急模式
alter database dbname set online

 

總結:

2005數據庫當出現置疑時,可以通過以下語句來解決:

Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go

alter database dbname set emergency

go

alter database dbname set single_user

go

dbcc checkdb('dbname',REPAIR_ALLOW_DATA_LOSS)

go

alter database dbname set multi_user

go

alter database dbname set online

go


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM