SQL Server 置疑、可疑、正在恢複等情況分析

來源:互聯網
上載者:User

一、出錯情況
有些時候當你重啟了資料庫服務,會發現有些資料庫變成了正在恢複、置疑、可疑等情況,這個時候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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.