none
Job Backup SQL Server 2005 - Substituir ultimo arquivo criado RRS feed

  • Pergunta

  • Preciso configurar um JOB de backup para executar um backup full diariamente, porem como não disponho de muito espaço em disco preciso que o job substitua o ultimo arquivo criado para nao ter que entrar no servidor diariamente e apagar manualmente.

    Configurei o JOB que esta executando sem problemas, porem ele não esta substituindo o ultimo arquivo existente, nas configurações do job o seguinte campo foi configurado para: ''Backup set will expire'' estas como o parametro ''after - 1 days'', ou seja, teoricamente ele deveria substituir o ultimo arquivo criado a 1 dia? ou somente vai sobrescrever no disco quando nao houver espaco para alocação?

    Preciso que o JOB substitua todos os dias o ultimo backup feito no dia anterior. 
    Como proceder, alguém pode me ajudar???

    Obrigado


    terça-feira, 12 de agosto de 2014 23:01

Respostas

  • Marco, para substituir o arquivo vc tem que setar a opção "init" para apagar o arquivo anterior, caso seu backup seja feito em fita, use a opção "format"

    Ex 1.: Armazenamento em Disco - Utilize a opção "init" e a opção "noformat"

    Ex 2.: Armazenamento em Fita - Utilize a opção "noinit" e a opção "format"

    Se tiver mais alguma dúvida, olha o BOL do SQLServer 2005

    http://technet.microsoft.com/pt-BR/library/ms191304(v=sql.90).aspx



    quarta-feira, 13 de agosto de 2014 18:39
  • Bom dia Marco,

    Sugiro que utilize esse script para criação das suas rotinas de backup: http://ola.hallengren.com/sql-server-backup.html

    Essa solução se encaixa na grande maioria dos ambientes e tem excelentes recomendações.

    Após a implementação existe um parâmetro dentro do 'job step' chamado @CleanupTime = X, neste você pode determinar em horas qual será o tempo de retenção desse arquivo antes de ser deletado. Se nenhum tempo for especificado, então o backup não será deletado e os arquivos só são eliminados após o BD ter seu backup feito e verificado com sucesso.

    Caso deseje prosseguir com sua solução, acredito que você deve também configurar nas propriedades da instância a opção 'Default Backup Media Retention', na aba de 'Database Settings' ou da uma olhada no comando 'INIT' quando o backup é feito via script.

    Espero que possa ter ajudado.


    Att, Bruno Silva.

    quarta-feira, 13 de agosto de 2014 13:20

Todas as Respostas

  • Bom dia Marco,

    Sugiro que utilize esse script para criação das suas rotinas de backup: http://ola.hallengren.com/sql-server-backup.html

    Essa solução se encaixa na grande maioria dos ambientes e tem excelentes recomendações.

    Após a implementação existe um parâmetro dentro do 'job step' chamado @CleanupTime = X, neste você pode determinar em horas qual será o tempo de retenção desse arquivo antes de ser deletado. Se nenhum tempo for especificado, então o backup não será deletado e os arquivos só são eliminados após o BD ter seu backup feito e verificado com sucesso.

    Caso deseje prosseguir com sua solução, acredito que você deve também configurar nas propriedades da instância a opção 'Default Backup Media Retention', na aba de 'Database Settings' ou da uma olhada no comando 'INIT' quando o backup é feito via script.

    Espero que possa ter ajudado.


    Att, Bruno Silva.

    quarta-feira, 13 de agosto de 2014 13:20
  • Marco, o que você configurou foi que o arquivo de backup expira depois de um dia, não que ele sera deletado após um dia. (Como explicado pelo Bruno)

    Você deve ter um processo de deleção que apague os arquivos de backup com mais de um dia de existência, mas sugiro colocar este passo para ser executado apenas se o backup do dia for bem sucedido, caso contrario você pode ficar sem nenhum backup.

    E seria melhor você arrumar espaço para mais backups. Seu panorama é de alto risco.

    quarta-feira, 13 de agosto de 2014 13:28
  • Marco, para substituir o arquivo vc tem que setar a opção "init" para apagar o arquivo anterior, caso seu backup seja feito em fita, use a opção "format"

    Ex 1.: Armazenamento em Disco - Utilize a opção "init" e a opção "noformat"

    Ex 2.: Armazenamento em Fita - Utilize a opção "noinit" e a opção "format"

    Se tiver mais alguma dúvida, olha o BOL do SQLServer 2005

    http://technet.microsoft.com/pt-BR/library/ms191304(v=sql.90).aspx



    quarta-feira, 13 de agosto de 2014 18:39
  • Olá Bruno.

    Obrigado pela ajuda, porem não sou muito expert, consegui resolver utilizando este script aqui.

    Vlw!

    DECLARE @name VARCHAR(50) -- database name  

    DECLARE @path VARCHAR(256) -- path for backup files  

    DECLARE @fileName VARCHAR(256) -- filename for backup  

    DECLARE @fileDate VARCHAR(20) -- used for file name

     

    -- specify database backup directory

    SET @path = 'C:\TESTE_BKP\'  

     

    -- specify filename format

    SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) 

     

    DECLARE db_cursor CURSOR FOR  

    SELECT name 

    FROM master.dbo.sysdatabases 

    WHERE name NOT IN ('master','model','msdb','tempdb','ENGEMAN_TESTE','RM_TESTES')  -- exclude these databases

     

    OPEN db_cursor   

    FETCH NEXT FROM db_cursor INTO @name   

     

    WHILE @@FETCH_STATUS = 0   

    BEGIN   

           SET @fileName = @path + @name  + '.BAK'  

           BACKUP DATABASE @name TO DISK = @fileName WITH INIT

     

           FETCH NEXT FROM db_cursor INTO @name   

    END   

     

    CLOSE db_cursor   

    DEALLOCATE db_cursor

    segunda-feira, 1 de setembro de 2014 13:31
  • Obrigado Flávio, muito útil a informação.

    Consegui resolver utilizando o script postado no comentario de resposta abaixo.

    Vlw!

    segunda-feira, 1 de setembro de 2014 13:33
  • Ola Ceilton.

    Sim entendo sua observação, porem temos neste ambiente um politica de backup bem implementada, com backups em discos, LTO, e software de gerenciamento Symantec Backup Exec, a ideia é deixar somente o ultimo arquivo de backup no disco local dos servidores justamente para não copiar dados redundantes, sendo que são copiados 2 vezes ao dia e arquivados por 60 dias.

    Obrigado.

    segunda-feira, 1 de setembro de 2014 13:35