トップ回答者
ログ配布における復元エラーについて

質問
-
使用環境
OS: Windows Server 2003 R2 EE SP2
DB: SQL Server 2005 EE SP3ログ配布による遠隔地へのバックアップ処理にて、プライマリ側ログバックアップファイルを格納するディスクが領域不足になってしまい、
その間、ログバックアップ処理が数時間異常終了状態となりました。
ディスクの整理後、ログバックアップ、ファイル転送は再開しましたが、セカンダリ側で以下のメッセージで復元エラーが発生してしまいました。
メッセージ 4319、レベル 16、状態 1、行 1
前回の復元操作は中断されたので、ファイル 'ICMD_log' の処理は完了しませんでした。
中断されたバックアップ セットを復元するか、復元シーケンスを再開してください。
メッセージ 3013、レベル 16、状態 1、行 1
RESTORE LOG が異常終了しています。
定期的にバックアップを実施していますが、ログバックアップ異常終了中のバックアップファイルが下記のように歯抜けの状態になっています。
HEADERONLYで見たところ、バックアップ異常終了前後のファイルのLSNは連続しています。
また、VERIFYONLYではバックアップセットは有効となっています。本来は、
A_20091026210000.TRN
A_20091026220000.TRN
A_20091026230000.TRN
A_20091027000000.TRN
A_20091027010000.TRN
となるところ、A_20091026210000.TRN
A_20091027010000.TRN
となっているが、LSNは連続しています。
A_20091026210000は復元されましたが、(A_20091026220000~A_20091027000000はファイルなしで異常終了後に
スキップ、A_20091027010000の復元でエラーが続いています。
log_shipping_monitor_secondary、log_shipping_secondary_databases両テーブルの内容を見たところ、最後に復元された
ファイルは"A_20091026210000.TRN"となっていました。
試しに、中断された復元操作を再開する方法「http://technet.microsoft.com/ja-jp/library/ms187851.aspx」を参考に手動で
復元を実行してみましたが、エラーとなってしまいました。
RESTORE LOG A
FROM DISK = '\\second\sqllogship\A_20091027010000.trn' WITH NORECOVERY
GO
RESTORE LOG A
FROM DISK = '\\second\sqllogship\A_20091027010000.trn' WITH RESTART,NORECOVERY
GO
メッセージ 4319、レベル 16、状態 1、行 1
前回の復元操作は中断されたので、ファイル 'ICMD_log' の処理は完了しませんでした。
中断されたバックアップ セットを復元するか、復元シーケンスを再開してください。
メッセージ 3013、レベル 16、状態 1、行 1
RESTORE LOG が異常終了しています。
チェックポイント再起動ファイル 'G:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\ICMD.CKP'
が見つかりませんでした。RESTORE コマンドは、RESTART が指定されなかったものとして、最初から実行されます。
メッセージ 4319、レベル 16、状態 1、行 3
前回の復元操作は中断されたので、ファイル 'ICMD_log' の処理は完了しませんでした。
中断されたバックアップ セットを復元するか、復元シーケンスを再開してください。
メッセージ 3013、レベル 16、状態 1、行 3
RESTORE LOG が異常終了しています。
また、"CONTINUE_AFTER_ERROR"オプション付きでも、同様にエラーとなってしまいます。
このような状況で、ログからの復元操作を行なう方法はありますでしょうか。
ログ配布を再設定するのが早いと思いますが、ログファイル格納ディスク領域が逼迫しているので、何とか避けられないかと考えております。以上、よろしくお願いいたします。
回答
すべての返信
-
NOBTA様
回答有難うございました。バタバタしていたために返信が遅くなってしまい、申し訳ございませんでした。
その後更に調査したところ、復元操作において"A_20091026220000"と"A_20091026230000"はスキップしていましたが、
"A_20091027000000"のところで復元操作が中断されていることが判明しました。
結果、存在しないファイルに対して復元処理を再開することはできないということで、ログ配布を再構成しなければならないという結論
になりました。(ログファイルを削除してしまったのと同じ状態)
"A_20091026220000"と"A_20091026230000"はスキップされたのに、何故"A_20091027000000"だけが中断されて
しまったのか、また、LSNが連続しているにも係らずどうにもならないというのが解せないですが、取り敢えずは再構成の準備を進めている
ところであります。