none
ログ配布における復元エラーについて RRS feed

  • 質問

  • 使用環境
    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"オプション付きでも、同様にエラーとなってしまいます。

    このような状況で、ログからの復元操作を行なう方法はありますでしょうか。
    ログ配布を再設定するのが早いと思いますが、ログファイル格納ディスク領域が逼迫しているので、何とか避けられないかと考えております。

    以上、よろしくお願いいたします。

    2009年10月30日 2:29

回答

  • ログ配布元にトランザクションログのバックアップファイルが存在しているのであれば、そのファイルを、ログ配布先へコピーし、適用をされてはどうでしょう。

    現在残っているトランザクションログのバックアップで復旧できなければ、ログ配布構成を再作成しなければならないと思います。
    • 回答としてマーク 菊地俊介 2009年12月10日 9:19
    2009年11月7日 1:04

すべての返信

  • ログ配布元にトランザクションログのバックアップファイルが存在しているのであれば、そのファイルを、ログ配布先へコピーし、適用をされてはどうでしょう。

    現在残っているトランザクションログのバックアップで復旧できなければ、ログ配布構成を再作成しなければならないと思います。
    • 回答としてマーク 菊地俊介 2009年12月10日 9:19
    2009年11月7日 1:04
  • NOBTA様
    回答有難うございました。バタバタしていたために返信が遅くなってしまい、申し訳ございませんでした。

    その後更に調査したところ、復元操作において"A_20091026220000"と"A_20091026230000"はスキップしていましたが、
    "A_20091027000000"のところで復元操作が中断されていることが判明しました。
    結果、存在しないファイルに対して復元処理を再開することはできないということで、ログ配布を再構成しなければならないという結論
    になりました。(ログファイルを削除してしまったのと同じ状態)

    "A_20091026220000"と"A_20091026230000"はスキップされたのに、何故"A_20091027000000"だけが中断されて
    しまったのか、また、LSNが連続しているにも係らずどうにもならないというのが解せないですが、取り敢えずは再構成の準備を進めている
    ところであります。
    2009年11月12日 9:12
  • 皆様、こんにちは。

    NOBTAさん、いつも回答ありがとうございます。

    NYAMA1026さん、はじめまして。フォーラムのご利用ありがとうございます。
    有用な情報と思われたため、NOBTAさんの回答へ回答マークをつけさせていただきました。

    今後ともフォーラムをよろしくお願いします。
    それでは!
    2009年12月10日 9:23