use master go sp_configure 'allow updates',1 reconfigure with overridego update sysdatabases set status =32768 where name='置疑的數(shù)據(jù)庫名稱' go sp_dboption '置疑的數(shù)據(jù)庫名稱', 'single user', 'true' go dbcc checkdb('置疑的數(shù)據(jù)庫名稱')go update sysdatabases set status =28 where name='置疑的數(shù)據(jù)庫名稱' go sp_configure 'allow updates', 0 reconfigure with overridego sp_dboption '置疑的數(shù)據(jù)庫名稱', 'single user', 'false' go
10、此時(shí)一般庫就算是恢復(fù)正常,可以用了。
update sysdatabases set status=-32768 where dbid=DB_ID('置疑的數(shù)據(jù)庫名稱')
關(guān)閉打開企業(yè)管理器,此時(shí)可以在SQL Server EnterpriseManager里面看到該數(shù)據(jù)庫處于“只讀\置疑\脫機(jī)\緊急模式”可以看到數(shù)據(jù)庫里面的表,但是僅僅有系統(tǒng)表
dbcc rebuild_log('置疑的數(shù)據(jù)庫名稱','(置疑的數(shù)據(jù)庫路徑)E:\Microsoft SQL Server\Data\置疑的數(shù)據(jù)庫名稱_log.ldf')
執(zhí)行過程中,如果遇到下列提示信息:
服務(wù)器: 消息 5030,級(jí)別 16,狀態(tài) 1,行 1
未能排它地鎖定數(shù)據(jù)庫以執(zhí)行該操作。
DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯(cuò)誤信息,請(qǐng)與系統(tǒng)管理員聯(lián)系。
說明您的其他程序正在使用該數(shù)據(jù)庫,如果剛才您在F步驟中使用SQL Server EnterpriseManager打開了eisdoc庫的系統(tǒng)表,那么退出SQL Server EnterpriseManager就可以了。(關(guān)閉企業(yè)管理器,如果別的機(jī)器從網(wǎng)絡(luò)訪問數(shù)據(jù)庫,也把網(wǎng)絡(luò)關(guān)閉)
正確執(zhí)行完成的提示應(yīng)該類似于:
警告: 數(shù)據(jù)庫 'eisdoc' 的日志已重建。已失去事務(wù)的一致性。應(yīng)運(yùn)行 DBCC CHECKDB以驗(yàn)證物理一致性。將必須重置數(shù)據(jù)庫選項(xiàng),并且可能需要?jiǎng)h除多余的日志文件。
DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯(cuò)誤信息,請(qǐng)與系統(tǒng)管理員聯(lián)系。
此時(shí)打開在SQL Server EnterpriseManager里面會(huì)看到數(shù)據(jù)庫的狀態(tài)為“只供DBO使用”。此時(shí)可以訪問數(shù)據(jù)庫里面的用戶表了。
dbcc checkdb('置疑的數(shù)據(jù)庫名稱')
一般執(zhí)行結(jié)果如下:
CHECKDB 發(fā)現(xiàn)了 0 個(gè)分配錯(cuò)誤和 0 個(gè)一致性錯(cuò)誤(在數(shù)據(jù)庫 '置疑的數(shù)據(jù)庫名稱' 中)。
DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯(cuò)誤信息,請(qǐng)與系統(tǒng)管理員聯(lián)系。
16、設(shè)置數(shù)據(jù)庫為正常狀態(tài)(如果沒有出錯(cuò),那么現(xiàn)在就可以正常的使用恢復(fù)后的數(shù)據(jù)庫啦。)