1

データベースサーバーのディスク容量が不足しています。トランザクションログは100GBを超えるスペースを使用しており、30GBの空きスペースしかありません。このため、一部のトランザクションの処理には無限の時間がかかり、9002エラーが発生します。

このトランザクションログを分割し、そのうちの1つを削除して空き領域を確保する方法はありますか?バックアップをとったり、別のディスクを追加してディスク容量を増やしたりする方法はありません。

トランザクションログを分割するよりも優れたソリューションがあれば、それは素晴らしいことです。

4

2 に答える 2

1

ここからリンクされている大きなログの処理については、多くの優れたリソースがあります。

https://sqlblog.org/2009/07/27/oh-the-horror-please-stop-telling-people-they-should-shrink-their-log-files

基本的に、より多くのスペースを確保するか、ログをバックアップするか、データベースで単純リカバリモードに切り替える必要があります。それぞれのアプローチには浮き沈みがあります。

于 2012-09-18T21:26:53.730 に答える
1

実際には

データ、ログ、OSは異なるディスク上にある必要があります...たとえば、OSの場合はC、データの場合はE、ログの場合はLです。

トランザクションのバックアップ後にトランザクションログが縮小しない場合は、設定を確認することをお勧めします。FULLまたはSimple(ログを縮小しません)。

データベースがsimpleに設定されているログを強制的に縮小するには:

Alter database <databasename>set Recovery simple   /* if database is set to FULL */
USE <databasename>
DBCC SHRINKFILE (<log_name>, 0, TRUNCATEONLY)
GO
Alter database <databasename> set Recovery full  /* if database is set to FULL */

お役に立てれば

于 2012-09-19T04:38:36.350 に答える