SQLServer 2000日誌檔案缺失只有MDF恢復資料庫的辦法

itscrambler發表於2013-08-27
SQL Server 2000資料庫LDF損壞,只有mdf的恢復方法。
SQL Server 2000資料庫檔案遭到破壞的現象經常出現,資料庫出錯是否可以修復呢?答案是可以的,本日誌以一個sql server 2000資料庫,資料庫日誌檔案ldf損壞了,mdf正常,資料庫附加失敗的修復方法總結一下,資料庫資料恢復在很多時候比較複雜,當資料庫存在大量錯誤的時候,使用DBCC修復也是不可以的,需要拆解資料庫來搶救重要的資料,下面是較為常見的一種SQL Server 2000資料庫修復方式:
1) 先及時把原來的資料庫檔案(如test.mdf)備份到其他地方。
2) 停掉伺服器。
3) 刪除這個test.mdf。
4) 重新建立一個test同名資料庫。
5) 用開始備份好test.mdf檔案覆蓋這個新建立的test.mdf檔案。
6) 啟動資料庫伺服器。此時會看到資料庫test的狀態為“置疑”。這時候不能對此資料庫進行任何操作。
.設定資料庫允許直接作業系統表。此操作可以在SQL Server Enterprise Manager裡面選擇資料庫伺服器,按右鍵,選擇“屬性”,在“伺服器設定”頁面中將“允許對系統目錄直接修改”。
7) 設定test為緊急修復模式
update sysdatabases set status=32768 where dbid=DB_ID('test')
此時可以在SQL Server Enterprise Manager裡面看到該資料庫處於“只讀置疑離線緊急模式”可以看到資料庫裡面的表,但是僅僅有系統表
8) 下面執行真正的恢復操作,重建資料庫日誌檔案
dbcc rebuild_log('test','C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log.ldf')
執行過程中,如果遇到下列提示資訊:
伺服器: 訊息 5030,級別 16,狀態 1,行 1
未能排它地鎖定資料庫以執行該操作。
DBCC 執行完畢。如果 DBCC 輸出了錯誤資訊,請與系統管理員聯絡。
說明您的其他程式正在使用該資料庫,如果剛才您在操作中使用SQL Server Enterprise Manager開啟了test庫的系統表,那麼退出SQL Server Enterprise Manager就可以了。
正確執行完成的提示應該類似於:
警告: 資料庫 'test' 的日誌已重建。已失去事務的一致性。應執行 DBCC CHECKDB 以驗證物理一致性。將必須重置資料庫選項,並且可能需要刪除多餘的日誌檔案。
DBCC 執行完畢。如果 DBCC 輸出了錯誤資訊,請與系統管理員聯絡。
此時開啟在SQL Server Enterprise Manager裡面會看到資料庫的狀態為“只供DBO使用”。此時可以訪問資料庫裡面的使用者表了。
9) 驗證資料庫一致性
dbcc checkdb('test')
10.設定資料庫為正常狀態
sp_dboption 'test','dbo use only','false'
如果沒有出錯,那麼恭喜,現在就可以正常的使用恢復後的資料庫啦。
11)最後一步,我們要將步驟6中設定的“允許對系統目錄直接修改”一項恢復。[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26273052/viewspace-1060878/,如需轉載,請註明出處,否則將追究法律責任。

相關文章