web-dev-qa-db-ja.com

MSDBログファイルのサイズ

60のデータベースを持つSQL Server 2008クラスターがあります。

フルバックアップは毎晩実行され、ログバックアップは15分ごとに実行されます。

MSDBデータベース復旧モデルは、シンプル(デフォルト)に設定されています。

これらのジョブの履歴を表示できるようにするには、履歴ログをクリーニングするジョブをセットアップする必要がありました。

ただし、このジョブを実行すると、MSDBのログファイルが大きくなります(20〜40 GB)。

「空き領域」が80%をはるかに超えるため、ログファイルは定期的に縮小されます

ログファイルは必要に応じて拡大するように設定されており、「自動縮小」は行われません

このログファイルの増大を回避する方法はありますか?

「自動圧縮」を有効にするか、ログファイルを圧縮するジョブを作成する必要がありますか?

6
Lars

ただし、このジョブを実行すると、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です。データファイルとログファイルのサイズを事前に設定し、 自動拡張を調整 します。

この回答を参照してください- トランザクションログが増加し続ける、または領域不足になる理由

3
Kin Shah

「自動縮小」機能を有効にしないことを強くお勧めします。それは次の害を引き起こすからです:

1)ファイルシステムで多くのリソースを使用すると、断片化やその他のタスクが平準化されます。ページネーションを開始するため、CPU使用率とI/Oが高くなります。

2)制御できません。

3)データベースインデックスに悪影響を与える可能性があります。


このログファイルの増大を回避する方法

1)復旧モデルを単純復旧に変換する

2)トランザクションログのバックアップを取る

0
Ahmad Abuhasna