Usuário com melhor resposta
Remoção de Arquivos de Backups por um limite estabelecido no script

Pergunta
-
Pessoal, tenho uma pequena dúvida. Estou usando o plano de manutenção pra gerar os backups no SQL 2000 Server, no qual defino a remoção dos arquivos por um período de 5 dias e evito de ter que ficar excluindo manualmente os arquivos gerados pelo backup. É possível definir a mesma rotina de remoção desses arquivos através de scripts pra FULL, DIFF e LOG?? Um outro detalhe interessante é a possibilidde que o script me dar de fazer backups em diversos dispositivos de disco tipo:
backup database [minhabase]
to disk = 'caminho 01', disk = 'caminho 2'
go
Agradeço desde já!
Respostas
-
De fato o comando TO MIRROR DISK citado não tem no SQL 2000 Server, mas separando apenas por vírgulas os DISK com os caminhos distintos como quero já funciona perfeitamente. Ficando desta forma:
BACKUP DATABASE [Minha Base]
TO DISK = 'caminho de backup 1', DISK = 'caminho de backup 2'
GO
Agora estava testando o comando WITH RETAINDAYS = { days | @days_var } pra entender melhor o seu funcionamento antes de utilizá-lo. O conceito compreendido por mim do BOL é que o comando não remove os arquivos dos 5 dias anteriores ao arquivo de backup diferencial mais atual da mesma forma que é configurado no Backup de logs. Apenas evitar sobreescrever os arquivos de backup. Segue script abaixo:
BACKUP DATABASE [Minha Base]
TO DISK = 'caminho do arquivo de backup'
WITH NOINIT, NOUNLOAD, DIFFERENTIAL, RETAINDAYS = 5,
NAME = 'nome do backup', SKIP, STATS = 10, DESCRIPTION = 'Backup diferencial', NOFORMAT DECLARE @i INT
select @i = position from msdb..backupset where database_name='smartHTO'and type!='F' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name='smartHTO')
RESTORE VERIFYONLY FROM DISK = 'caminho do arquivo de backup' WITH FILE = @i
GO
- Editado Jerfeson S. Barbosa domingo, 7 de outubro de 2012 01:07
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator quarta-feira, 25 de fevereiro de 2015 15:24
Todas as Respostas
-
Jerferson,
Você esta se referindo ao tempo de retenção dos arquivos de backup?
Se for isso você poderia utilizar em conjunto com os comandos de backup a opção Retaindays.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
-
Bom dia,
Rapaz, tem um tópico bem interessante com argumentos sobre manipulação de arquivos do windows pelo SQL Server (xp_cmdshell é um caminho com vários problemas associados) pelo Gustavo rs http://social.msdn.microsoft.com/Forums/pt-BR/520/thread/8582fd6a-7b17-4629-89b3-ad153305d39b/
--
Agora não recordo se no SQL SERVER 2000 tem a opção MIRROR TO DISK, em t-sql ficaria assim,
BACKUP DATABASE TESTE TO DISK = 'c:\test\TESTE1.bak' MIRROR TO DISK = 'c:\test\TESTE2.bak'
[]'s
-
Bom Dia Jeferson,
Um dos step's que voce pode criar é um passo para apagar os arquivos antigos. Quando você faz o backup mirrorred você tem que especificar mais um passo para apagar daquele caminho em especifico.
Se a resposta foi útil, classifique-a
Se a resposta foi útil, classifique-a Att, Marcos Freccia [MCTS|MCITP|MCT SQL Server 2008]
-
De fato o comando TO MIRROR DISK citado não tem no SQL 2000 Server, mas separando apenas por vírgulas os DISK com os caminhos distintos como quero já funciona perfeitamente. Ficando desta forma:
BACKUP DATABASE [Minha Base]
TO DISK = 'caminho de backup 1', DISK = 'caminho de backup 2'
GO
Agora estava testando o comando WITH RETAINDAYS = { days | @days_var } pra entender melhor o seu funcionamento antes de utilizá-lo. O conceito compreendido por mim do BOL é que o comando não remove os arquivos dos 5 dias anteriores ao arquivo de backup diferencial mais atual da mesma forma que é configurado no Backup de logs. Apenas evitar sobreescrever os arquivos de backup. Segue script abaixo:
BACKUP DATABASE [Minha Base]
TO DISK = 'caminho do arquivo de backup'
WITH NOINIT, NOUNLOAD, DIFFERENTIAL, RETAINDAYS = 5,
NAME = 'nome do backup', SKIP, STATS = 10, DESCRIPTION = 'Backup diferencial', NOFORMAT DECLARE @i INT
select @i = position from msdb..backupset where database_name='smartHTO'and type!='F' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name='smartHTO')
RESTORE VERIFYONLY FROM DISK = 'caminho do arquivo de backup' WITH FILE = @i
GO
- Editado Jerfeson S. Barbosa domingo, 7 de outubro de 2012 01:07
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator quarta-feira, 25 de fevereiro de 2015 15:24