SQLSERVER2008-数据库可疑的解决步骤
1?把問題數(shù)據(jù)庫備份后直接刪除
??停掉SQLSERVER服務(wù),把服務(wù)器上出問題的數(shù)據(jù)庫,?假設(shè)名稱為?ErrorDB的數(shù)據(jù)庫文件及日志文件備份到其他目錄,然后直接將其刪除,把其數(shù)據(jù)庫文件及日志文件也刪除
2?新建同名數(shù)據(jù)庫
??啟動(dòng)SQLSERVER服務(wù),新建同名數(shù)據(jù)庫ErrorDB,文件目錄和日志和原來一致
3?用備份的數(shù)據(jù)庫文件替換新的數(shù)據(jù)庫文件
??停掉SQLSERVER服務(wù),把備份的數(shù)據(jù)庫文件替換新的數(shù)據(jù)庫文件(只替換數(shù)據(jù)庫文件,不替換日志文件)
??啟動(dòng)SQLSERVER服務(wù),打開數(shù)據(jù)庫,這時(shí)數(shù)據(jù)庫應(yīng)該是不能訪問的
-------------------設(shè)置應(yīng)急模式、單用戶模式、檢查修復(fù)數(shù)據(jù),取消單用戶模式----------------------
4?將數(shù)據(jù)庫設(shè)置為應(yīng)急狀態(tài)
??alter database ErrorDB set emergency
??執(zhí)行后,為了保險(xiǎn)起見,重新停止、開啟的SQLSERVER服務(wù)
??再打開數(shù)據(jù)庫,已經(jīng)可以看到里面的內(nèi)容了,如表,視圖,存儲(chǔ)過程等
??數(shù)據(jù)庫名稱后有緊急標(biāo)志,能看到數(shù)據(jù)庫結(jié)構(gòu),但無法進(jìn)行備份等操作
5?將數(shù)據(jù)庫設(shè)置為單用戶模式
??ALTER DATABASE ErrorDB SET SINGLE_USER
6?對數(shù)據(jù)庫進(jìn)行檢查修復(fù)
??dbcc checkdb(EIMSDb,REPAIR_ALLOW_DATA_LOSS)
??dbcc checkdb(EIMSDb,REPAIR_REBUILD)
??操作后,仍然停止啟動(dòng)SQLSERVER服務(wù)(不確定是否需要,我只是為了想無干擾查看執(zhí)行后的數(shù)據(jù)庫狀況)
?
??重新打開數(shù)據(jù)庫,已經(jīng)是正常狀態(tài)了,沒有應(yīng)急提示了
7?取消單用戶模式
??exec sp_dboption EIMSDb, N'single', N'false'
?
至此,數(shù)據(jù)庫恢復(fù)完畢,對數(shù)據(jù)庫進(jìn)行BAK
總結(jié)
以上是生活随笔為你收集整理的SQLSERVER2008-数据库可疑的解决步骤的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 评分9.3,你想要的那本书,来了!
- 下一篇: 原来搞单片机也可以面向对象