トップ回答者
modeldbのトランザクションログが肥大する要因について

質問
-
SQLServer2005 StandardEdition利用
modeldbのトランザクションログが10G超と肥大してしまいました。
modeldbの復旧モデルはデフォルトの「完全」となってはいますが、modeldbのトランザクションログがこのように肥大する要因はなんでしょうか?
ちなみに、業務利用しているDBの復旧モデルは「一括ログ」となっており、毎日完全バックアップを取得、週一で再起動していますが、
業務DBのトランザクションログの切り捨てを実施していなかったため、2年前に業務DBのトランザクションログが100G超となったことがあります。
これがなんらか関係しているのでしょうか?
業務DBについてはその後毎日ログの切り捨てを行い、適切なサイズを保っています。
ご教授よろしくお願いいたします。
回答
-
model は新規 DB を作成する際のテンプレートであって、トランザクションログに記録されるような操作を行うべき DB ではありません。
model のトランザクションログは何もしなければサイズが増えることはありません。
SQL Server に接続している何らかのアプリケーションか、あるいは接続できる開発者/管理者なりが model 上で何らかの処理を行っているので、その原因を確認すべきでしょう。
可能性のあるアプリケーションを見直すなり、DB への接続を追うなり、SQL トレースや Profiler で記録するなり、色々やり方はありますので、環境や状況に合わせたやり方で確認すれば良いかと思います。なお蛇足ながら、トランザクションログの内容自体を確認したい場合は以下のいずれかの操作で可能ですが、いずれも非ドキュメントの操作であり詳細については公式ドキュメントがありませんので、分かる方のみ参考にしてください。
DBCC LOG(<DBNAME>);
SELECT * FROM fn_dblog(null, null);MCITP(Database Developer/Database Administrator)
すべての返信
-
model は新規 DB を作成する際のテンプレートであって、トランザクションログに記録されるような操作を行うべき DB ではありません。
model のトランザクションログは何もしなければサイズが増えることはありません。
SQL Server に接続している何らかのアプリケーションか、あるいは接続できる開発者/管理者なりが model 上で何らかの処理を行っているので、その原因を確認すべきでしょう。
可能性のあるアプリケーションを見直すなり、DB への接続を追うなり、SQL トレースや Profiler で記録するなり、色々やり方はありますので、環境や状況に合わせたやり方で確認すれば良いかと思います。なお蛇足ながら、トランザクションログの内容自体を確認したい場合は以下のいずれかの操作で可能ですが、いずれも非ドキュメントの操作であり詳細については公式ドキュメントがありませんので、分かる方のみ参考にしてください。
DBCC LOG(<DBNAME>);
SELECT * FROM fn_dblog(null, null);MCITP(Database Developer/Database Administrator)