3

膨大なログが記録されている本番サーバーにデータベースがあり、その理由を理解しようとしているときに、次のクエリを発行しました。

SELECT name, log_reuse_wait_desc FROM sys.databases

問題のデータベースにはDATABASE_SNAPSHOT_CREATIONがあり、ドキュメントではそれが一時的な状態である必要があると言っていても、10分間この状態になっています。ログが管理しにくくなっているのはそれが原因だと思います。

どうすればこれを修正できますか?

PS:私はSIMPLEリカバリモードを使用しています。

4

3 に答える 3

2

OK-DBCC SQLPERF(LOGSPACE)を実行してみてください。これにより、そのログファイルの実際に使用されている量がわかります。

于 2011-05-05T19:55:42.997 に答える
2

私は同様の問題を抱えていました、今それは整理されています:)

->単純リカバリモードのデータベース。lo​​g_reuse_wait_descにこのDATABASE_SNAPSHOT_CREATIONが表示されます。

私がそれを整理するためにしたことは、以下のスクリプトを実行することでした:

use Databasename
go

checkpoint

私が何度も実行する「チェックポイント」の部分。その後、DATABASE_SNAPSHOT_CREATIONはなくなります。

クエストで使用したスクリプトは次のとおりです。

DBCC SQLPERF(LOGSPACE)

select log_reuse_wait_desc, * from sys.databases
where log_reuse_wait_desc != 'NOTHING'


SELECT * FROM sys.dm_exec_requests

checkpoint
于 2014-05-02T15:39:41.640 に答える
0

大規模な取引を開いていますか?データベースのスナップショットは、常に一貫性のある状態でデータベースから取得されます。大規模なトランザクションがたとえば10分間実行されている場合、スナップショットを完了する前に、トランザクションをスナップショットでロールバックする必要があります。

SELECT * FROM sys.dm_exec_requests

上記のクエリは、実行時に何が実行されているかを示します。

于 2011-05-05T19:04:33.883 に答える