none
backup - retaindays RRS feed

  • Pergunta

  • Olá Pessoal,

    Após ter notado que um arquivo de log estava enchendo bastante, resolvi criar uma estratégia de backup log melhor, porém está aparecendo uma mensagem que eu imagino que deve ser devido ao retaindays,

    The Medium on device '' - 13;30_trn_bkp experies on August 25 2011 and cannot be overwritten

    a forma de backup de log é a seguinte:

    CHECKPOINT;
    declare @filename varchar(1000)

    set @filename = '- '
    ---+ replace(convert(varchar, getdate (), 104), '.', '.') + ' - '
    + CAST(DATENAME(hh,getDate())
    as varchar) + ';' + CAST(DATENAME(n,getDate())
    ---as varchar) + ';' + CAST(DATENAME(ss,getDate())
    as varchar) + '.trn_bkp'

    BACKUP LOG DB TO DISK = @filename
    WITH INIT , NOUNLOAD , NAME = @filename, NOSKIP ,
    STATS = 10, NOFORMAT, RETAINDAYS = 1
    GO

    Devido ao banco de dados não sofrer muita inserção, elaborei a seguinte estratégia:

    BKP LOG - Segunda a sexta de 3 em 3 horas. Acreditei que seria a opção End Date: (porque informa que expirou - no erro), mas no caso está definido como No end date.

    • Movido Gustavo Maia Aguiar quinta-feira, 25 de agosto de 2011 18:16 (De:SQL Server - Desenvolvimento Geral)
    quinta-feira, 25 de agosto de 2011 18:08

Todas as Respostas

  • Alguém se prontifica?
    sexta-feira, 26 de agosto de 2011 14:07
  • Just

    Vc esta tentando sobrepor os backups de log?

    em caso de restore vc precisará restaurar o seu Backup ful e aplicar todos os logs nas sequencias em que foram feitos...


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    sexta-feira, 26 de agosto de 2011 20:17
    Moderador
  • não, estou preservando a mídia e anexando... porém está crescendo bastante..
    sexta-feira, 26 de agosto de 2011 20:27
  • JustSQL,

    Você esta realizando append no mesmo arquivo de backup?

    Se você observar a opção Init ela indica para sobreescrever o arquivo existente!!!

    Você também esta informando que o tempo de retenção do arquivo é de 1 dia, então você precisa analisar este valor para ver se não esta conflitando com o período máximo permitido para sobreescrever o arquivo de backup.


    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]
    sábado, 27 de agosto de 2011 20:09
    Moderador
  • Olá JustSQL,

    Fiz um simulado do erro que ocorreu com você só para comprovar a mensagem de erro.

    A opção INIT faz o device do backup ser reiniciado e pelo que configurou em RETAINDAYS =1, isso não pode ser feito até que vença o período de um dia.

    Experimente remover a opção INIT da rotina ou coloque NOINIT no lugar.

     

    Segundo meus testes, obtive sucesso. Veja:

    Processed 0 pages for database 'DB1', file 'DB1_log' on file 4. (Testei por 4 vezes) 

    100 percent processed.

    BACKUP LOG successfully processed 0 pages in 0.048 seconds (0.000 MB/sec).

    A parte final do seu código ficaria assim:
    BACKUP LOG DB TO DISK = @filename
    WITH NOINIT , NOUNLOAD , NAME = @filename, NOSKIP ,
    STATS = 10, NOFORMAT, RETAINDAYS = 1
    GO

     


    Robson Brandão
    domingo, 28 de agosto de 2011 02:36
  • Olá Junior,

    Então quer dizer que funciona assim:

    Hoje (29/11, 07:00hr) - É inserido 30 registros na tabela.

    Hoje (29/11, 13:00hr) - Foi executado o seguinte comando:

    BACKUP LOG DB TO DISK = @filename
    WITH INIT , NOUNLOAD , NAME = @filename, NOSKIP ,
    STATS = 10, NOFORMAT, RETAINDAYS = 1
    GO

    Hoje (29/11, 16:00hr) - É inserido 20 registros na tabela.

    Hoje (29/11, 18:00hr) - Foi executado o seguinte comando:

    BACKUP LOG DB TO DISK = @filename
    WITH INIT , NOUNLOAD , NAME = @filename, NOSKIP ,
    STATS = 10, NOFORMAT, RETAINDAYS = 1
    GO

    Quer dizer entao que os 30 registros das 07:00 foi apagado ao invés de ser anexado em um só arquivo?

    O que acontece... Com o que você disse em relação á sobscrever, é verdade, INIT faz isso, mas como entrei na empresa a pouco tempo, observei que todos os comandos de backup possuem o seguinte parâmetro

    INIT,RETAINDAYS=1

    Então quer dizer que o antigo DBA formatava os dados antigos, depois inseria os novos no arquivo de log?

    Teria algum cenário em que pode ser útil a utlização de INIT?

    segunda-feira, 29 de agosto de 2011 13:44
  • Robson,

    Então quer dizer que o comando ficaria funcionando corretamente se eu definisse um schedule para acima de um dia mesmo estando com a opção RETAINDAYS = 1?

    O backup será reiniciado de acordo com minha política né isso? Se eu coloco 2 em 2 dias, então a mensagem de erro não estaria mais dando, é isso?

    segunda-feira, 29 de agosto de 2011 13:46
  • Junior,

    Se eu utilizo o getdate(), então não vai substituir né isso? pq a cada 1 minuto eu faço um backup de log com getdate(), então não são nomes diferentes

    segunda-feira, 29 de agosto de 2011 17:47