¿La limpieza de mantenimiento de SQL Server considera los momentos exactos al eliminar copias de seguridad antiguas?

¿La limpieza de mantenimiento de SQL Server considera los momentos exactos al eliminar copias de seguridad antiguas?

Digamos que tengo una tarea de mantenimiento diaria que:

  1. Realiza copias de seguridad de todas las bases de datos y luego
  2. elimina las copias de seguridad que tienen más de 3 días.

Ahora digamos que la primera copia de seguridad del día 1, a partir de las 10:00, da como resultado los siguientes archivos

db1.bak 2012-01-01 10:04
db2.bak 2012-01-01 10:06

Ahora digamos que el día 4, el primer paso de la tarea de mantenimiento (hacer una copia de seguridad de las bases de datos) finaliza a las 10:05. ¿Servidor SQL?

  • eliminar db1.bak y conservar db2.bak (sería lógico, pero podría resultar sorprendente para el usuario) o
  • mantener ambos o
  • eliminar ambos?

Respuesta1

El plan de mantenimiento eliminará los archivos de copia de seguridad utilizando el momento en que se inicia la tarea de limpieza, ya que genera el SQL en ese momento. Entonces, en las tres opciones que usted describió, lo que sucedería sería el primer caso.

Creé un plan de ejemplo que elimina archivos de más de 3 días y ejecuté el trabajo. En el resultado del registro a continuación, puede ver que el trabajo se ejecutó a las 12:25 del 7/5/2013 y eliminó archivos anteriores a las 12:25 del 4/5/2013. El T-SQL a continuación muestra un comando aproximado de cómo se podría generar la fecha.

query:
select GETDATE()
select DATEADD(DAY, -3, GETDATE() )

results:
-----------------------
2013-05-07 12:51:52.073

(1 row(s) affected)

-----------------------
2013-05-04 12:51:52.073

(1 row(s) affected)

Plan de mantenimiento: Duración del plan de mantenimiento: 00:00:02 Estado: Correcto. Detalles:

Copia de seguridad de la base de datos en la conexión del servidor local Bases de datos: DBA Tipo: Completa Agregar existente Inicio de la tarea: 2013-05-07T12:25:03. Fin de la tarea: 2013-05-07T12:25:05. Comando exitoso: RESPALDAR BASE DE DATOS [DBA] EN DISCO = N''N:\Apps\MSSQL10.INSTANCE\MSSQL\Backup\DBA_backup_2013_05_07_122503_6738713.bak'' CON NOFORMAT, NOINIT, NOMBRE = N''DBA_backup_2013_05_07_122503_6738713'', , REBOBINAR, SIN DESCARGA, ESTADÍSTICAS = 10

IR

Mantenimiento Limpieza en la conexión del servidor local Limpieza de la base de datos Archivos de copia de seguridad Antigüedad: más de 3 días Inicio de la tarea: 2013-05-07T12:25:05. Fin de la tarea: 2013-05-07T12:25:05. Comando exitoso: EJECUTAR master.dbo.xp_delete_file 0,N''N:\Apps\MSSQL10.INSTANCE\MSSQL\Backup'',N''BAK'',N''2013-05-04T12:25:05''

IR

información relacionada