トランザクションログのサイズを増やすにはどうすればよいですか?トランザクションログを一時的に増やすこともできますか?
次のシナリオがあるとしましょう。現在のトランザクションログには大きすぎる削除操作があります。したい:
- トランザクションログを増やします(現在のサイズを検出できますか?、操作に必要なトランザクションログの大きさを教えてもらえますか?)
- (私の操作を実行します)
- トランザクションログをバックアップする
- トランザクションログのサイズを復元します。
トランザクションログのサイズを増やすにはどうすればよいですか?トランザクションログを一時的に増やすこともできますか?
次のシナリオがあるとしましょう。現在のトランザクションログには大きすぎる削除操作があります。したい:
トランザクションログは、必要に応じて拡張するように構成できます。自動的に成長するオプションを設定します。ただし、トランザクションログが大きくなりすぎた場合(ディスク領域が不足した場合)、またはSQLサーバーが使用できなくなった場合。
トランザクションログをバックアップします。SQLは非アクティブなトランザクションを自動切り捨てます
トランザクションログを復元すると、削減されます
自動成長を構成するには:
短い答え:
長い答え:ALTER DATABASE ... MODIFY FILE
LOGファイルを含むデータベースファイルのサイズを変更するために使用できます。master_files/sysfiles
(2k)または<dbname>.sys.database_files
(2k5 / 2k8 )を検索して、ログの論理名を取得できます。またDBCC SHRINKFILE
、ファイルを縮小するために使用できます(可能な場合)。
操作に必要なトランザクションログの大きさを教えてもらえますか?
これは多くの要因(この新しいデータですか?更新ですか?削除ですか?リカバリモデルですか?SQL 2k8で圧縮されていますか?など)に依存しますが、通常は予想よりも大きくなります。実行しようとしている更新のサイズの2.5倍を見積もります。
アップデート:
あなたが言うのを逃したのはDELETEです。おおよその見積もりは、削除されたデータのサイズの1.5倍です(すべてのインデックスを含む)。
最も重要な部分は、シナリオの最後の行である「トランザクションログのサイズを復元する」です。ログを元のサイズに縮小することを意味します。
これは多くの理由で本当に危険です。SQLServerPediaでいくつかのストーリーでそれらを取り上げました。