A Limpeza de Manutenção do SQL Server considera os horários exatos ao excluir backups antigos?

A Limpeza de Manutenção do SQL Server considera os horários exatos ao excluir backups antigos?

Digamos que eu tenha uma tarefa de manutenção diária que:

  1. Faz backup de todos os bancos de dados e depois
  2. remove backups com mais de 3 dias.

Agora digamos que o primeiro backup no dia 1, começando às 10h, resulte nos seguintes arquivos

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

Agora digamos que no dia 4 a primeira etapa da tarefa de manutenção (backup dos bancos de dados) termine às 10h05. O SQL Server

  • exclua db1.bak e mantenha db2.bak (seria lógico, mas pode ser surpreendente para o usuário) ou
  • mantenha ambos ou
  • remover ambos?

Responder1

O plano de manutenção removerá os arquivos de backup usando o horário em que a tarefa de limpeza for iniciada, pois gera o SQL nesse momento. Então nas três opções que você descreveu o primeiro caso é o que aconteceria.

Criei um plano de exemplo que remove arquivos com mais de 3 dias e executei o trabalho. Na saída de log abaixo, você pode ver que o trabalho foi executado às 12h25 do dia 07/05/2013 e removeu arquivos anteriores às 12h25 do dia 04/05/2013. O T-SQL abaixo mostra um comando aproximado de como a data pode ser gerada.

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)

Plano de Manutenção: Duração do Plano de Manutenção: 00:00:02 Status: Êxito. Detalhes:

Banco de dados de backup na conexão do servidor local Bancos de dados: DBA Tipo: Completo Anexar existente Início da tarefa: 2013-05-07T12:25:03. Fim da tarefa: 2013-05-07T12:25:05. Comando de sucesso:BACKUP DATABASE [DBA] TO DISK = N''N:\Apps\MSSQL10.INSTANCE\MSSQL\Backup\DBA_backup_2013_05_07_122503_6738713.bak'' COM NOFORMAT, NOINIT, NAME = N''DBA_backup_2013_05_07_122503_673871 3'', Pular, REBOBINAR, NOUNLOAD, ESTATÍSTICAS = 10

IR

Manutenção Limpeza na conexão do servidor local Limpeza de arquivos de backup do banco de dados Idade: Mais de 3 dias Início da tarefa: 2013-05-07T12:25:05. Fim da tarefa: 2013-05-07T12:25:05. Comando de sucesso:EXECUTE master.dbo.xp_delete_file 0,N''N:\Apps\MSSQL10.INSTANCE\MSSQL\Backup'',N''BAK'',N''2013-05-04T12:25:05''

IR

informação relacionada