web-dev-qa-db-ja.com

40GB LOGファイルを圧縮する方法

SQL Server 2008のログファイルが40Gbに増加し、それを縮小したいという問題があります。私が使用しているクエリは

    ALTER DATABASE DatabaseName SET RECOVERY SIMPLE
use DatabaseName
GO
CHECKPOINT
GO
DBCC SHRINKFILE(transactionloglogicalfilename,TRUNCATEONLY)
GO
ALTER DATABASE DatabaseName SET RECOVERY FULL

はログファイルをより詳細に圧縮していません。また、圧縮ログファイルは短時間ですぐに拡張されています。

それで問題はどこにありますか?

ログファイルを1 GBまで縮小したかったのですが、データベースサイズは16 GBです。

SQL Server 2008 R2を持っています

誰か助けてください

7
shane

Management Studioに移動し、データベースを右クリックします。[タスク]> [縮小]> [ファイル]。

[ファイルの種類]で、ログファイルを選択します。シュリンクアクションとして[未使用スペースを解放]が選択されていることを確認して、[OK]をクリックします。

縮小されたログファイルが再び急速に拡大するのは、おそらく完全復旧モデルに設定されているためです。 simpleに設定すると、変更がすぐにコミットされ、ログに保存されません。シンプルは、フルバックアップを定期的に実行する場合にのみ有効です。

10
DanBig

それ以上成長しないようにしたい場合は、データベースロギングをシンプルに設定する必要があります(ただし、データベースのフルバックアップを実行する場合のみ!)。

  1. 右クリックデータベース
  2. プロパティを選択します
  3. 選択オプション
  4. リカバリモードをsimpleに設定します

これは機能し、バックアップスケジュールがフルバックアップの場合に最適です。そのようなシナリオでは、ログがトリミングされず、急上昇するためです。

Grandfather&Father&Sonバックアップテクニックを使用する場合。つまり、毎月の完全バックアップ毎週の完全バックアップ、そしてすべての日単位の増分バックアップを意味します。そのためには、完全復旧モードが必要です。そのため、データベースをフルバックアップに設定することを考えると、それを停止してバックアップをシンプルリカバリモードに切り替えるか、バックアップの実行を正しく開始すると、ログがバックアップによってトリミングされます。

シンプルに切り替えてからフルに切り替える場合、ログは再び大きくなります。

これをDanBigの提案と組み合わせて、次の手順を実行してデータベースを圧縮します。

  1. SQL Management Studioを開く
  2. データベースを右クリックし、[タスク]> [縮小]> [ファイル]をクリックします。
  3. [ファイルの種類]で、ログファイルを選択します。オプションRelease unused spaceを必ず縮小アクションとしてマークし、[OK]をクリックします。
5
MadBoy