Como : Restaurar até o ponto de falha (Transact-SQL)
Este tópico explica como restaurar até o ponto de falha. O tópico é relevante apenas para bancos de dados que estejam usando modelos de recuperação completa ou com bulk-logged.
Para restaurar até o ponto de falha
Faça backup do final do log executando a seguinte instrução básica BACKUP:
BACKUP LOG <database_name>TO <backup_device> WITH NORECOVERY, NO_TRUNCATE;
Restaure um backup de banco de dados completo executando a seguinte instrução básica RESTORE DATABASE:
RESTORE DATABASE <database_name> FROM <backup_device> WITH NORECOVERY;
Opcionalmente, restaure um backup de banco de dados diferencial executando a seguinte instrução básica RESTORE DATABASE:
RESTORE DATABASE <database_name> FROM <backup_device> WITH NORECOVERY;
Aplique cada log de transações, inclusive o backup do final do log criado na etapa 1, especificando WITH NORECOVERY na instrução RESTORE LOG:
RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;
Recupere o banco de dados executando a seguinte instrução RESTORE DATABASE:
RESTORE DATABASE <database_name> WITH RECOVERY;
Exemplo
Antes de você poder executar o exemplo, é necessário completar as seguintes preparações:
O modelo padrão de recuperação da base de dados AdventureWorks2008R2 é o modelo de recuperação simples. Como esse modelo de recuperação não oferece suporte à restauração ao ponto de uma falha, defina AdventureWorks2008R2 para usar o modelo de recuperação completa executando a seguinte instrução ALTER DATABASE:
USE master; GO ALTER DATABASE AdventureWorks2008R2 SET RECOVERY FULL;
Crie um backup completo do banco de dados usando a seguinte instrução BACKUP:
BACKUP DATABASE AdventureWork2008R2s TO DISK = 'C:\AdventureWorks2008R2_Data.bck';
Crie uma rotina de backup de log:
BACKUP LOG AdventureWorks2008R2 TO DISK = 'C:\AdventureWorks2008R2_Log.bck';
O exemplo a seguir restaura os backups criados anteriormente, depois de criar um backup do final do log do banco de dadosAdventureWorks2008R2. (Esta etapa supõe que o disco de log pode ser acessado).
Primeiro, o exemplo cria um backup do final do log que captura o log ativo e deixa o banco de dados no estado Restaurando. Em seguida, o exemplo restaura um backup de banco de dados, aplica o backup de log de rotina criado anteriormente, e aplica o backup do final do log. Por fim, o exemplo recupera o banco de dados em uma etapa separada.
Observação |
---|
O comportamento padrão é recuperar um banco de dados como parte da instrução que restaura o backup final. |
/* Example of restoring a to the point of failure */
-- Step 1: Create a tail-log backup by using WITH NORECOVERY.
BACKUP LOG AdventureWorks2008R2
TO DISK = 'C:\AdventureWorks2008R2_Log.bck'
WITH NORECOVERY;
GO
-- Step 2: Restore the full database backup.
RESTORE DATABASE AdventureWorks2008R2
FROM DISK = 'C:\AdventureWorks2008R2_Data.bck'
WITH NORECOVERY;
GO
-- Step 3: Restore the first transaction log backup.
RESTORE LOG AdventureWorks2008R2
FROM DISK = 'C:\AdventureWorks2008R2_Log.bck'
WITH NORECOVERY;
GO
-- Step 4: Restore the tail-log backup.
RESTORE LOG AdventureWorks2008R2
FROM DISK = 'C:\AdventureWorks2008R2_Log.bck'
WITH NORECOVERY;
GO
-- Step 5: Recover the database.
RESTORE DATABASE AdventureWorks2008R2
WITH RECOVERY;
GO
Consulte também