ログ末尾のバックアップが必要な状況とは?
必要な状況がいまいちわからない割に、このまま実行すると復元元のデータベースが復元しています…で止まるのでビックリする 自分がやりたいことでは必要ないということはわかった
想定する状況
1. 新しいデータベースproduction_testを作る
2. productionのバックアップファイルでproduction_testを特定の地点(一週間前とか)に復元する 3. 現行のデータベースはメンテナンスプランによって定期的にトランザクションログのバックアップを作成している
この場合、次回のメンテナンスプランでのトランザクションログバックアップを待てば良いからいらなくない?と思ってしまう
ログ末尾のバックアップは、すべての復元シナリオで必要となるわけではありません。復旧ポイントが、それより前のログバックアップに含まれているのであれば、ログ末尾のバックアップは不要です。また、データベースを移動するか置き換えて(上書きして)いる場合、ログ末尾のバックアップは不要であり、最新のバックアップ以降の特定の時点に復元する必要もありません。
その通りのシチュエーションだった
やっぱりいらないんだな
では必要な場合は?
以下に示すシナリオでは、ログ末尾のバックアップをお勧めします。
1. データベースがオンライン状態であり、データベースに対して復元操作を実行する予定がある場合に、ログ末尾のバックアップを最初に行う。オンラインデータベースのエラーを回避するには、BACKUPステートメントのWITH NORECOVERYオプションを使用する必要があります。 2. データベースがオフラインで起動できず、データベースを復元する必要がある場合に、まずログの末尾をバックアップする。このとき、トランザクションは発生しないので、WITH NORECOVERYの指定は省略できます。 3. データベースが破損したとき、BACKUPステートメントのWITH CONTINUE_AFTER_ERRORオプションを使用してログ末尾のバックアップを試す。破損しているデータベースでログ末尾のバックアップが成功するのは、ログファイルが破損しておらず、データベースがログ末尾のバックアップをサポートしている状態であり、一括ログ記録された変更がデータベースに含まれていない場合に限られます。ログ末尾のバックアップを作成できない場合、最新のログバックアップの後にコミットされたトランザクションはすべて失われます