Nuevas Características SQL Server 2008 - Compresión de Respaldos
Blog Wednesday, May 28 2008Continuando la serie de posts de nuevas características de SQL Server 2008, ahora hablaremos de la compresión de respaldos.
La compresión de respaldos es una característica que solamente tendrá la edición empresarial (y, por supuesto, la Developer Edition) de SQL Server 2008. Esto quiere decir que las ediciones menores (Express, Workgroup, Standard) no podrán crear estos respaldos. Obviamente versiones anteriores (2000, 2005) de SQL Server no entenderán estos respaldos mas no conseguí información de si los respaldos creados en la edición Enterprise (o Developer) de SQL Server 2008 con compresión se podrán restaurar en ediciones que no soportan compresión.
¿Para qué comprimir un respaldo? Porque al comprimir un respaldo el respaldo tomará menos tiempo en ejecutarse y menos accesos a los discos (IO). Sin embargo tendrá un costo en CPU por lo que se recomienda tener cuidado al generar el respaldo ya que podría afectar a otras operaciones que se estén realizando en el mismo equipo durante la ejecución.
¿Qué tanto se ahorra? Como usualmente se dice: depende. Pero para darnos una idea, si instalamos la base de datos de ejemplo AdventureWorks2008 que mide 196.75MB aproximadamente y le generamos un respaldo tradicional el resultado será un archivo de 182MB. Si hacemos otro pero con compresión entonces obtendremos un archivo de 43.5MB.

Para comprimir un respaldo tenemos varias alternativas. La primera es establecer que todos los respaldos que se hagan en la instancia especificada sean con compresión. Esto se hace estableciendo un parámetro de la configuración de la instancia ya sea con instrucciones T-SQL o con el SQL Server Management Studio. Los posibles valores son simples: se comprimen o no los respaldos.
Si se realiza con T-SQL las instrucciones serían algo como esto:
USE master;
GO
EXEC sys.sp_configure N'backup compression default', N'1';
GO
RECONFIGURE WITH OVERRIDE;
GO
Y en el SQL Server Management Studio tendríamos que seleccionar el servidor en el Object Explorer, mostrar las Propiedades y en Database Settings marcar Compress Backup.
Con eso cada respaldo que se haga cumplirá la característica de compresión o no compresión establecida. Sin embargo si queremos generar un respaldo con compresión o uno sin compresión sin importar el valor que exista a nivel de configuración de la instancia lo podemos realizar. Nuevamente esto se puede hacer al hacer el respaldo desde el SQL Server Management Studio o con instrucciones T-SQL.
Si se hace con instrucciones es con la instrucción BACKUP DATABASE y usando WITH COMPRESSION para que tenga compresión o con WITH NO_COMPRESSION si no deseamos que se comprima.
BACKUP DATABASE [AdventureWorks2008]
TO DISK = N'C:\Backups\20080528-1612_AdventureWorks2008.bak'
WITH COMPRESSION,
NOFORMAT,
NOINIT,
NAME = N'AdventureWorks2008-Full Database Backup',
SKIP,
NOREWIND,
NOUNLOAD,
STATS = 10;
GO
Con SQL Server Management Studio es cuestión de establecerlo cambiando el valor del combobox Set backup compression a lo que se desea.
Más post de la serie:
- IntelliSense
- Compresión de Respaldos
- FILESTREAM
- PowerShell