
Tengo un trabajo que ejecuto todos los días para hacer una copia de seguridad de mi base de datos SQL. Acabo de comprar un servidor nuevo e iba a transferir la copia de seguridad de la base de datos al nuevo servidor y restaurarla. Nuestra base de datos no es tan grande como la de la mayoría de las empresas, solo tiene un tamaño de 40 GB. Fui a copiar la copia de seguridad, noté que el disco duro donde estaba almacenado estaba lleno y que la copia de seguridad tenía un tamaño de 900 GB. He utilizado el mismo trabajo en diferentes versiones de SQL y la copia de seguridad de la base de datos nunca creció así.
- Ejecutando Windows Server 2008 R2
- Ejecutando SQL Server 2008 R2 Ent
- 64 bits
No estoy seguro si escribí algún problema con el trabajo, aquí está el código:
RESPALDO DE LA BASE DE DATOS [BASE DE DATOS] AL DISCO = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.COMPANY\MSSQL\Backup\DATABASE.BAK' CON NOFORMAT, NOINIT, NAME = N'DATABASE', SKIP, NOREWIND, NOUNLOAD, ESTADÍSTICAS = 10 GO declara @backupSetId como int select @backupSetId = posición de msdb..backupset donde nombre_base_datos=N'DATABASE' y backup_set_id=(seleccione max(backup_set_id) de msdb..backupset donde nombre_base_datos=N'DATABASE' ) si @ backupSetId es nulo start riserror(N'Verify falló. Información de respaldo para la base de datos ''DATABASE'' no encontrada.', 16, 1) end RESTORE VERIFYONLY FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.COMPANY \MSSQL\Backup\DATABASE.BAK' CON ARCHIVO = @backupSetId, NOUNLOAD, NOREWIND GO
(Agregué las etiquetas de código pero por alguna razón no se aceptaron)
¿Alguien puede decirme por qué la copia de seguridad de mi base de datos sigue creciendo? Gracias por la ayuda por adelantado.
Respuesta1
NOINIT = Indica que el conjunto de copia de seguridad se agrega al conjunto de medios especificado, preservando los conjuntos de copia de seguridad existentes.
Se están adjuntando sus copias de seguridad. Si no desea que la copia de seguridad siga creciendo, debe utilizar INIT.
Respuesta2
Se agrega al final cada vez que realiza una copia de seguridad.
Respuesta3
Como dijeron DanBig y joeqwerty, sus copias de seguridad se agregan al mismo archivo. Si desea conservar las versiones sin agregarlas ni sobrescribirlas, cree archivos con fecha individuales. Por ejemplo:
Declare @DBname varchar(255),
@SQL nvarchar(max),
@today nvarchar(50),
@servername nvarchar(50)
set @today = convert(nvarchar,GETDATE(),12)
set @servername = REPLACE(@@SERVERNAME,'\','-')
set @DBName = 'YourDB'
set @SQL='BACKUP DATABASE [' + @DBName + '] TO DISK = N''c:\some backup path\' + @servername + '-' + @DBName + '-' + @today + '.bak'' WITH FORMAT, INIT, NAME = N''Full ' + @DBName + ' Database Backup'', SKIP, NOREWIND, NOUNLOAD, STATS = 10'
EXEC SP_EXECUTESQL @SQL