Eu tenho lido sobre isso, mas a documentação online é um pouco difícil de entender e parece estranhamente escrita. Por exemplo, o INIT
, NOINIT
. Um diz que tentará sobrescrever tudo. O outro diz que será anexado independentemente.
Eu quero algo no meio disso. Desejo que os conjuntos de mídia expirados não estejam mais no arquivo, mas que novas tarefas de backup sejam anexadas ao arquivo ao lado de quaisquer conjuntos que ainda não tenham expirado.
O SQL abaixo realizará o backup desejado?
BACKUP DATABASE [mydb]
TO DISK = N'c:\Backups\mydb.bak'
WITH NOFORMAT, NOINIT, NAME = N'mydb-Full Database Backup', NOSKIP,
NOREWIND, NOUNLOAD, STATS = 10, RETAINDAYS = 60
GO
Se eu executar o procedimento acima e houver um conjunto de backup com mais de 60 dias, ele será removido do arquivo?
Editar:
Em resposta à sugestão de RichardTheKiwi, reescrevi o código para criar um novo arquivo a cada vez. Em seguida, escreverei um script do Windows para excluir arquivos anteriores a uma determinada data
declare @filename varchar(max)
set @filename = 'c:\sqlbackups\pptd_' + replace(replace(convert(varchar, getdate(), 120),':','_'),' ','_') + '.bak'
BACKUP DATABASE [Peter's pointless test database]
TO DISK = @filename
WITH FORMAT, INIT, NAME = N'pptd-Full Database Backup',
NOREWIND, NOUNLOAD, STATS = 10
GO
Infelizmente, não, isso não vai funcionar. Ele continuará anexando, mas deixará os conjuntos expirados no mesmo arquivo. Esta captura de tela mostra um arquivo de backup usando seu script, definido como
RETAINDAYS = 2
, executado uma vez em novembro (truque de VM) e novamente hoje.Acho que o que você procura é um backup contínuo, portanto, supondo que seja semanal, depois de um período de gravação, ele deve reter 7 conjuntos de backup antigos, remover um e acrescentar um novo.
Pessoalmente, eu manteria um único conjunto de backup por arquivo e usaria o recurso de limpeza no assistente de manutenção para remover arquivos antigos; isso ou uma tarefa agendada normal do Windows. Não deve haver nenhuma necessidade real de manter os conjuntos de backup em um único arquivo.