データベースが損傷したときにトランザクション ログをバックアップする方法 (Transact-SQL)

このトピックでは、データベースが損傷しているときにトランザクション ログをバックアップする方法について説明します。

現在アクティブなトランザクション ログのバックアップを作成するには

  1. BACKUP LOG ステートメントを実行し、現在アクティブなトランザクション ログをバックアップします。このとき、次の指定を行います。

    • バックアップするトランザクション ログが属しているデータベースの名前。

    • トランザクション ログ バックアップが書き込まれるバックアップ デバイス。

    • NO_TRUNCATE 句。

      この句を使用すると、データベースにアクセスできない場合でも、トランザクション ログ ファイルにアクセスでき、損傷していなければ、トランザクション ログのアクティブな部分をバックアップできます。

  2. 必要に応じて、以下も指定します。

    • INIT 句。バックアップ メディアを上書きし、作成したバックアップを最初のファイルとしてバックアップ メディアに書き込むときに指定します。既存のメディア ヘッダーがない場合、ヘッダーが自動的に書き込まれます。

    • SKIP 句と INIT 句。バックアップ メディアに有効期限がまだ切れていないバックアップがある場合や、メディア名がバックアップ メディアに記録されている名前と一致しない場合でもバックアップ メディアを上書きするときに指定します。

    • FORMAT 句。バックアップ メディアを初めて使用する場合に、これを初期化して、既存のメディア ヘッダーを上書きするときに指定します。

      FORMAT 句を指定する場合、INIT 句を指定する必要はありません。

      重要な注意事項重要

      BACKUP ステートメントで FORMAT 句または INIT 句を使用すると、バックアップ メディアに格納されているバックアップが破棄されるので、十分注意して使用してください。

使用例

重要な注意事項重要

MyAdvWorks_FullRM データベースは、単純復旧モデルが使用されている AdventureWorks2008R2 のコピーです。ただし、ログ バックアップを可能にするために、データベースの完全バックアップを行う前に、ALTER DATABASE MyAdvWorks_FullRM SET RECOVERY FULL を使用して、データベースが完全復旧モデルを使用するように設定されています。

この例では、MyAdvWorks_FullRM データベースが破損していてアクセスできない場合でも、MyAdvWorks_FullRM データベースの現在アクティブなトランザクション ログのバックアップを作成します。ただし、トランザクション ログは破損しているためアクセスできません。

BACKUP LOG MyAdvWorks_FullRM
   TO MyAdvWorks_FullRM_log1
   WITH NO_TRUNCATE;
GO

BACKUP LOG MyAdvWorks_FullRM
   TO MyAdvWorks_FullRM_log1
   WITH NO_TRUNCATE;
GO