私たちの環境では、ネットワークストレージの空き容量が少なくなっています。同時に、トランザクションログのバックアップを、6時間ごとではなく、15分ごとに行うようにしたいと思います。私の質問は、ログのバックアップ間隔を6時間から15分ごとに変更すると、より多くのディスク容量が消費されるのでしょうか。
私たちの環境では、ネットワークストレージの空き容量が少なくなっています。同時に、トランザクションログのバックアップを、6時間ごとではなく、15分ごとに行うようにしたいと思います。私の質問は、ログのバックアップ間隔を6時間から15分ごとに変更すると、より多くのディスク容量が消費されるのでしょうか。
回答:
いいえ。ただし、トランザクションログが小さくなる可能性があるため、SQL Serverが使用するスペースは少なくなります。
簡単にするために、毎分1MBのトランザクションログアクティビティを生成するとします。15分後、15MBのログアクティビティが生成されました。ただし、トランザクションログは少なくとも15MB大きくする必要があることを意味します(完全復旧モデルの場合)。
そのログファイルをすぐにバックアップし、開いているトランザクションがない場合(またはSQL Serverがログファイルを使用中のままにする原因となる他のホストがない場合)、一部をクリアできます。ログファイルを小さくしてください。
ただし、6時間待つと、360MBのログに記録されたアクティビティになります。トランザクションログファイル(LDF)は大きくなります。
ここでは、小さくて簡単な数字を使用しています。自分の環境に合わせて変更し、自分のトランザクションログ領域への影響を確認したい場合があります。
DBで変更が発生していなくても、ディスクに書き出された各トランザクションログファイルには少しオーバーヘッドがあります。私が持っている一部のデータベース(SQL Server 2014、バックアップで圧縮がオンになっている)では、非アクティブな期間中に書き込まれたトランザクションログは、通常TRNファイルあたり9.5 kbです。
ただし、そのオーバーヘッドを除いて、トランザクションログには、最後のTRNファイルが書き込まれた後に行われたすべての変更が含まれるため、合計データの量は大きく変化しません。
ファイルを頻繁に書き込むほど、データ損失のリスクが少なくなります。
一部の専門家は、これらのログバックアップを毎分実行することを推奨しています。はい、そうです。私は通常、営業時間中に約3分おきにアクティビティを実行し、それからオフピーク時に約10〜15分おきに実行します(勤務時間中に実際のアクティビティしかないシステムの場合、つまり、システムが24時間稼働している場合...)