日志文件已損壞,如何修復(fù)SQLSERVER2000數(shù)據(jù)庫文件
文章出處:http://hlpi.cn 作者:開發(fā)部
日志文件已損壞,如何修復(fù)SQLSERVER2000數(shù)據(jù)庫文件
給你一個我日常維護數(shù)據(jù)庫的方法吧。
SQL Server 2000數(shù)據(jù)庫LDF損壞,只有mdf的恢復(fù)方法,。
SQL Server 2000數(shù)據(jù)庫文件遭到破壞的現(xiàn)象經(jīng)常出現(xiàn),,數(shù)據(jù)庫出錯是否可以修復(fù)呢?答案是可以的,,本日志以一個sql server 2000數(shù)據(jù)庫,,數(shù)據(jù)庫日志文件ldf損壞了,mdf正常,,數(shù)據(jù)庫附加失敗的修復(fù)方法總結(jié)一下,,數(shù)據(jù)庫數(shù)據(jù)恢復(fù)在很多時候比較復(fù)雜,當數(shù)據(jù)庫存在大量錯誤的時候,,使用DBCC修復(fù)也是不可以的,,需要拆解數(shù)據(jù)庫來搶救重要的數(shù)據(jù),下面是較為常見的一種SQL Server 2000數(shù)據(jù)庫修復(fù)方式:
1) 先及時把原來的數(shù)據(jù)庫文件(如test.mdf)備份到其他地方,。
2) 停掉服務(wù)器,。
3) 刪除這個test.mdf。
4) 重新建立一個test同名數(shù)據(jù)庫,。
5) 刪除這個新建立的test數(shù)據(jù)庫的test.ldf文件,,并用開始備份好test.mdf文件覆蓋這個新建立的test.mdf文件,。
6) 啟動數(shù)據(jù)庫服務(wù)器,。此時會看到數(shù)據(jù)庫test的狀態(tài)為“置疑”。這時候不能對此數(shù)據(jù)庫進行任何操作,。
.設(shè)置數(shù)據(jù)庫允許直接操作系統(tǒng)表,。此操作可以在SQL Server Enterprise Manager里面選擇數(shù)據(jù)庫服務(wù)器,按右鍵,,選擇“屬性”,,在“服務(wù)器設(shè)置”頁面中將“允許對系統(tǒng)目錄直接修改”。
7) 設(shè)置test為緊急修復(fù)模式
此時可以在SQL Server Enterprise Manager里面看到該數(shù)據(jù)庫處于“只讀\置疑\脫機\緊急模式”可以看到數(shù)據(jù)庫里面的表,但是僅僅有系統(tǒng)表
8) 下面執(zhí)行真正的恢復(fù)操作,,重建數(shù)據(jù)庫日志文件
執(zhí)行過程中,,如果遇到下列提示信息:
服務(wù)器: 消息 5030,級別 16,,狀態(tài) 1,,行 1
未能排它地鎖定數(shù)據(jù)庫以執(zhí)行該操作。
DBCC 執(zhí)行完畢,。如果 DBCC 輸出了錯誤信息,,請與系統(tǒng)管理員聯(lián)系。
說明您的其他程序正在使用該數(shù)據(jù)庫,,如果剛才您在操作中使用SQL Server Enterprise Manager打開了test庫的系統(tǒng)表,,那么退出SQL Server Enterprise Manager就可以了。
正確執(zhí)行完成的提示應(yīng)該類似于:
警告: 數(shù)據(jù)庫 'test' 的日志已重建,。已失去事務(wù)的一致性,。應(yīng)運行 DBCC CHECKDB 以驗證物理一致性。將必須重置數(shù)據(jù)庫選項,,并且可能需要刪除多余的日志文件,。
DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯誤信息,,請與系統(tǒng)管理員聯(lián)系,。
此時打開在SQL Server Enterprise Manager里面會看到數(shù)據(jù)庫的狀態(tài)為“只供DBO使用”。此時可以訪問數(shù)據(jù)庫里面的用戶表了,。
9) 驗證數(shù)據(jù)庫一致性
10.設(shè)置數(shù)據(jù)庫為正常狀態(tài)
如果沒有出錯,,那么恭喜,現(xiàn)在就可以正常的使用恢復(fù)后的數(shù)據(jù)庫啦,。
11)最后一步,,我們要將步驟6中設(shè)置的“允許對系統(tǒng)目錄直接修改”一項恢復(fù)