Como aplicar um backup de log de transações (Transact-SQL)
Para aplicar um backup de log de transações a um banco de dados, os seguintes itens devem ser verdadeiros:
Antes do backup de banco de dados completo ou diferencial mais recente tiver sido criado, o banco de dados deverá usar o modelo de recuperação completa ou o modelo de recuperação bulk-logged.
A sequência de restauração deve ter especificado WITH NORECOVERY ao restaurar backups anteriores.
Devem ser aplicados backups de log na sequência na qual eles foram criados, sem qualquer intervalo na cadeia de logs. Exceto o último backup de log, que você deve usar WITH NORECOVERY, como segue:
RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;
Ao aplicar o último backup de log, você pode fazer qualquer um dos seguintes:
Recuperar o banco de dados como parte da última instrução BACKUP LOG:
RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY; GO
Espere para recuperar o banco de dados usando uma instrução separada RESTORE DATABASE:
RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY; RESTORE DATABASE <database_name> WITH RECOVERY; GO
Ao esperar para recuperar o banco de dados você tem a oportunidade de verificar se restaurou todos dos backups de log necessários. Essa abordagem é aconselhável quando você estiver executando uma restauração point-in-time.
Importante |
---|
Nós recomendamos que você sempre especifique explicite WITH NORECOVERY ou WITH RECOVERY em toda instrução RESTORE para eliminar a ambiguidade. Isso é particularmente importante ao escrever scripts. |
Para aplicar um backup de log de transações
Execute a instrução RESTORE para aplicar o backup de log de transações, especificando o seguinte:
O nome do banco de dados ao qual o log de transações será aplicado.
O dispositivo de backup a partir de onde o backup de log de transações será restaurado.
A cláusula NORECOVERY.
A sintaxe básica porque essa instrução é como segue:
RESTORE LOG database_name FROM <backup_device> WITH NORECOVERY.
Onde database_name é o nome do banco de dados e <backup_device> é o nome do dispositivo que contém o backup de log que está sendo restaurado.
Repita a etapa 1 para cada backup de log de transações você tiver que aplicar.
Depois de restaurar o último backup na sua sequência de restauração, para recuperar o uso de banco de dados use a instrução seguinte:
RESTORE database_name WITH RECOVERY
Importante Se você estiver criando um banco de dados espelho, omita a etapa de recuperação. Um banco de dados espelho deve permanecer no estado RESTORING.
Exemplo
Por padrão, o banco de dados AdventureWorks2008R2 usa o modelo de recuperação simples. Os exemplos seguintes requerem a modificação do banco de dados para usar o modelo de recuperação completa, como segue:
ALTER DATABASE AdventureWorks2008R2 SET RECOVERY FULL
A. Aplicando um único backup de log de transações
O exemplo seguinte inicia restaurando o banco de dados AdventureWorks2008R2 usando um backup de banco de dados completo que reside em um dispositivo de backup chamado AdventureWorks2008R2_1. O exemplo aplica então o primeiro backup de log de transações que reside em um dispositivo de backup chamado AdventureWorks2008R2_log. Por fim, o exemplo recupera o banco de dados.
RESTORE DATABASE AdventureWorks2008R2
FROM AdventureWorks2008R2_1
WITH NORECOVERY
GO
RESTORE LOG AdventureWorks2008R2
FROM AdventureWorks2008R2_log
WITH FILE = 1,
WITH NORECOVERY
GO
RESTORE DATABASE AdventureWorks2008R2
WITH RECOVERY
GO
B. Aplicando múltiplos backups de log de transações
O exemplo seguinte inicia restaurando o banco de dados AdventureWorks2008R2 usando um backup de banco de dados completo que reside em um dispositivo de backup chamado AdventureWorks2008R2_1. O exemplo aplica então, um por um, os três primeiros backups de log de transações que residem em um dispositivo de backup chamado AdventureWorks2008R2_log. Por fim, o exemplo recupera o banco de dados.
RESTORE DATABASE AdventureWorks2008R2
FROM AdventureWorks2008R2_1
WITH NORECOVERY
GO
RESTORE LOG AdventureWorks2008R2
FROM AdventureWorks2008R2_log
WITH FILE = 1,
NORECOVERY
GO
RESTORE LOG AdventureWorks2008R2
FROM AdventureWorks2008R2_log
WITH FILE = 2,
WITH NORECOVERY
GO
RESTORE LOG AdventureWorks2008R2
FROM AdventureWorks2008R2_log
WITH FILE = 3,
WITH NORECOVERY
GO
RESTORE DATABASE AdventureWorks2008R2
WITH RECOVERY
GO
Consulte também