【備忘録】SQLServerでのトランザクションログの切り捨てでファイルが縮小し ない場合(2008R2)


sys.databasesのlog_reuse_wait_descがLOG_BACKUPな場合、バックアップが適切に行われていないケースがある。

このようなバックアップが適切に行われていない状況でトランザクションログのファイルサイズ縮小を行いたい場合、バックアップ(トランザクションログの切り捨て)と圧縮を2回繰り返す必要がある

1,1回目のバックアップで、切り捨てが行われる

2,次に圧縮をかけると、ログファイル内の仮想ログを先頭に集める(サイズ縮小は行われない)
このタイミングでフラグがLOG_BACKUPに変わる(再度バックアップが必要)

3,2回目のバックアップで、LOG_BACKUPからNOTHINGにフラグが切り替わる(圧縮可能に?)

4,圧縮を実施すると、ファイルが縮小される

たぶん、こんな感じ。

なお、バックアップは「NUL」へのバックアップでも事象は同じ

詳しくは、Microsoftの「ログの切り捨てが遅れる原因となる要因」を参照


5年 ago

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です