.bakがバックアップであるデータベースよりもはるかに小さいのはなぜですか?


11

SQL Serverデータベースのバックアップを取ったところです。MDFファイルとLDFファイルの合計は約29 GBですが、.bakファイルはわずか23 GBで、約20%小さくなりました。

データセットの1つのバージョンが同じデータを含む別のバージョンよりも小さい場合の最初の推測はデータ圧縮ですが、圧縮は通常、特に高度に順序付けされたデータ(データベーステーブルなど)の場合、20%よりはるかに優れた圧縮率をもたらします。 )また、圧縮されたデータを簡単にさらに圧縮することはできませんが、.bakファイルは圧縮できることを知っています。

したがって、データが圧縮されておらず、何も破棄されていない場合(バックアップを作成することの目的は、後でデータを同じ状態に復元できるためです)、その20%が考慮されていません。

回答:


16

スペースはデータベースファイルに割り当てられましたが、使用されませんでした。

新しいデータベースを作成し、サイズを10GBにして、ファイルがディスク上にその容量を割り当てていることを確認できます。ただし、データベースにデータを配置するまで、ファイルは基本的に空であり、バックアップファイルのサイズは最小限になります。

HTH


10

完全バックアップの場合、LDFは通常無視できます

MDFには実際のデータが含まれています

Bakファイルには、mdf内で使用されているデータページのみが含まれています。一部のスペースは使用されません。このスペースは、インデックスの再構築などのオーバーヘッドユーザーです。

250gbのmdfを持つ可能性のあるDBに対して100gbのバックアップを作成することは非常に一般的です。私のmdfが私のバックアップと同じサイズの場合、予期しないDBの縮小またはディスク領域の不足などのレッドフラグになります。


4

DBを作成するときに、データとログファイルに割り当てる容量を(パフォーマンスのために)指定できます。このスペースは、テーブルにデータが格納されていない場合でも予約されます。データが書き込まれているエクステントのみがバックアップされます。

あなたの場合、MDF / LDFの合計は100 GBになることさえありますが、バックアップは、実行したバックアップに対して約23 GBです。約1 GBのデータが追加された場合でも、MDF / LDFの合計は100 GBですが、バックアップは約24 GBになります。

完全バックアップには、データが含まれているすべてのエクステントとログファイルのビットが含まれています。完全バックアップには、バックアップタスクの開始時だけでなく、バ​​ックアップタスクの終了時からのすべてのデータが含まれます。このため、ログファイルも少し必要になります。

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