このトピックは、完全復旧モデルまたは一括ログ復旧モデルを使用している SQL Server データベースのバックアップと復元にのみ関連します。
ログ末尾のバックアップでは、まだバックアップされていないログ レコード (ログの末尾) をキャプチャして、作業の損失を防ぎ、ログ チェーンをそのまま保持します。 SQL Server データベースを最新の時点に復旧する前に、トランザクション ログの末尾をバックアップする必要があります。 ログ末尾のバックアップは、データベースの復旧計画の最後のバックアップになります。
注
すべての復元シナリオでログ末尾のバックアップが必要なわけではありません。 復旧ポイントが以前のログ バックアップに含まれている場合、ログ末尾のバックアップは必要ありません。 また、データベースを移動または置き換える (上書きする) ため、最新のバックアップの後の特定の時点に復元する必要がない場合は、ログ末尾のバックアップは不要です。
Tail-Log バックアップが必要なシナリオ
次のシナリオでは、ログ末尾のバックアップを作成することをお勧めします。
データベースがオンラインで、データベースに対して復元操作を実行する予定の場合は、まずログの末尾をバックアップします。 オンラインデータベースでエラーを回避するためには、BACKUPTransact-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は、破損したデータベースの末尾をバックアップする場合にのみ使用します。 注: 破損したデータベースでログの末尾をバックアップすると、通常ログ バックアップでキャプチャされるメタデータの一部が使用できなくなる可能性があります。 詳細については、このトピックの「不完全なバックアップ メタデータを持つバックアップ」(Tail-Log)を参照してください。 |
Tail-Log 不完全なバックアップメタデータを持つバックアップ
ログ末尾のバックアップでは、データベースがオフライン、破損、またはデータ ファイルがない場合でも、ログの末尾がキャプチャされます。 これにより、復元情報コマンドと msdb からの不完全なメタデータが発生する可能性があります。 ただし、メタデータのみが不完全です。キャプチャされたログは完全で使用可能です。
ログ末尾のバックアップに不完全なメタデータがある場合、 backupset テーブルでは 、has_incomplete_metadata は 1 に設定されます。 また、 RESTORE HEADERONLY の出力では、 HasIncompleteMetadata が 1 に設定されています。
ログ末尾のバックアップのメタデータが不完全な場合、ログ末尾のバックアップ時に 、backupfilegroup テーブルにファイル グループに関するほとんどの情報が見つかりません。 ほとんどの backupfilegroup テーブル列は NULL です。意味のある列は次のとおりです。
バックアップセット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)