Backups da parte final do log (SQL Server)

Aplica-se a:SQL Server

Este artigo é relevante apenas para backup e restauração de bancos de dados SQL Server que usam modelos de rmodelo de recuperação bulk-logged.

Um backup da parte final do log captura qualquer registro de log cujo backup não foi fito (a parte final do log) para evitar perda de trabalho e manter a cadeia de logs intacta. Para que você possa recuperar um banco de dados SQL Server até seu momento determinado mais recente, você deve fazer backup da parte final do log de transações. O backup da parte final do log é o último backup de interesse no plano de recuperação do banco de dados.

Nem todos os cenários de restauração exigem um backup da parte final do log. Você não precisa de um backup da parte final do log se o ponto de recuperação estiver em um backup de log anterior. Um backup da parte final do log será desnecessário se você estiver movendo ou substituindo (sobrescrendo) um banco de dados e não precisar restaurá-lo para um momento determinado após o seu backup mais recente.

Cenários que exigem um backup da parte final do log

É recomendável fazer um backup da parte final do log nos seguintes cenários:

  • Se o banco de dados estiver online e você planeja realizar uma operação de restauração nele, comece fazendo backup da parte final do log. Para evitar erro em um banco de dados online, você deve usar a opção WITH NORECOVERY da instrução BACKUP do Transact-SQL.

  • Se um banco de dados estiver offline e não puder ser iniciado, e você precisar restaurar o banco de dados, primeiro faça backup da parte final do log. Como nenhuma transação pode ocorrer nesse momento, use a opção WITH NO_TRUNCATE. NO_TRUNCATE é efetivamente o mesmo que um backup de log de transações somente cópia. Usar WITH NORECOVERY é opcional porque nenhuma transação pode ocorrer nesse momento.

  • Se um banco de dados estiver danificado, tente fazer um backup da parte final do log usando a opção WITH CONTINUE_AFTER_ERROR da instrução BACKUP.

    Em um banco de dados danificado, o backup da parte final do log só pode ter êxito se os arquivos de log não estiverem danificados, o banco de dados estiver em um estado que suporte backups da parte final do log e o banco de dados não contiver nenhuma alteração bulk-logged. Se um backup da parte final do log não puder ser criado, qualquer transação confirmada após o backup de log mais recente será perdida.

A tabela a seguir resume as opções NORECOVERY, NO_TRUNCATE e CONTINUE_AFTER_ERROR para BACKUP.

Opção BACKUP LOG Comentários
NORECOVERY Use NORECOVERY sempre que pretender continuar a fazer uma operação de restauração no banco de dados. NORECOVERY coloca o banco de dados no estado de restauração. Essa etapa garante que o banco de dados não mude depois do backup da parte final do log. O log é truncado, a menos que a opção NO_TRUNCATE ou COPY_ONLY também seja especificada.

Importante: evite usar NO_TRUNCATE, exceto quando o banco de dados estiver danificado ou offline. Talvez seja necessário colocar o banco de dados no modo de usuário único para ter acesso exclusivo antes de realizar a restauração com NORECOVERY. Após a restauração, defina o banco de dados de volta para o modo de vários usuários.
CONTINUE_AFTER_ERROR Só use CONTINUE_AFTER_ERROR ,se estiver fazendo backup da parte final de um banco de dados danificado.

Quando você faz backup da parte final do log de um banco de dados danificado, alguns dos metadados que são normalmente capturados em backups de log podem não estar disponíveis. Para obter mais informações, consulte a próxima seção.

Backups da parte final do log que têm metadados de backup incompletos

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 está definido como 1. Além disso, na saída de RESTORE HEADERONLY, HasIncompleteMetadata está definido como 1.

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

  • backup_set_id
  • filegroup_id
  • type
  • type_desc
  • is_readonly

Tarefas relacionadas

Para criar um backup da parte final do log, consulte Fazer backup do log de transações quando o banco de dados está danificado (SQL Server).

Para restaurar um backup de log de transações, consulte Restaurar um backup de log de transações (SQL Server).