none
Remoção de Arquivos de Backups por um limite estabelecido no script RRS feed

  • 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á!

    quarta-feira, 26 de setembro de 2012 18:44

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



    domingo, 7 de outubro de 2012 00:57

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]

    segunda-feira, 1 de outubro de 2012 17:04
    Moderador
  • 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

    terça-feira, 2 de outubro de 2012 12:37
  • 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]

    quarta-feira, 3 de outubro de 2012 11:44
  • 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



    domingo, 7 de outubro de 2012 00:57