180


62

同僚に送る前に、LDFファイルを空にする必要があります。 SQL Serverにログの切り捨てを強制するにはどうすればよいですか。

7 回答


287


管理スタジオで:

  • ライブ環境ではこれを行わないでくださいが、開発者を確実に縮小するために できる限りdb:

  • データベースを右クリックし、「プロパティ」、「オプション」の順に選択します。

  • 「復旧モデル」が「フル」ではなく「シンプル」に設定されていることを確認します

  • OKをクリック

  • データベースをもう一度右クリックし、 タスク - > 縮小 - > `ファイル`を選択します

  • ファイルタイプを「ログ」に変更します

  • OKをクリックしてください。

あるいは、それを行うためのSQL:

 ALTER DATABASE mydatabase SET RECOVERY SIMPLE
 DBCC SHRINKFILE (mydatabase_Log, 1)

参照:http://msdn.microsoft.com/en-us/library/ms189493.aspx


122


よく覚えているなら… クエリアナライザまたは同等のもの

BACKUP LOGデータベース名WITH TRUNCATE_ONLY

DBCC SHRINKFILE(databasename_Log、1)


54


SQL Server 2008の場合、コマンドは次のとおりです。

ALTER DATABASE ExampleDB SET RECOVERY簡易DBCC SHRINKFILE( 'ExampleDB_log'、0、TRUNCATEONLY)

これにより、14GBのログファイルが1MBに減少しました。


34


SQL 2008では、ログを `nul`デバイスにバックアップできます。

BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10

そして `DBCC SHRINKFILE`を使ってログファイルを切り捨てます。


3


truncate_onlyとそれに続くdbcc shrinkfileコマンドを使用したバックアップログlogname


0


今日SQL Server 2012でこの問題に遭遇しました。

  • 承認された回答がうまくいきませんでした。

  • Management Studioで[タスク] - > [縮小] - > [ファイル]を試しましたが、同じエラー[Log full]で失敗しました。

  • 試行されたSetRecoveryとDBCC SHRINKFILEが失敗しました。

ただし、DBCC SHRINKFILE(myDatabase_log、1)という単一のコマンドを実行すると、ログが13 Gbから11 Mbに縮小されました。

私は開発環境で作業していて、ログ自体には興味がありませんでした。 実稼働環境では、まずバックアップしてからログを縮小する必要があると思います。


-5


もう1つの選択肢は、Management Studioを介してデータベースをデタッチすることです。 その後、単にログファイルを削除するか、名前を変更して後で削除します。

Management Studioに戻り、データベースを再度接続します。 添付ウィンドウで、ファイルのリストからログファイルを削除します。

DBは新しい空のログファイルを添付して作成します。 すべて問題ないことを確認したら、名前を変更したログファイルを削除できます。

あなたはおそらく本番データベースにこれを使うべきではありません。