1

この質問は初歩的なものかもしれませんが、次のようになります。

4 GB のログ ファイルを持つ SQL Server データベースがあります。DB は 16GB で、毎晩バックアップされます。

DB+ログ全体が毎晩バックアップされるため、定期的にログを切り詰めることはできますか?

4

3 に答える 3

2

バックアップの前に毎晩実行するメンテナンス スケジュールにこのようなことを行うことができます。これにより、ログ ファイルが 1 MB に縮小/切り詰められます。

BACKUP LOG DBNAME
TO disk = 'D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\DBNAME.log'
DBCC SHRINKFILE('DBNAME_Log', 1)
于 2009-02-02T20:51:22.003 に答える
1

データベースだけでなく、ログが毎晩バックアップされていますか?

もしそうなら、このデータベースは何をしますか? テーブル全体を削除して更新していますか? その場合、ログはトランザクションの量に適したサイズである可能性があります。通常のトランザクション負荷を大きくすることなく処理できるように、ログを十分に大きくする必要があります。ログが小さいと、パフォーマンスが低下する可能性があります。

このデータベースが本質的にトランザクションではない場合 (つまり、一度に 1 つのレコードではなく、完全な更新によってテーブルにデータが入力される場合)、復旧モードをシンプルに変更します。ただし、単にデータを再インポートするだけでなく、ログから回復できる必要があるトランザクション テーブルがある場合は、これを行わないでください。

于 2009-02-02T21:09:57.333 に答える
0

日中にログ バックアップを実行できる場合 (負荷などによっては、実行できる場合と実行できない場合があります)、そうすることでログ ファイルを管理下に置くことができます。これにより、ログ ファイル自体が非常に大きくなるのを防ぐことができ、問題が発生した場合に障害点の近くで復元できるという副次的な利点も得られます。

DBCC SHRINKFILE を使用してログ ファイルを 1 回圧縮する必要がありますが、その後定期的にバックアップした場合、小さいサイズでは安定しません。

于 2009-02-03T15:54:05.973 に答える