私はいくつかの MS SQL Server (Express) データベースの管理を任されています。私の主な DBA 経験は DB2 LUW と Oracle データベースであり、SQL Server がトランザクション ログを処理する方法を理解するのに苦労しています。
データベースを「完全」復旧モデルに設定し、100 MB のトランザクション ログ ファイルを事前に割り当てています。Windows スケジューラを使用して、毎日 00:00 に完全バックアップを実行し、02:00 から 2 時間ごとにログ バックアップを実行しています。
ログ バックアップを実行するとトランザクション ログ領域が自動的に解放されることは理解していましたが、そうではないようです。 (ゆっくりであれば)上昇します。
現在 5% であるため、まだパニック状態ではありませんが、SQL サーバーがこれを行う方法について混乱しています。
完全バックアップに使用する TSQL ステートメント:
BACKUP DATABASE [xxx] TO DISK = N'E:\backups\xxx.bak' WITH DESCRIPTION = N'blah', RETAINDAYS = 7, NOFORMAT, NOINIT, NAME = N'blah', NOSKIP, REWIND, NOUNLOAD, STATS = 10, CHECKSUM
ログ バックアップの TSQL ステートメントは次のとおりです。
BACKUP LOG [xxx] TO DISK = N'E:\backups\xxx.trn' WITH DESCRIPTION = N'blah', RETAINDAYS = 7, NOFORMAT, NOINIT, NAME = N'blah', NOSKIP, REWIND, NOUNLOAD, STATS = 10, CHECKSUM
では、ログ スペースを解放するにはどうすればよいでしょうか。
ご意見をお寄せいただきありがとうございます。