none
Backup Transação de Log RRS feed

  • Pergunta

    • Prezados, bom dia!
    • ALTER DATABASE TESTE SET RECOVERY FULL

      BACKUP LOG TESTE
      TO DISK = 'C:\backup\log.trn'
      GO

    Qual o  procedimento para realizar backup do log no sql server 2012?

    Executei esse comando mas infelizmente o sql server retornou um erro:

    Erro

    Msg 4214, Level 16, State 1, Line 1

    BACKUP LOG cannot be performed because there is no current database backup.

    Msg 3013, Level 16, State 1, Line 1

    BACKUP LOG is terminating abnormally.


    terça-feira, 17 de junho de 2014 14:32

Respostas

  • Bom dia Rubem,

    Acontece que não existe um backup Full executado anterior ao Backup de Log, pois você mudou o tipo de recuperação da base (Recovery Model) e a cadeia LSN foi quebrada

    Execute um Backup Full e tente novamente, este mesmo erro não irá retornar.



    Att, Bruno Silva.

    • Marcado como Resposta Rubem Cerqueira quarta-feira, 18 de junho de 2014 13:31
    terça-feira, 17 de junho de 2014 14:53
  • Rubem,

    Para que você consiga extrair um backup de log, e necessário pelo menos que exista um Backup full inicial, pelo erro que está sendo apresentado sua base ainda não possui este backup full. Faça um full e tente o comando novamente.

    Abraço!


    Regards,

    André César Rodrigues

    Please click the Mark as answer button and vote as helpful if this reply solves your problem. Thanks!

    Blog: http://sqlmagu.blogspot.com.br  LinkedIn:   

    • Marcado como Resposta Rubem Cerqueira quarta-feira, 18 de junho de 2014 13:31
    terça-feira, 17 de junho de 2014 14:53
  • Rubem,

    Será necessário que você restaure todos arquivos de log, quanto a sintaxe, o REPLACE só se faz necessário no primeiro backup que que esta sendo restaurado e claro, se a base ainda existir na instancia.

    Abraço!


    Regards,

    André César Rodrigues

    Please click the Mark as answer button and vote as helpful if this reply solves your problem. Thanks!

    Blog: http://sqlmagu.blogspot.com.br  LinkedIn:   

    • Marcado como Resposta Rubem Cerqueira quarta-feira, 18 de junho de 2014 15:04
    quarta-feira, 18 de junho de 2014 14:29
  • Bom dia Rubem,

    Os backup's de log devem ser restaurados na ordem que foram criados para não quebrar a cadeia de log (LSN), ou seja, você deve restaurar o arquivo de backup das 10:00 e 11:00. Dessa forma você garante seus dados apenas até as 11:00, caso o desastre ocorra as 12:00.

    Talvez seja melhor montar uma estratégia com um intervalo menor entre os backup's de log.

    O script descrito está correto.



    Att, Bruno Silva.

    • Marcado como Resposta Rubem Cerqueira quarta-feira, 18 de junho de 2014 15:04
    quarta-feira, 18 de junho de 2014 14:32
  • Rubem,

    Esse erro retorna por que você esta tentando restaurar um arquivo de backup fora da ordem. Deve ser restaurado o de LSN 388835000000012100001 antes.

    Essa query deve auxiliá-lo para identificar a ordem dos arquivos:

    SELECT b.physical_device_name, a.backup_start_date,a.first_lsn,a.last_lsn
    FROM msdb..backupset a
    INNER JOIN msdb..backupmediafamily b ON a.media_set_id = b.media_set_id
    WHERE a.database_name = 'database'
    AND a.type = 'L'
    order by a.backup_start_date



    Att, Bruno Silva.

    • Marcado como Resposta Rubem Cerqueira quarta-feira, 18 de junho de 2014 17:16
    quarta-feira, 18 de junho de 2014 17:07

Todas as Respostas

  • Bom dia Rubem,

    Acontece que não existe um backup Full executado anterior ao Backup de Log, pois você mudou o tipo de recuperação da base (Recovery Model) e a cadeia LSN foi quebrada

    Execute um Backup Full e tente novamente, este mesmo erro não irá retornar.



    Att, Bruno Silva.

    • Marcado como Resposta Rubem Cerqueira quarta-feira, 18 de junho de 2014 13:31
    terça-feira, 17 de junho de 2014 14:53
  • Rubem,

    Para que você consiga extrair um backup de log, e necessário pelo menos que exista um Backup full inicial, pelo erro que está sendo apresentado sua base ainda não possui este backup full. Faça um full e tente o comando novamente.

    Abraço!


    Regards,

    André César Rodrigues

    Please click the Mark as answer button and vote as helpful if this reply solves your problem. Thanks!

    Blog: http://sqlmagu.blogspot.com.br  LinkedIn:   

    • Marcado como Resposta Rubem Cerqueira quarta-feira, 18 de junho de 2014 13:31
    terça-feira, 17 de junho de 2014 14:53
  • Prezado, agradeço pela ajudar!
    Nesse cenário como devo proceder:

    1 - backup log às 10:00
    2 - backup log às 11:00

    No arquivo vai ter dois files, às 12:00 acontece um desastre, nessa situação restaurando file 2 é o suficiente para não perde os dados?

    Se eu quiser restaurar dos 2 files qual sintaxe?

    -- LOG --
    USE MASTER
     GO
    RESTORE DATABASE TESTE
    FROM DISK = 'C:\BACKUP\log.trn'
    WITH FILE = 1,
    REPLACE,
    NORECOVERY
    STATS = 3

    -

    -- LOG --
    USE MASTER
     GO
    RESTORE DATABASE TESTE
    FROM DISK = 'C:\BACKUP\log.trn'
    WITH FILE = 2,
    REPLACE,
    STATS = 3
    quarta-feira, 18 de junho de 2014 13:31
  • Rubem,

    Será necessário que você restaure todos arquivos de log, quanto a sintaxe, o REPLACE só se faz necessário no primeiro backup que que esta sendo restaurado e claro, se a base ainda existir na instancia.

    Abraço!


    Regards,

    André César Rodrigues

    Please click the Mark as answer button and vote as helpful if this reply solves your problem. Thanks!

    Blog: http://sqlmagu.blogspot.com.br  LinkedIn:   

    • Marcado como Resposta Rubem Cerqueira quarta-feira, 18 de junho de 2014 15:04
    quarta-feira, 18 de junho de 2014 14:29
  • Bom dia Rubem,

    Os backup's de log devem ser restaurados na ordem que foram criados para não quebrar a cadeia de log (LSN), ou seja, você deve restaurar o arquivo de backup das 10:00 e 11:00. Dessa forma você garante seus dados apenas até as 11:00, caso o desastre ocorra as 12:00.

    Talvez seja melhor montar uma estratégia com um intervalo menor entre os backup's de log.

    O script descrito está correto.



    Att, Bruno Silva.

    • Marcado como Resposta Rubem Cerqueira quarta-feira, 18 de junho de 2014 15:04
    quarta-feira, 18 de junho de 2014 14:32
  • Obrigado! Quando fui restaurar o file 1 retornou esse erro, esse erro acontece pq nesse backup não foi registrado nenhuma transação no bd?

    Msg 4326, Level 16, State 1, Line 1 The log in this backup set terminates at LSN 388835000000009800001, which is too early to apply to the database. A more recent log backup that includes LSN 388835000000012100001 can be restored. Restarei file 2 e 3 e fiz a comparação e funcionou.



    quarta-feira, 18 de junho de 2014 16:54
  • Rubem,

    Esse erro retorna por que você esta tentando restaurar um arquivo de backup fora da ordem. Deve ser restaurado o de LSN 388835000000012100001 antes.

    Essa query deve auxiliá-lo para identificar a ordem dos arquivos:

    SELECT b.physical_device_name, a.backup_start_date,a.first_lsn,a.last_lsn
    FROM msdb..backupset a
    INNER JOIN msdb..backupmediafamily b ON a.media_set_id = b.media_set_id
    WHERE a.database_name = 'database'
    AND a.type = 'L'
    order by a.backup_start_date



    Att, Bruno Silva.

    • Marcado como Resposta Rubem Cerqueira quarta-feira, 18 de junho de 2014 17:16
    quarta-feira, 18 de junho de 2014 17:07