Exemple : Restauration fragmentaire d'une base de données (Mode de restauration complète)

Une séquence de restauration fragmentaire restaure et récupère une base de données par étape au niveau des groupes de fichiers, en commençant par le groupe de fichiers primaire, suivi des groupes fichiers secondaires en lecture-écriture.

Dans cet exemple, la base de données adb est restaurée sur un nouvel ordinateur après un problème grave. La base de données utilise le mode de restauration complète ; par conséquent, avant le début de la restauration, il convient d'effectuer une sauvegarde de journal après défaillance sur la base de données. Avant le sinistre, tous les groupes de fichiers sont en ligne. Groupe de fichiers B en lecture seule. Tous les groupes de fichiers secondaires doivent être restaurés, mais dans l'ordre de priorité suivant : A (le plus élevé), C, et enfin B. Dans cet exemple, il y a quatre sauvegardes de journal, dont la sauvegarde de journal après défaillance.

Sauvegarde de fichier journal après défaillance

Avant de restaurer la base de données, l'administrateur de la base de données doit sauvegarder la fin du journal. La base de données étant endommagée, la création de la sauvegarde du journal après défaillance requiert l'utilisation de l'option NO_TRUNCATE :

BACKUP LOG adb TO tailLogBackup WITH NORECOVERY, NO_TRUNCATE

La sauvegarde de fichier journal après défaillance est la dernière sauvegarde appliquée dans les séquences de restauration qui suivent.

Séquences de restauration

  1. Restauration partielle du groupe de fichiers primaire et secondaire 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. Restauration en ligne du groupe de fichiers C.

    À ce stade, le groupe de fichiers primaire et le groupe de fichiers secondaire A sont en ligne. Tous les fichiers dans les groupes de fichiers B et C sont en attente de récupération, et les groupes de fichiers sont hors connexion.

    Les messages de la dernière instruction RESTORE LOG (étape 1) indiquent que la restauration des transactions impliquant le groupe de fichiers C a été différée parce que ce groupe de fichiers n'est pas disponible. Les opérations courantes peuvent continuer, mais des verrous sont détenus par ces transactions et la troncation du fichier journal ne peut pas avoir lieu tant que la restauration n'est pas terminée.

    Dans la deuxième séquence de restauration, l'administrateur de base de données restaure le groupe de fichiers 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
    

    À ce stade, le groupe de fichiers primaire et les groupes de fichiers A et C sont en ligne. Les fichiers du groupe de fichiers B restent en attente de récupération et le groupe de fichiers est déconnecté. Les transactions différées ont été résolues et la troncation du fichier journal a lieu.

  3. Restauration en ligne du groupe de fichiers B.

    Dans la troisième séquence de restauration, l'administrateur de base de données restaure le groupe de fichiers B. La sauvegarde du groupe de fichiers B a été effectuée après que le groupe de fichiers soit passé en lecture seule, ces fichiers n'ont donc pas besoin d'être restaurés par progression au cours de la récupération.

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

    Tous les groupes de fichiers sont désormais en ligne.