gist

2008年6月20日金曜日

障害後のMDFファイルとLDFファイルだけで復旧させる方法

トランザクションログがない状態で、障害発生後のMDFファイルとLDFファイルで復旧させる方法を説明します。この方法で復旧できない場合は、直近のバックアップファイルでの復旧となります。

1. 復旧準備

(1) 該当のデータベース物理ファイル(mdf、ldf)を、別のディレクトリに移動
(2) Enterprise Manager から、問題のデータベースと同じ名前、同じデータファイル名、同じログファイル名を作成します。
(3) SQL Server を停止
(4) 手順(1)にて移動させたデータベース物理ファイル(mdf、ldf)を、手順(2)で作成した新規のデータファイル、ログファイルに上書きコピー
(5) SQL Server を起動

※この時点ではまだデータベースにはアクセスできない

2. DBCC DBRECOVER
2-1 未確認モード解除

use master
go
sp_configure 'allow updates',1
go

reconfigure with override
go

-- 未確認モード解除
update master..sysdatabases set status = 16 where name = 'データベース名'
go


2-2 DBCC DBRECOVER
DBCC DBRECOVER ('データベース名', IGNOREERRORS)

※この時点で「未確認」のままであれば、緊急モードで DDBC REBUILD_LOG を実施。

2-3 DBCC CheckDB

DBCC CHECKDB ('データベース名')

0 件のコメント: