SQL Server:トランザクションログのサイズを大きくするにはどうすればよいですか?
-
06-07-2019 - |
質問
トランザクションログのサイズを大きくするにはどうすればよいですか?トランザクションログを一時的に増やすこともできますか?
次のシナリオがあるとしましょう。現在のトランザクションログには大きすぎる削除操作があります。したくない:
- トランザクションログを増やします(現在のサイズを検出できますか?操作にトランザクションログが必要な大きさを教えてもらえますか?)
- (操作を実行)
- トランザクションログのバックアップ
- トランザクションログのサイズを復元します。
解決
簡単な答え:
- SQL 2k5 / 2k8 方法:データベースのサイズを大きくする(SQL Server Management Studio)(ログにも適用)、方法:データベースの縮小(SQL Server Management Studio)
- SQL 2K データベースのサイズを増やす方法(Enterprise Manager)、データベース(Enterprise Manager)
長答:ALTER DATABASE ... MODIFY FILE
を使用して、LOGファイルを含むデータベースファイルのサイズを変更できます。 master_files/sysfiles
(2k)または<dbname>.sys.database_files
(2k5 / 2k8)を検索して、ログの論理名を取得できます。また、 DBCC SHRINKFILE
を使用して、ファイルを縮小できます(可能な場合) )。
必要な大きさを教えてもらえますか トランザクションログは 操作?
多くの要因に依存します(この新しいデータか、更新か、削除か、どの復旧モデルか、SQL 2k8に圧縮はありますか、など)が、通常は予想よりも大きくなります。実行しようとしている更新のサイズの2.5倍と推定します。
更新:
削除と言うのを忘れました。概算では、削除されるデータのサイズの1.5倍です(すべてのインデックスを含む)。
他のヒント
トランザクションログは、必要に応じて拡張するように構成できます。自動的に成長するようにオプションを設定します。 ただし、トランザクションログが大きくなりすぎる(ディスク領域が不足する)場合や、SQLサーバーが使用できなくなる場合。
トランザクションログをバックアップします。 SQLは非アクティブなトランザクションを自動的に切り捨てます
トランザクションログを復元すると削減されます
自動拡張を設定するには:
- Management Studioでデータベースを右クリックします。
- プロパティを選択
- 自動拡張値を更新
最も重要な部分は、シナリオの最後の行です。<!> quot;トランザクションログのサイズを復元します。<!> quot;ログを元のサイズに戻すことを意味します。
これは多くの理由で非常に危険であり、SQLServerPediaでのいくつかの記事でそれらを取り上げました: