エラーを防ぐためにデータベース ログ ファイルを自動的にクリーンアップするにはどうすればよいですか?

エラーを防ぐためにデータベース ログ ファイルを自動的にクリーンアップするにはどうすればよいですか?

私はウェブサイトをホストしていますが、時々エラーが発生し、The log file for database '%.*ls' is full.データベース ログ ファイルを消去するためにホスティング プロバイダーに連絡する必要があります。

ログ記録を無効にしたり、ログ ファイルがいっぱいにならないように構成するにはどうすればよいですか?

(私は Community Server エンジンを使用しているため、SQL の最適化は実行しないでください。)

答え1

ログ ファイルは、データベース復旧モデルに依存します。デフォルトは Full で、データベースとトランザクション ログのバックアップが実行されます。トランザクション ログをバックアップすると、切り捨てられます。トランザクション ログをバックアップしないと、永遠に大きくなります。データベース全体をバックアップするだけの場合は、復旧モデルを simple に変更します。

これを変更したら、ログ ファイルを縮小する必要があります (SQL Management Studio でデータベースを右クリックし、[タスク] > [縮小] > [ファイル])。自動縮小に設定することもできますが、基礎となる復旧モデルの問題を修正したら、その必要はないかもしれません。

答え2

これはトランザクション ログを指しており、エラー ログではありません。SQL Server では無効にできません。すべてのトランザクションは、データベースの整合性を保護するために、データベース自体に変更を書き込む前にトランザクション ログに書き込みます。データベースが完全復旧モデルを使用している場合 (お客様のデータベースはそうであると思われます)、トランザクション ログ レコードはトランザクション ログ バックアップ (完全バックアップではありません) の後にのみ上書きされます。復旧モデルをシンプルに変更すると、ログ レコードはより短い期間保持され、トランザクション ログ バックアップは不要になります。ただし、ホスティング プロバイダーによっては、これを制御できない場合があります。データベース設定をどの程度制御できるかを確認し、直接制御できない場合は変更を要求する必要があります。

関連情報