SQL2000資料庫脫機/隻讀/緊急模式 修複
由于工作原因,經常與資料庫SQL2000打交道,不知不覺碰到很多奇奇怪怪的問題,其實也不奇怪,隻是我們
不了解而已,特獻出經驗,與大家分享,希望對大家有所幫助。
資料加路徑下,有兩個檔案,一個是 .mdf 另外一個是.ldf,其中,.mdf是資料檔案,裡面存放着資料資訊,
而.ldf檔案是日志檔案,但缺一不可,要是少了MDF檔案,那資料就丢失,麻煩就大了,相對于MDF來講,丢失
ldf檔案是小事情,但如果不懂得處理,估計有些人也要忙個半死。
現在以深圳泰格公司資料庫也講解。
深圳泰格超市軟體資料庫安裝後,SQL2000的DATA裡面也就有了兩個檔案,一個是tiger.mdf,另外一個當然就是
tiger.ldf檔案了。
但某些朋友在企業管理器裡面看到資料庫變成,脫機/隻讀/緊急模式 如下圖:

這樣管理軟體當然也運作不了,修複方法按以下步驟。
1,停止服務管理器。
2,進入資料庫安裝路徑,我是裝的D盤 (D:\Program Files\Microsoft SQL Server\MSSQL\Data),找到
tiger.ldf,删除 (這裡就以tiger為講解對象,其它資料庫當然要找到相對應的名稱進行删除)
3,啟動服務管理器
4,進入查詢分析器,
輸入以下語句
use master
go
sp_configure 'allow updates',1
reconfigure with override
注意輸正确,如果輸入後執行此語句,并且下面顯示
DBCC 執行完畢。如果 DBCC 輸出了錯誤資訊,請與系統管理者聯系。
已将配置選項 'allow updates' 從 0 改為 1。請運作 RECONFIGURE 語句以安裝。
說明執行正确,如果不顯示以上資訊,請檢查是否有輸錯!
此語句是的作用是:設定資料庫允許直接作業系統表。
5,執行第4步成功後, 接着設定資料庫為緊急修複模式。
update sysdatabases set status=-32768 where dbid=db_id('tiger')
下面顯示
(所影響的行數為 1 行)
6,繼續,重新資料庫日志(ldf)檔案。
dbcc rebuild_log('tiger','D:\Program Files\Microsoft SQL Server\MSSQL\Data\tiger.ldf')
這裡需要注意,我電腦資料庫檔案是裝在D盤,是以上面路徑是D盤,如果不同,要修改。
這樣,就重建了 tiger的ldf日志檔案。
下面顯示:
警告: 資料庫 'test' 的日志已重建。已失去事務的一緻性。應運作 DBCC CHECKDB 以驗證實體一緻性。
将必須重置資料庫選項,并且可能需要删除多餘的日志檔案。
7,現在檢查有沒有錯誤,再輸入文法
dbcc checkdb('tiger')
CHECKDB 發現了 0 個配置設定錯誤和 0 個一緻性錯誤(在資料庫 'tiger' 中)。
那說明第6步就建立成功沒問題了,下面就可以把SQL恢複模式了
8,設定資料庫為正常狀态
sp_dhoption 'tiger','dho use only','false'
9,最後一步,們要将步驟E中設定的“允許對系統目錄直接修改”一項恢複。因為平時直接作業系統表是一件比較危險的事情
恭喜你,資料庫修複完成!
到此結束,希望對大家有所幫助!