ログ末尾のバックアップ (SQL Server)

このトピックは、完全復旧モデルまたは一括ログ復旧モデルを使用する SQL Server データベースのバックアップと復元のみに関連しています。

ログ末尾のバックアップは、まだバックアップされていないすべてのログ レコード (ログの末尾) をキャプチャし、作業内容の消失を防いで、ログ チェーンの完全性を維持します。 SQL Server データベースをその最新の時点まで復元するには、トランザクション ログの末尾をあらかじめバックアップしておく必要があります。 ログ末尾のバックアップは、データベースの復旧プランの対象になる最後のバックアップとなります。

注意

ログ末尾のバックアップは、すべての復元シナリオで必要となるわけではありません。 復旧ポイントが、それより前のログ バックアップに含まれているのであれば、ログ末尾のバックアップは不要です。 また、データベースを移動するか置き換えて (上書きして) いる場合、ログ末尾のバックアップは不要であり、最新のバックアップ以降の特定の時点に復元する必要もありません。

このトピックの内容

  • ログ末尾のバックアップが必要となるシナリオ

  • 不完全なバックアップ メタデータが含まれたログ末尾のバックアップ

  • 関連タスク

  • 関連コンテンツ

ログ末尾のバックアップが必要となるシナリオ

以下に示すシナリオでは、ログ末尾のバックアップをお勧めします。

  • データベースがオンライン状態であり、データベースに対して復元操作を実行する予定がある場合に、ログ末尾のバックアップを最初に行う。 オンライン データベースのエラーを回避するには、BACKUP Transact-SQL ステートメントの WITH NORECOVERY オプションを使用する必要があります。

  • データベースがオフラインで起動できず、データベースを復元する必要がある場合に、まずログの末尾をバックアップする。 このとき、トランザクションは発生しないので、WITH NORECOVERY の指定は省略できます。

  • データベースが破損したとき、BACKUP ステートメントの WITH CONTINUE_AFTER_ERROR オプションを使用してログ末尾のバックアップを試す。

    破損しているデータベースでログ末尾のバックアップが成功するのは、ログ ファイルが破損しておらず、データベースがログ末尾のバックアップをサポートしている状態であり、一括ログ記録された変更がデータベースに含まれていない場合に限られます。 ログ末尾のバックアップを作成できない場合、最新のログ バックアップの後にコミットされたトランザクションはすべて失われます。

次の表は、BACKUP NORECOVERY と CONTINUE_AFTER_ERROR オプションをまとめたものです。

BACKUP LOG オプション

コメント

NORECOVERY

データベースの復元操作を続行する場合は、必ず NORECOVERY を使用します。 NORECOVERY を指定すると、データベースは復元中の状態になります。 これにより、ログ末尾のバックアップの後にデータベースが変化しないことが保障されます。

これと併せて、NO_TRUNCATE オプションまたは COPY_ONLY オプションを指定しない限り、ログは切り捨てられます。

重要な注意事項重要

データベースが破損している場合を除き、NO_TRUNCATE を使用しないことをお勧めします。

CONTINUE_AFTER_ERROR

破損したデータベースの末尾をバックアップする場合に限り、CONTINUE_AFTER_ERROR を使用します。

注意

破損したデータベースにログ末尾のバックアップを適用する場合、通常であればログ バックアップにキャプチャされるメタデータの一部を使用できない場合があります。 詳細については、後の「不完全なバックアップ メタデータが含まれたログ末尾のバックアップ」を参照してください。

不完全なバックアップ メタデータが含まれたログ末尾のバックアップ

データベースがオフラインである場合、データベースが破損している場合、またはデータ ファイルが欠落している場合でも、ログ末尾のバックアップではログの末尾がキャプチャされます。 これが原因で、復元情報コマンドや msdb のメタデータが不完全になる場合があります。 ただし、メタデータが不完全なだけで、キャプチャされたログは完全であり、使用できます。

ログ末尾のバックアップに不完全なメタデータが含まれている場合は、backupset テーブルの has_incomplete_metadata1 に設定されます。 また、RESTORE HEADERONLY の出力で HasIncompleteMetadata1 に設定されます。

ログ末尾のバックアップのメタデータが不完全な場合、ログ末尾のバックアップ時に、ファイル グループに関する情報の大部分が backupfilegroup テーブルから欠落します。 backupfilegroup テーブルのほとんどの列は NULL になり、意味を持つ列は次の列のみです。

  • backup_set_id

  • filegroup_id

  • type_desc

  • is_readonly

関連タスク

ログ末尾のバックアップを作成するには、「データベースが破損したときのトランザクション ログのバックアップ (SQL Server)」を参照してください。

トランザクション ログ バックアップを復元するには、「トランザクション ログ バックアップの復元 (SQL Server)」を参照してください。

[先頭に戻る]

関連コンテンツ

ありません。

[先頭に戻る]

関連項目

参照

BACKUP (Transact-SQL)

RESTORE (Transact-SQL)

概念

SQL Server データベースのバックアップと復元

コピーのみのバックアップ (SQL Server)

トランザクション ログのバックアップ (SQL Server)

トランザクション ログ バックアップの適用 (SQL Server)