web-dev-qa-db-ja.com

15分ごとにトランザクションログのバックアップを取ると、6時間ごとのログバックアップよりも多くのディスク領域が消費されますか?

私たちの環境では、ネットワークストレージの空き容量が少なくなっています。同時に、トランザクションログのバックアップを、6時間ごとではなく、15分ごとに行うようにしたいと思います。私の質問は、ログのバックアップ間隔を6時間から15分ごとに変更すると、より多くのディスク容量が消費されるのでしょうか。

10
SqlNovice

いいえ。ただし、トランザクションログが小さくなる可能性があるため、SQL Serverが使用するスペースは少なくなります。

簡単にするために、毎分1MBのトランザクションログアクティビティを生成するとします。 15分後、15MBのログアクティビティが生成されました。ただし、トランザクションログは少なくとも15MB大きくする必要があることを意味します(完全復旧モデルの場合)。

そのログファイルをすぐにバックアップし、開いているトランザクション(またはSQL Serverがログファイルを使用し続ける原因となる他のホスト)がない場合は、一部をクリアできます。ログファイルを小さくしてください。

ただし、6時間待つと、360MBのログに記録されたアクティビティになります。トランザクションログファイル(LDF)は大きくなります。

ここでは、小さくて簡単な数値を使用しています。独自のトランザクションログ領域への影響を確認するために、独自の環境に合わせてそれらを変更する必要があります。

13
Brent Ozar

DBで変更が発生していなくても、ディスクに書き出される各トランザクションログファイルには少しオーバーヘッドがあります。私が持っている一部のデータベース(SQL Server 2014、バックアップで圧縮がオンになっている)では、非アクティブな期間中に書き込まれたトランザクションログは、TRNファイルあたり通常9.5 kbです。

ただし、そのオーバーヘッドを除いて、トランザクションログには、最後のTRNファイルが書き込まれた後に行われたすべての変更が含まれるため、総データ量は大きく変化しません。

ファイルを頻繁に書き込むほど、データ損失のリスクが少なくなります。

一部の専門家は、これらのログバックアップを実行することをお勧めします 毎分 。はい、そうです。私は通常、アクティビティの大部分が行われている営業時間中に約3分ごとに実行し、オフピーク時に約10〜15分ごとに実行します(勤務時間中に実際のアクティビティしかないシステムの場合、つまり、システムが24時間稼働の場合...).

6
CaM