¿Por qué un .bak es mucho más pequeño que la base de datos de la que es una copia de seguridad?

11

Acabo de hacer una copia de seguridad de una base de datos de SQL Server. Los archivos MDF y LDF juntos totalizan alrededor de 29 GB, pero el archivo .bak solo tenía 23 GB, aproximadamente un 20% más pequeño.

Mi primera suposición cuando una versión de un conjunto de datos es más pequeña que otra versión que contiene los mismos datos sería la compresión de datos, pero la compresión generalmente produce una relación de compresión mucho mejor que el 20%, especialmente para datos altamente ordenados (como tablas de bases de datos. ) Además, los datos comprimidos no pueden comprimirse más fácilmente, pero sé que los archivos .bak pueden comprimirse.

Entonces, si los datos no se comprimen y no se descarta nada (porque el objetivo principal de hacer una copia de seguridad es poder restaurarlos a un estado idéntico después), entonces, ¿cuál es ese 20% que no se tiene en cuenta?

Mason Wheeler
fuente

Respuestas:

16

El espacio se asignó a los archivos de la base de datos, pero no se utilizó.

Puede crear una nueva base de datos, hacer que tenga un tamaño de 10 GB y ver los archivos asignar esa cantidad de espacio en el disco. Sin embargo, hasta que coloque datos en la base de datos, el archivo está esencialmente vacío y el tamaño de su archivo de respaldo será mínimo.

HTH

SQLRockstar
fuente
10

Para una copia de seguridad completa, generalmente se puede ignorar el LDF

El MDF contiene los datos reales.

El archivo Bak contiene solo páginas de datos que están en uso dentro del mdf. No se utilizará algo de espacio. Este espacio es un usuario superior para reconstrucciones de índice, por ejemplo.

Es bastante típico tener una copia de seguridad de 100 gb para una base de datos que puede tener un mdf de 250 gb. Si mi mdf es del mismo tamaño que mi copia de seguridad, sería una señal de alerta sobre una reducción inesperada de la base de datos o la falta de espacio en disco, etc.

gbn
fuente
4

Cuando se crea una base de datos, puede especificar (para el rendimiento) cuánto espacio desea asignar a los datos y los archivos de registro. Este espacio se reserva incluso si no se almacenan datos en las tablas. Solo se realiza una copia de seguridad de las extensiones que tienen datos escritos.

En su caso, su total de MDF / LDF podría incluso haber sido de 100 GB, pero su copia de seguridad aún sería de alrededor de 23 GB para la copia de seguridad que hizo. Si se agregaran alrededor de 1 GB de datos, su total de MDF / LDF seguiría siendo de 100 GB, pero su respaldo ahora sería de alrededor de 24 GB.

Una copia de seguridad completa contiene todas las extensiones que tienen datos y un poco del archivo de registro. La copia de seguridad completa contiene todos los datos desde el momento en que finalizó la tarea de copia de seguridad, y no solo desde el momento en que comenzó la tarea de copia de seguridad; Es por eso que también se requiere un poco del archivo de registro.

StanleyJohns
fuente