Backups da parte final do log

Esse tópico é relevante apenas para bancos de dados que estejam usando modelos de recuperação completa ou de log de transação em massa.

Na maioria dos casos, nos modelos de recuperação completa ou bulk-logged, o SQL Server 2005 e versões posteriores necessitam que você faça backup da parte final do log para capturar os registros de log que ainda não tiveram backup. Um backup de log realizado na parte final do log imediatamente antes de uma operação de restauração é chamado de backup da parte final do log.

O SQL Server 2005 e versões posteriores normalmente exigem que você faça um backup do final do log antes de começar a restaurar um banco de dados. O backup da parte final do log impede perda de trabalho e mantém a cadeia de logs intacta. Quando você estiver recuperando um banco de dados até o ponto de uma falha, o backup do final do log é o último backup de interesse no plano de recuperação. Se você não puder fazer backup da parte final do log, apenas será possível recuperar um banco de dados até o fim do último backup criado antes da falha.

Nem todos os cenários de restauração requerem um backup da parte final do log. Você não precisará ter um backup do final do log se o ponto de recuperação estiver incluído em um backup de log anterior, ou se estiver movendo ou substituindo o banco de dados e não precisar restaurá-lo em um momento determinado após o backup mais recente. Além disso, se os arquivos de log estiverem danificados e não for possível criar um backup da parte final do log, você deverá restaurar o banco de dados sem usar um backup da parte final do log. Todas as transações confirmadas depois do último backup de log estão perdidas. Para obter mais informações, consulte "Restaurando sem usar um backup da parte final do log" adiante neste tópico.

Fazendo backup da parte final do log

Como qualquer backup de log, um backup da parte final do log é feito usando a instrução BACKUP LOG. Recomendamos que você faça um backup da parte final do log nas seguintes situações:

  • Se o banco de dados estiver online e você planeja realizar uma operação de restauração nele, antes de iniciar a operação, faça o backup da parte final do log usando WITH NORECOVERY:

    BACKUP LOG nome_do_banco_de_dados TO <dispositivo_de_backup> WITH NORECOVERY

    ObservaçãoObservação

    Para evitar um erro, a opção NORECOVERY é necessária.

  • Se o banco de dados estiver offline e não iniciar.

    Tente fazer um backup da parte final do log. Como nenhuma transação pode ocorrer nesse momento, o uso de WITH NORECOVERY é opcional. Se o banco de dados estiver danificado, use WITH CONTINUE_AFTER_ERROR como a seguir:

    BACKUP LOG nome_do_banco_de_dados TO <dispositivo_de_backup> WITH CONTINUE_AFTER_ERROR

    Por exemplo, se o banco de dados estiver danificado, se o banco de dados não iniciar, um backup da parte final do log só terá sucesso se os arquivos de log não estiverem danificados, o banco de dados estiver em um estado que dê suporte a backups da parte final do log e o banco de dados não tiver nenhuma mudança de log de transação em massa.

A tabela a seguir resume essas opções.

Opção BACKUP LOG

Comentários

NORECOVERY

Use NORECOVERY sempre que pretender continuar com uma operação de restauração no banco de dados. NORECOVERY coloca o banco de dados no estado de restauração. Isso garante que o banco de dados não seja alterado depois do backup da parte final do log.

O log será truncado, a menos que a opção NO_TRUNCATE ou COPY_ONLY também seja especificada.

Observação importanteImportante
Recomendamos que você evite usar NO_TRUNCATE, exceto quando o banco de dados estiver danificado.

CONTINUE_AFTER_ERROR

Use CONTINUE_AFTER_ERROR somente se estiver fazendo backup da parte final de um banco de dados danificado.

ObservaçãoObservação
Quando você usa o backup da parte final do log em um banco de dados danificado, alguns dos metadados que são normalmente capturados em backups de log poderão estar indisponíveis. Para obter mais informações, veja "Backups da parte final do log com backup incompleto de metadados", adiante neste tópico.

Para criar uma transação de backup de log quando o banco de dados estiver danificado

Backups da parte final do log com backup incompleto de metadados

Backups da parte final do log capturam a parte final do log até mesmo se o banco de dados estiver offline, danificado, ou com arquivos de dados faltando. Isso pode causar metadados incompletos dos comandos de informação de restauração e de msdb. Entretanto, apenas os metadados estão incompletos; o log capturado está completo e utilizável.

Se um backup da parte final do log tiver metadados incompletos, na tabela backupset, has_incomplete_metadata é definido como 1. Também, na saída de RESTORE HEADERONLY, HasIncompleteMetadata é definido para 1.

Se os metadados em um backup da parte final do log estiverem incompletos, a tabela backupfilegroup estará sem a maioria das informações sobre os grupos de arquivos na hora do backup da parte final do log. A maioria das colunas da tabela backupfilegroup são NULL; as únicas colunas significativas são como as seguintes:

  • backup_set_id

  • filegroup_id

  • type

  • type_desc

  • is_readonly

Restaurando sem usar um backup da parte final do log

Cenários de restauração nos quais um backup da parte final do log é desnecessário incluem o seguinte:

Histórico de alterações

Conteúdo atualizado

Atualizada a seção "Fazendo backup da parte final do log" para corrigir informações sobre como fazer backup da parte final do log se o banco de dados estiver offline e não iniciar.