SQL Serverでの連続するバックアップごとに.bakファイルのサイズが増加/倍増するのはなぜですか?


10

SQL Server 2012 Expressで単純なDBを実行しています。

ちょうど今日、データベースをバックアップすると、.bakファイルサイズは、直前のバックアップの数分前の2倍になります。今日、いくつかのバックアップを実行しました(SQL Server Management Studio->バックアップの種類:完全).bak。ファイルごとに2倍になっています。

SQL Server Mgmt Studioで、DBを右クリックすると、[レポート]-> [バックアップと復元のイベント]-> [成功したバックアップ操作]が展開されます。

ここのレポートは、最新のバックアップサイズが55MBと記録されていることを示してい.bakますが、実際のファイルに移動すると260MBです。今日の他の各バックアップも55MBのサイズとして記録されましたが、対応する.bakファイルは数倍大きくなっています(バックアップ操作ごとに増加しています)。

何がうまくいかないのでしょうか?これが始まって以来、データベースに変更を加えていません。

回答:


14

各バックアップで「初期化」または「フォーマット」されていないため、バックアップファイルにはデータベースの複数のコピーが含まれています。

[データベースのバックアップ]ダイアログボックスの[オプション]タブに移動し、[既存のすべてのバックアップセットを上書きする]を選択します。

ここに画像の説明を入力してください


8

毎回同じファイルにバックアップしていると思います。バックアップを実行するINITNOINIT、実行するときにオプションがあります。 NOINIT(デフォルト)は、ファイルに追加のバックアップを追加するように指示します。

BOLごと:

{NOINIT | 初期化 }

バックアップ操作で、バックアップメディア上の既存のバックアップセットに追加するか上書きするかを制御します。デフォルトでは、メディア上の最新のバックアップセットに追加します(NOINIT)。

したがって、55MBのバックアップを実行するたびに、ファイルのサイズが55MB大きくなります。

このINIT句をバックアップコマンドに含めると、既存のバックアップが毎回上書きされます。

もちろん、他のオプションは、毎回新しいファイルにバックアップを実行し、古いファイルをクリーンアップすることです。これは、現在のバックアップの1つが不良である場合、または履歴に回復する必要がある場合に適しています。


2

SQL Server Management Studioウィザードを使用せずにSQLで直接実行している場合。バックアップ時に「NOINT」または「INIT」を指定して、ファイルに追加または上書きすることをそれぞれ指定する必要があります。

ここにSQLがあります

BACKUP DATABASE <data_base_name> TO DISK = <File_Path> WITH INIT
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.