Backups da parte final do log
Esse tópico é relevante apenas para bancos de dados que estejam usando modelos de recuperação completa ou bulk-logged.
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 sã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. É recomendável fazer 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çã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 se segue:
BACKUP LOG nome_do_banco_de_dados TO <dispositivo_de_backup> WITH CONTINUE_AFTER_ERROR
S o banco de dados estiver danificado, por exemplo, se ele não iniciar, um backup da parte final do log só terá êxito 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 alteração bulk-logged.
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.
Importante
É recomendável 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çã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:
Restaurar um banco de dados a um ponto especificado contido em um backup prévio de log.
Um backup da parte final do log será desnecessário se você restaurar um banco de dados e especificar a opção STOPAT, STOPATMARK ou STOPBEFOREMARK em toda instrução RESTORE dentro da sua sequência de restauração.
Para restaurar um banco de dados a um ponto especificado anterior
Para usar Transact-SQL para restaurar a um ponto específico, consulte Como restaurar para um momento determinado (Transact-SQL), Recuperando para uma transação marcada ou Recuperação para um número de sequência de log (LSN).
Para usar o SQL Server Management Studio, consulte Como restaurar para um point-in-time (SQL Server Management Studio) ou Como restaurar um banco de dados para uma transação marcada (SQL Server Management Studio).
Restaurando uma cópia de um banco de dados em um novo local.
Quando você restaurar um banco de dados, você só pode usar o mesmo nome de banco de dados se você restaurar o banco de dados a uma instância de servidor diferente, como quando você cria um banco de dados espelho para o espelhamento de banco de dados ou um banco de dados secundário para envio de log. Se você mover um banco de dados na mesma instância de servidor, você deve especificar um novo nome para o banco de dados.
Para restaurar um banco de dados em um novo local
Usando Transact-SQL, em toda a instrução RESTORE, em sua sequência de restauração, especifique a opção MOVE. Para obter mais informações, consulte Como restaurar um banco de dados em um novo local e com novo nome (Transact-SQL) ou Como restaurar arquivos para um novo local (Transact-SQL).
Usando o SQL Server Management Studio, especifique o novo local de cada arquivo no campo Restaurar Como no Restaurar Banco de Dados (Página Opções). Para obter mais informações, consulte Como restaurar um backup de banco de dados (SQL Server Management Studio).
Repor totalmente (substituir) o banco de dados.
Cuidado Restaurar com a opção REPLACE deverá ser usado raramente e somente por administradores de banco de dados experientes, depois de uma cuidadosa consideração. Para obter mais informações, consulte Usando a opção REPLACE.
Para substituir um banco de dados
Usando Transact-SQL, especifique a opção REPLACE em suas instruções RESTORE.
Usando o SQL Server Management Studio, especifique o novo local de cada arquivo no campo Restaurar como em Restaurar Banco de Dados (página Opções). Para obter mais informações, consulte Como restaurar um backup de banco de dados (SQL Server Management Studio).
Consulte também
Referência
Conceitos
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. |