共計 1270 個字符,預計需要花費 4 分鐘才能閱讀完成。
SQL Server 置疑、可疑、正在恢復等情況分析,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
一、出錯情況 有些時候當你重啟了數據庫服務,會發現有些數據庫變成了正在恢復、置疑、可疑等情況,這個時候 DBA 就會很緊張了,下面是一些在實踐中得到證明的方法。在一次重啟數據庫服務后,數據庫顯示正在恢復,過了很久還是這個狀態,離線時間不能太長,所以就想起了一個方法,就是把數據庫服務停止了,把數據文件 mdf 和 ldf 拷貝出來,刪除了 ldf 文件,按照之前的經驗,好像是在沒有 ldf 的情況下可以使用 mdf 來恢復數據庫。創建了一個同名的數據庫,停止數據庫服務,覆蓋 mdf 文件,再啟動數據庫服務,這個時候還是處于可疑的狀態。其中使用 mdf 來附加數據庫是附加不了的,一直報錯。
二、解決步驟 方法一:使用腳本進行數據庫恢復。 代碼如下:
–DataBaseName 為修復的數據名 USE MASTER GO SP_CONFIGURE ALLOW UPDATES ,1 RECONFIGURE WITH OVERRIDE GO ALTER DATABASE [DataBaseName] SET EMERGENCY GO sp_dboption DataBaseName , single user , true GO DBCC CHECKDB(DataBaseName , REPAIR_ALLOW_DATA_LOSS) GO ALTER DATABASE [DataBaseName] SET ONLINE GO sp_configure allow updates , 0 reconfigure with override GO sp_dboption DataBaseName , single user , false GO
SQL 講解:
1) 使用指定值強制重新配置:(1、0 表示為真假)sp_configure allow updates , 1 reconfigure with override
2) 設置為緊急狀態:alter database DataBaseName set emergency
3) 設置為單用戶模式:alter database [DataBaseName] set single_user 或者:Sp_dboption DataBaseName , single user , true
4) 修復發現的錯誤:DBCC CHECKDB(DataBaseName , REPAIR_ALLOW_DATA_LOSS)
5) 設置為聯機、在線:ALTER DATABASE [DataBaseName] SET ONLINE
方法二:這個方法還沒嘗試過,大家可以試試看。代碼如下:
CREATE DATABASE DataBaseName ON (FILENAME = D:\DataBase\Name.mdf) FOR ATTACH_REBUILD_LOG ; GO
關于 SQL Server 置疑、可疑、正在恢復等情況分析問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注丸趣 TV 行業資訊頻道了解更多相關知識。