SQL Server 2012 Expressで単純なDBを実行しています。
ちょうど今日、データベースをバックアップすると、.bak
ファイルサイズは、直前のバックアップから数分前の2倍になります。今日、いくつかのバックアップを実行しました(SQL Server Management Studio->バックアップの種類:完全)。それぞれに.bak
ファイルは倍増し続けます。
SQL Server Mgmt Studioで、DBを右クリックすると、[レポート]-> [バックアップと復元のイベント]-> [成功したバックアップ操作]が展開されます。
ここのレポートは、最新のバックアップサイズが55MBとして記録されたことを示していますが、実際の.bak
ファイルは260MBです。今日の他の各バックアップも55MBのサイズとして記録され、対応する.bak
ファイルは数倍大きくなります(バックアップ操作ごとに増大します)。
何がうまくいかないのでしょうか?これが始まって以来、データベースに変更を加えていません。
毎回同じファイルにバックアップしていると思います。バックアップを実行するときに、INIT
またはNOINIT
へのオプションがあります。 NOINIT
(デフォルト)は、ファイルに追加のバックアップを追加するように指示します。
BOLごと:
{NOINIT | INIT}
バックアップ操作で、バックアップメディア上の既存のバックアップセットに追加するか上書きするかを制御します。デフォルトでは、メディア上の最新のバックアップセットに追加します(NOINIT)。
したがって、55MBのバックアップを実行するたびに、ファイルのサイズが55MB大きくなります。
バックアップコマンドにINIT
句を含めると、既存のバックアップが毎回上書きされます。
もちろん、他のオプションは、毎回新しいファイルにバックアップを実行し、古いファイルをクリーンアップすることです。これは、現在のバックアップの1つが不良である場合、または履歴に回復する必要がある場合に適しています。
SQL Server Management Studioウィザードを使用せずにSQLで直接実行している場合。バックアップ時に「NOINT」または「INIT」を指定して、ファイルへの追加または上書きをそれぞれ指定する必要があります。
ここにSQLがあります
BACKUP DATABASE <data_base_name> TO DISK = <File_Path> WITH INIT