SQL Server疑い、不審、リカバリ中

5285 ワード

一、エラー状況
データベース・サービスを再起動すると、リカバリ中、疑い、不審な状況になっているデータベースがあることに気づく場合があります.この場合、DBAは緊張します.以下は実践で証明された方法です.
一度データベースサービスを再起動した後、データベースはリカバリ中であることを示したが、長い間この状態でオフライン時間が長すぎないため、データベースサービスを停止し、データファイルmdfとldfをコピーし、ldfファイルを削除し、これまでの経験によれば、ldfがない場合にmdfを使用してデータベースをリカバリできるようになった.同じ名前のデータベースを作成し、データベース・サービスを停止し、mdfファイルを上書きし、データベース・サービスを開始したが、この時点では不審な状態だった.
その中でmdfを使ってデータベースを添付するのは添付できないので、ずっと間違っています.
 
二、解決手順
方法1:スクリプトを使用してデータベース・リカバリを行います.
--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
 
方法2:この方法はまだ試したことがないので、みんなやってみてください.
CREATE DATABASE DataBaseName
ON (FILENAME = 'D:\DataBase\Name.mdf')
FOR ATTACH_REBUILD_LOG ;
GO

 
三、参考文献
SQL SERVER 2005データベースステータスが「疑わしい」解決方法
SQL Server 2005ログファイル添付データベースなし
DBCC CHECKDB