1. 程式人生 > >如何處理SQL Server資料庫出現“可疑”情況

如何處理SQL Server資料庫出現“可疑”情況

在資料庫使用過程中,由於突然斷電或者伺服器突然宕機的情況下,SQL Server資料庫為了避免資料庫被錯誤使用或者非法恢復時,會將一些資料庫置為“可疑”狀態。這時資料庫是不能被外界訪問的,所以必須將這些資料庫恢復正常。

 

利用以下SQL語句可以對“可疑”資料庫進行恢復。

 

USE MASTER 

GO 

SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE 

GO 

ALTER DATABASE dbName SET EMERGENCY 

GO 

sp_dboption 'dbName', 'single user', 'true' 

GO 

DBCC CHECKDB('dbName','REPAIR_ALLOW_DATA_LOSS') 

GO 

ALTER DATABASE dbName SET ONLINE 

GO 

sp_configure 'allow updates', 0 reconfigure with override 

GO 

sp_dboption 'dbName', 'single user', 'false' 

GO 

儘管這樣能夠使得資料庫恢復正常,至少可以讓對資料庫進行操作。包括查詢、更新等。但是這並沒有真正的解決問題,只是修改了資料庫的“可疑”狀態。

 

接著就需要找具體問題所在,發生這種情況的緣由很多,或是資料庫操作、或是觸發器、儲存過程、索引、日誌。如果你的資料庫不是很大,其間的資料不多,希望能夠重新建立資料庫,然後再匯入資料。如果很大,而且很重要不能及時更新的話,希望大家搜尋一下資料庫或者系統、應用程式的日誌,看一下日誌記錄,或許你會發現一些可疑的苗頭。

 

最後,發現數據庫在記錄日誌的時候出現了問題,建議刪除久的日誌檔案(當然主日誌檔案是不能刪除的),你可以新增新的日誌檔案。並檢查資料庫、日誌的自增長是否正常。