Exemplo: Restauração de banco de dados por etapas (modelo de recuperação completa)

Uma seqüência de restauração por etapas restaura e recupera um banco de dados em etapas no nível do grupo de arquivos, começando pelo grupo de arquivos primário e todos os grupos de arquivo secundários de leitura e gravação.

Nesse exemplo, o banco de dados adb é restaurado em um computador novo depois de um desastre. O banco de dados está usando o modelo de recuperação completa; portanto, antes do início da restauração, um backup do final do log deve ser extraído do banco de dados. Antes do desastre, todos os grupos de arquivo estão online. O grupo de arquivos B é somente leitura. Todos os grupos de arquivos secundários precisam ser restaurados, mas são restaurados em ordem de importância: A (mais alto), C, e por fim B. Nesse exemplo, há quatro backups de log, inclusive o backup do final do log.

Backup do final do log

Antes de restaurar o banco de dados, o administrador do banco de dados deve fazer backup do final do log. Como o banco de dados está danificado, é preciso usar a opção NO_TRUNCATE para criar o backup do final do log:

BACKUP LOG adb TO tailLogBackup WITH NORECOVERY, NO_TRUNCATE

O backup do final do log é o último backup que é aplicado nas seqüências de restauração a seguir.

Seqüências de restauração

  1. Restauração parcial do grupo de arquivos primário e secundário A.

    RESTORE DATABASE adb FILEGROUP='Primary' FROM backup1 
       WITH PARTIAL, NORECOVERY
    RESTORE DATABASE adb FILEGROUP='A' FROM backup2 
       WITH NORECOVERY
    RESTORE LOG adb FROM backup3 WITH NORECOVERY
    RESTORE LOG adb FROM backup4 WITH NORECOVERY
    RESTORE LOG adb FROM backup5 WITH NORECOVERY
    RESTORE LOG adb FROM tailLogBackup WITH RECOVERY
    
  2. Restauração online do grupo de arquivos C.

    Neste momento, o grupo de arquivos primário e o grupo de arquivos secundário A estão online. Todos os arquivos nos grupos de arquivos B e C estão em recuperação pendente e os grupos de arquivos estão offline.

    Mensagens da última instrução RESTORE LOG na etapa 1 indicam que a reversão das transações que envolvem o grupo de arquivos C foi adiada, porque o grupo de arquivos não está disponível. As operações regulares podem continuar, mas bloqueios são mantidos por essas transações e o truncamento de log não acontecerá até que a reversão esteja concluída.

    Na segunda seqüência de restauração, o administrador de banco de dados restaura o grupo de arquivos C:

    RESTORE DATABASE adb FILEGROUP='C' FROM backup2a WITH NORECOVERY
    RESTORE LOG adb FROM backup3 WITH NORECOVERY
    RESTORE LOG adb FROM backup4 WITH NORECOVERY
    RESTORE LOG adb FROM backup5 WITH NORECOVERY
    RESTORE LOG adb FROM tailLogBackup WITH RECOVERY
    

    Neste momento, o grupo de arquivos primário e os grupos de arquivos A e C estão online. Os arquivos no grupo de arquivos B permanecem em recuperação pendente, com o grupo de arquivos offline. As transações adiadas foram resolvidas e o truncamento de log acontece.

  3. Restauração online do grupo de arquivos B.

    Na terceira seqüência de restauração, o administrador de banco de dados restaura o grupo de arquivos B. O backup do grupo de arquivos B foi realizado depois de o grupo de arquivos tornar-se somente leitura; portanto, não tem de efetuar roll forward durante a recuperação.

    RESTORE DATABASE adb FILEGROUP='B' FROM backup2b WITH RECOVERY
    

    Todos os grupos de arquivos agora estão online.