60のデータベースを持つSQL Server 2008クラスターがあります。
フルバックアップは毎晩実行され、ログバックアップは15分ごとに実行されます。
MSDB
データベース復旧モデルは、シンプル(デフォルト)に設定されています。
これらのジョブの履歴を表示できるようにするには、履歴ログをクリーニングするジョブをセットアップする必要がありました。
ただし、このジョブを実行すると、MSDB
のログファイルが大きくなります(20〜40 GB)。
「空き領域」が80%をはるかに超えるため、ログファイルは定期的に縮小されます
ログファイルは必要に応じて拡大するように設定されており、「自動縮小」は行われません
このログファイルの増大を回避する方法はありますか?
「自動圧縮」を有効にするか、ログファイルを圧縮するジョブを作成する必要がありますか?
ただし、このジョブを実行すると、MSDBのログファイルが大きくなります(20〜40 GB)。
問題は、実行中のジョブがmsdbをバッチでクリーンアップしていないことである可能性があります。擬似コードは次のようになります。
-- select top size as per batch to delete
-- since you are in simple recovery, perform `CHECKPOINT`
-- repeat until all the delete is complete.
「自動圧縮」を有効にするか、ログファイルを圧縮するジョブを作成する必要がありますか?
いいえ これは悪い習慣です 。一度の縮小でOKです。データファイルとログファイルのサイズを事前に設定し、 自動拡張を調整 します。
この回答を参照してください- トランザクションログが増加し続ける、または領域不足になる理由
「自動縮小」機能を有効にしないことを強くお勧めします。それは次の害を引き起こすからです:
1)ファイルシステムで多くのリソースを使用すると、断片化やその他のタスクが平準化されます。ページネーションを開始するため、CPU使用率とI/Oが高くなります。
2)制御できません。
3)データベースインデックスに悪影響を与える可能性があります。
このログファイルの増大を回避する方法
1)復旧モデルを単純復旧に変換する
2)トランザクションログのバックアップを取る