Sauvegarder et récupérer Oracle Database sur une machine virtuelle Azure Linux à l’aide du service Sauvegarde Azure

S’applique à : ✔️ Machines virtuelles Linux

Cet article explique comment utiliser le service Sauvegarde Azure pour prendre des captures instantanées des disques d’une machine virtuelle, y compris les fichiers Oracle Database et la zone de récupération rapide Oracle. Le service Sauvegarde Azure permet de prendre des captures instantanées complètes des disques. Celles-ci font office de sauvegardes et sont stockées dans un coffre Recovery Services.

Le service Sauvegarde Azure fournit également des sauvegardes cohérentes avec les applications : aucun correctif supplémentaire n’est requis pour restaurer les données. Les sauvegardes cohérentes avec les applications fonctionnent avec un système de fichiers et des bases de données Oracle Automatic Storage Management (ASM).

La restauration de données cohérentes avec les applications réduit le délai de restauration et permet ainsi de rétablir rapidement le fonctionnement normal. La récupération d’Oracle Database est toujours nécessaire après la restauration. Vous pouvez faciliter la récupération à l’aide des fichiers journaux de restauration par progression archivés Oracle qui sont capturés et stockés dans un partage de fichiers Azure distinct.

Cet article permet de se familiariser avec les tâches suivantes :

  • Sauvegarder la base de données en bénéficiant d’une sauvegarde cohérente avec les applications.
  • Restaurer et récupérer la base de données à partir d’un point de récupération.
  • Restaurer la machine virtuelle à partir d’un point de récupération.

Prérequis

  • Pour accomplir le processus de sauvegarde et de récupération, vous devez commencer par créer une machine virtuelle Linux sur laquelle est installée une instance d’Oracle Database 12.1 ou version ultérieure.

  • Créez une instance Oracle Database en suivant la procédure de l’article Créer une base de données Oracle dans une machine virtuelle Azure.

Préparer l’environnement

Pour préparer l'environnement, procédez comme suit :

  1. Connectez-vous à la machine virtuelle.
  2. Configurez le service Stockage Azure Files.
  3. Préparer les bases de données.

Connexion à la machine virtuelle

  1. Pour créer une session Secure Shell (SSH) avec la machine virtuelle, utilisez la commande suivante. Remplacez <publicIpAddress> par l’adresse publique de la machine virtuelle.

    ssh azureuser@<publicIpAddress>
    
  2. Basculez vers l'utilisateur racine :

    sudo su -
    
  3. Ajoutez l’utilisateur oracle au fichier /etc/sudoers :

    echo "oracle   ALL=(ALL)      NOPASSWD: ALL" >> /etc/sudoers
    

Configurer le service Stockage Azure Files pour les fichiers journaux de restauration par progression Oracle archivés

Les fichiers journaux de restauration par progression archivés de l’instance Oracle Database jouent un rôle crucial dans la récupération de base de données. Ils stockent les transactions validées nécessaires à la restauration par progression à partir d’une capture instantanée de la base de données prise dans le passé.

En mode ARCHIVELOG, la base de données archive le contenu des fichiers journaux de restauration par progression en ligne lorsqu’ils sont saturés et basculés. En association avec une sauvegarde, ils sont nécessaires pour obtenir une récupération jusqu’à une date et heure lorsque la base de données est perdue.

Oracle offre la possibilité d’archiver les fichiers journaux de restauration par progression dans différents emplacements. La meilleure pratique du secteur d’activité est qu’au mois une de ces destinations se trouve sur un stockage distant afin qu’elle soit distincte du stockage hôte et protégée avec des instantanés indépendants. Azure Files répond à ces exigences.

Un partage de fichiers Azure est un stockage qui peut être attaché à une machine virtuelle Linux ou Windows en tant que composant standard du système de fichiers, à l’aide des protocoles SMB (Server Message Block) ou NFS (Network File System). Pour configurer un partage de fichiers Azure sur Linux (à l’aide du protocole SMB 3.0) pour une utilisation en tant que stockage des journaux d’archivage, consultez l’article Monter un partage de fichiers SMB Azure sur Linux. Une fois la configuration terminée, revenez à ce guide et effectuez toutes les étapes restantes.

Préparer les bases de données

Cette étape suppose que vous avez suivi la procédure Créer une instance Oracle Database dans une machine virtuelle Azure. Par conséquent :

  • Vous disposez d’une instance Oracle nommée oratest1 qui s’exécute sur une machine virtuelle nommée vmoracle19c.
  • Vous utilisez le script Oracle standard oraenv avec sa dépendance sur le fichier de configuration Oracle standard /etc/oratab pour configurer les variables d’environnement dans une session d’interpréteur de commandes.

Pour chaque base de données sur la machine virtuelle, procédez comme suit :

  1. Passez à l’utilisateur oracle :

     sudo su - oracle
    
  2. Définissez la variable d’environnement ORACLE_SID en exécutant le script oraenv. Celui-ci vous invite à entrer le nom ORACLE_SID.

    . oraenv
    
  3. Ajoutez le partage de fichiers Azure comme destination de fichier journal d’archivage de base de données supplémentaire.

    Cette étape suppose que vous avez configuré et monté un partage de fichiers Azure sur la machine virtuelle Linux. Pour chaque base de données installée sur la machine virtuelle, créez un sous-répertoire nommé d’après l’identificateur de sécurité (SID) de la base de données.

    Dans cet exemple, le nom du point de montage est /backup et le SID est oratest1. Vous allez donc créer un sous-répertoire /backup/oratest1 et accorder la propriété à l’utilisateur oracle. Remplacez /backup/SID par le nom de votre point de montage et le SID de votre base de données.

    sudo mkdir /backup/oratest1
    sudo chown oracle:oinstall /backup/oratest1
    
  4. Connectez-vous à la base de données :

    sqlplus / as sysdba
    
  5. Si ce n'est déjà fait, démarrez la base de données :

    SQL> startup
    
  6. Définissez la première destination du journal d’archivage de la base de données sur le répertoire de partage de fichiers que vous avez créé plus tôt :

    SQL> alter system set log_archive_dest_1='LOCATION=/backup/oratest1' scope=both;
    
  7. Définissez l’objectif de point de récupération (RPO) de la base de données.

    Pour obtenir un objectif de point de récupération (RPO) cohérent, vous devez prendre en compte la fréquence à laquelle les fichiers journaux de restauration par progression en ligne seront archivés. Les facteurs suivants contrôlent la fréquence :

    • Taille des fichiers journaux de restauration par progression en ligne. Lorsqu’un fichier journal en ligne est plein, il est basculé et archivé. Plus le fichier journal en ligne est volumineux, plus il faut de temps pour le remplir. Le temps supplémentaire diminue la fréquence de génération de l’archive.
    • La valeur du paramètre ARCHIVE_LAG_TARGET contrôle le nombre maximal de secondes autorisées avant que le fichier journal en ligne actuel ne soit basculé et archivé.

    Pour réduire la fréquence de basculement et d’archivage, ainsi que l’opération de point de contrôle associée, les fichiers journaux de restauration par progression en ligne Oracle sont généralement de taille importante (1 024 Mo, 4 096 Mo ou 8 192 Mo). Dans un environnement de base de données occupé, des journaux sont toujours susceptibles de basculer et d’archiver toutes les quelques secondes ou minutes. Dans une base de données moins active, il peut s’écouler des heures ou des jours avant l’archivage des transactions les plus récentes, ce qui diminue considérablement la fréquence d’archivage.

    Il est recommandé de définir ARCHIVE_LAG_TARGET pour garantir la cohérence du RPO. Un paramètre de 5 minutes (300 secondes) est une valeur prudente pour ARCHIVE_LAG_TARGET. Cela garantit que toutes les opérations de récupération de base de données peuvent être récupérées dans un délai inférieur ou égal à 5 minutes après une défaillance.

    Pour définir ARCHIVE_LAG_TARGET, exécutez commande suivante :

    SQL> alter system set archive_lag_target=300 scope=both;
    

    Pour mieux comprendre comment déployer une instance Oracle Database haute disponibilité dans Azure avec un RPO de zéro, consultez Architectures de référence pour Oracle Database.

  8. Assurez-vous que la base de données est en mode journal d'archivage pour activer les sauvegardes en ligne.

    Commencez par vérifier l'état de l'archivage des journaux :

    SQL> SELECT log_mode FROM v$database;
    
    LOG_MODE
    ------------
    NOARCHIVELOG
    

    Si elle est en mode NOARCHIVELOG, exécutez les commandes suivantes :

    SQL> SHUTDOWN IMMEDIATE;
    SQL> STARTUP MOUNT;
    SQL> ALTER DATABASE ARCHIVELOG;
    SQL> ALTER DATABASE OPEN;
    SQL> ALTER SYSTEM SWITCH LOGFILE;
    
  9. Créez une table pour tester les opérations de sauvegarde et de restauration :

    SQL> create user scott identified by tiger quota 100M on users;
    SQL> grant create session, create table to scott;
    SQL> connect scott/tiger
    SQL> create table scott_table(col1 number, col2 varchar2(50));
    SQL> insert into scott_table VALUES(1,'Line 1');
    SQL> commit;
    SQL> quit
    

Sauvegarde des données avec le service Sauvegarde Azure

Le service Sauvegarde Azure fournit des solutions pour sauvegarder vos données et les récupérer à partir du cloud Microsoft Azure. Le service Sauvegarde Azure fournit des sauvegardes indépendantes et isolées pour éviter une destruction accidentelle des données d’origine. Les sauvegardes sont stockées dans un coffre Recovery Services avec gestion intégrée des points de récupération de sorte à pouvoir les restaurer quand vous en avez besoin.

Dans cette section, vous allez utiliser le service Sauvegarde Azure pour prendre des captures instantanées cohérentes avec la machine virtuelle exécutée et les instances Oracle Database. Les bases de données sont placées en mode de sauvegarde. Cela permet d’effectuer une sauvegarde en ligne cohérente sur le plan transactionnel pendant que le service Sauvegarde Azure prend une capture instantanée des disques de la machine virtuelle. La capture instantanée est une copie complète du stockage, et non un instantané incrémentiel ou de copie sur écriture. Il s’agit donc d’un support efficace à partir duquel restaurer votre base de données.

L’avantage des captures instantanées cohérentes avec les applications Sauvegarde Azure est qu’elles sont prises rapidement, quelle que soit la taille de la base de données. Vous pouvez utiliser une capture instantanée pour les opérations de restauration dès qu’elle est prise, sans devoir attendre qu’elle soit transférée vers le coffre Recovery Services.

Pour utiliser le service Sauvegarde Azure afin de sauvegarder la base de données, procédez comme suit :

  1. Comprendre l’infrastructure du service Sauvegarde Azure.
  2. Préparez l’environnement pour une sauvegarde cohérente avec les applications.
  3. Configurez des sauvegardes cohérentes avec les applications.
  4. Déclenchez une sauvegarde cohérente avec les applications de la machine virtuelle.

Comprendre l’infrastructure du service Sauvegarde Azure

Le service Sauvegarde Azure fournit une infrastructure qui permet d’assurer la cohérence des applications lors des sauvegardes de machines virtuelles Windows et Linux pour diverses applications. Cette infrastructure implique l’appel d’un pré-script pour suspendre les applications avant la capture instantanée des disques. Elle implique l’appel d’un post-script pour libérer les applications au terme de la capture instantanée.

Microsoft a amélioré l’infrastructure, de sorte que le service Sauvegarde Azure fournisse les pré-scripts et les post-scripts empaquetés pour les applications sélectionnées. Ces pré-scripts et ces post-scripts étant déjà chargés sur l’image Linux, vous n’avez rien à installer. Il suffit de nommer l’application après quoi le service Sauvegarde Azure appelle automatiquement les scripts appropriés. Microsoft gère les pré-scripts et les post-scripts empaquetés, ce qui vous garantit la prise en charge, la propriété et la validité de ces scripts.

Les applications actuellement prises en charge pour l’infrastructure améliorée sont Oracle 12.x (ou version supérieure) et MySQL. Pour plus d’informations, consultez l’article Matrice de prise en charge des sauvegardes de machine virtuelle Azure.

Vous pouvez créer vos propres scripts pour le service Sauvegarde Azure, utilisables avec des bases de données antérieures à la version 12.x. Vous trouverez des exemples de scripts sur GitHub.

À chaque sauvegarde que vous effectuez, l’infrastructure améliorée exécute les pré-scripts et les post-scripts sur toutes les instances Oracle Database installées sur la machine virtuelle. Le paramètre configuration_path dans le fichier workload.conf pointe vers l’emplacement du fichier Oracle /etc/oratab (ou d’un fichier défini par l’utilisateur qui suit la syntaxe oratab). Pour plus d’informations, consultez la rubrique Configurer des sauvegardes cohérentes avec les applications.

Le service Sauvegarde Azure exécute les pré-scripts et les post-scripts pour chaque base de données listée dans le fichier désigné par configuration_path, à l’exception des lignes qui commencent par # (traitées comme des commentaires) ou +ASM (instance Oracle ASM).

L’infrastructure améliorée du service Sauvegarde Azure effectue des sauvegardes en ligne des instances Oracle Database fonctionnant en mode ARCHIVELOG. Les pré-scripts et les post-scripts utilisent les commandes ALTER DATABASE BEGIN et END BACKUP pour assurer la cohérence des applications.

Pour que la sauvegarde de base de données soit cohérente, les bases de données en mode NOARCHIVELOG doivent être arrêtées proprement avant que la capture instantanée ne commence.

Préparer l'environnement pour une sauvegarde cohérente avec les applications

Oracle Database utilise la séparation des rôles de travail pour assurer la séparation des tâches avec le moindre privilège. Il associe des groupes de systèmes d’exploitation distincts à des rôles d’administration de base de données distincts. Vous pouvez accorder des privilèges de base de données différents aux utilisateurs, en fonction de leur appartenance aux groupes de systèmes d’exploitation.

Le rôle de base de données SYSBACKUP (nom générique OSBACKUPDBA) fournit des privilèges limités, afin d’effectuer les opérations de sauvegarde dans la base de données. Il est requis par le service Sauvegarde Azure.

Lors de l’installation d’Oracle, il est recommandé d’utiliser backupdba comme nom de groupe de systèmes d’exploitation à associer au rôle SYSBACKUP. Cependant, vous pouvez utiliser n’importe quel nom pour déterminer le nom du groupe de systèmes d’exploitation représentant le rôle Oracle SYSBACKUP en premier.

  1. Passez à l’utilisateur oracle :

    sudo su - oracle
    
  2. Définissez l’environnement Oracle :

    export ORACLE_SID=oratest1
    export ORAENV_ASK=NO
    . oraenv
    
  3. Déterminez le nom du groupe de systèmes d’exploitation représentant le rôle Oracle SYSBACKUP :

    grep "define SS_BKP" $ORACLE_HOME/rdbms/lib/config.c
    

    La sortie doit ressembler à celle-ci :

    #define SS_BKP_GRP "backupdba"
    

    Dans la sortie, la valeur placée entre guillemets doubles correspond au nom du groupe de systèmes d’exploitation Linux sur lequel le rôle Oracle SYSBACKUP est authentifié en externe. Dans cet exemple, il s’agit de backupdba. Notez la valeur réelle.

  4. Vérifiez si le groupe de systèmes d’exploitation existe en exécutant la commande suivante. Remplacez <group name> par la valeur retournée par la commande précédente (sans les guillemets).

    grep <group name> /etc/group
    

    La sortie doit ressembler à celle-ci :

    backupdba:x:54324:oracle
    

    Important

    Si la sortie ne correspond pas à la valeur du groupe de systèmes d’exploitation Oracle récupérée à l’étape 3, utilisez la commande suivante pour créer le groupe de systèmes d’exploitation représentant le rôle Oracle SYSBACKUP. Remplacez <group name> par le nom du groupe récupéré à l’étape 3.

    sudo groupadd <group name>
    
  5. Créez un utilisateur de sauvegarde nommé azbackup qui appartient au groupe de systèmes d’exploitation que vous avez vérifié ou créé lors des étapes précédentes. Remplacez <group name> par le nom du groupe vérifié. L’utilisateur est également ajouté au groupe oinstall pour lui permettre d’ouvrir des disques ASM.

    sudo useradd -g <group name> -G oinstall azbackup
    
  6. Configurez l'authentification externe pour le nouvel utilisateur de sauvegarde.

    L’utilisateur de sauvegarde azbackup doit avoir accès à la base de données à l’aide de l’authentification externe, afin de ne pas devoir utiliser de mot de passe. Pour octroyer l’accès, vous devez créer un utilisateur de base de données qui s’authentifie en externe avec azbackup. La base de données utilise un préfixe pour le nom d’utilisateur que vous devez rechercher.

    Sur chaque base de données installée sur la machine virtuelle, procédez comme suit :

    1. Connectez-vous à la base de données avec SQL Plus et vérifiez les paramètres par défaut de l’authentification externe :

      sqlplus / as sysdba
      SQL> show parameter os_authent_prefix
      SQL> show parameter remote_os_authent
      

      La sortie doit ressembler à cet exemple, qui affiche ops$ comme préfixe du nom d’utilisateur de la base de données :

      NAME                                 TYPE        VALUE
      ------------------------------------ ----------- ------------------------------
      os_authent_prefix                    string      ops$
      remote_os_authent                    boolean     FALSE
      
    2. Créez un utilisateur de base de données ops$azbackup pour l’authentification externe de l’utilisateur azbackup et accordez-lui des privilèges SYSBACKUP :

      SQL> CREATE USER ops$azbackup IDENTIFIED EXTERNALLY;
      SQL> GRANT CREATE SESSION, ALTER SESSION, SYSBACKUP TO ops$azbackup;
      
  7. Si vous rencontrez une erreur ORA-46953: The password file is not in the 12.2 format lors de l’exécution de l’instruction GRANT, procédez comme suit pour migrer le fichier orapwd vers le format 12.2. Appliquez cette procédure pour chaque instance Oracle Database de la machine virtuelle.

    1. Quittez SQL Plus.

    2. Déplacez le fichier de mot de passe disposant de l'ancien format vers un nouveau nom.

    3. Migrez le fichier de mot de passe.

    4. Supprimez l'ancien fichier.

    5. Exécutez les commandes suivantes :

      mv $ORACLE_HOME/dbs/orapworatest1 $ORACLE_HOME/dbs/orapworatest1.tmp
      orapwd file=$ORACLE_HOME/dbs/orapworatest1 input_file=$ORACLE_HOME/dbs/orapworatest1.tmp
      rm $ORACLE_HOME/dbs/orapworatest1.tmp
      
    6. Réexécutez l’opération GRANT dans SQL Plus.

  8. Créez une procédure stockée pour consigner les messages de sauvegarde de fichier journal dans le journal des alertes de la base de données. Utilisez le code suivant pour chaque base de données installée sur la machine virtuelle :

    sqlplus / as sysdba
    SQL> GRANT EXECUTE ON DBMS_SYSTEM TO SYSBACKUP;
    SQL> CREATE PROCEDURE sysbackup.azmessage(in_msg IN VARCHAR2)
    AS
      v_timestamp     VARCHAR2(32);
    BEGIN
      SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')
      INTO v_timestamp FROM DUAL;
      DBMS_OUTPUT.PUT_LINE(v_timestamp || ' - ' || in_msg);
      SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.ALERT_FILE, in_msg);
    END azmessage;
    /
    SQL> SHOW ERRORS
    SQL> QUIT
    

Configurer des sauvegardes cohérentes avec les applications

  1. Basculez vers l'utilisateur racine :

    sudo su -
    
  2. Recherchez le dossier /etc/azure. S’il est absent, créez un répertoire de travail pour les sauvegardes de cohérence des applications :

    if [ ! -d "/etc/azure" ]; then
       mkdir /etc/azure
    fi
    
  3. Recherchez le fichier workload.conf dans le dossier. S’il est absent, créez-le dans le répertoire /etc/azure avec le contenu suivant. Les commentaires doivent commencer par [workload]. Si le fichier est déjà présent, modifiez les champs conformément au contenu suivant. Sinon, la commande suivante peut créer le fichier et renseigner le contenu :

    echo "[workload]
    workload_name = oracle
    configuration_path = /etc/oratab
    timeout = 90
    linux_user = azbackup" > /etc/azure/workload.conf
    

    Le fichier workload.conf utilise le format suivant :

    • Le paramètre workload_name indique le type de charge de travail de base de données. Dans ce cas, le paramètre est défini sur Oracle, ce qui permet au service Sauvegarde Azure d’exécuter les pré-scripts et les post-scripts (commandes de cohérence) qui conviennent pour les instances Oracle Database.
    • Le paramètre timeout indique la durée maximale en secondes nécessaire à chaque base de données pour effectuer des captures instantanées de stockage.
    • Le paramètre linux_user indique le compte d’utilisateur Linux utilisé par le service Sauvegarde Azure pour exécuter les opérations de mise en suspens de la base de données. Vous avez créé cet utilisateur, azbackup, précédemment.
    • Le paramètre configuration_path indique le nom de chemin d’accès absolu d’un fichier texte sur la machine virtuelle. Chaque ligne répertorie une instance de la base de données en cours d’exécution sur la machine virtuelle. Il s’agit généralement du fichier /etc/oratab généré par Oracle au cours de l’installation de la base de données, mais il peut s’agir de n’importe quel fichier portant le nom de votre choix. Il doit respecter les règles de format suivantes :
      • Le fichier doit être un fichier texte. Chaque champ est délimité par le caractère deux-points (:).
      • Le premier champ de chaque ligne est le nom d’une instance ORACLE_SID.
      • Le deuxième champ de chaque ligne correspond au nom de chemin d’accès absolu d’ORACLE_HOME pour cette instance ORACLE_SID.
      • Tout le texte qui suit ces deux premiers champs est ignoré.
      • Si la ligne commence par un signe dièse (#), la ligne entière est ignorée en tant que commentaire.
      • Si le premier champ a la valeur +ASM (ce qui indique une instance Oracle ASM), il est ignoré.

Déclencher une sauvegarde cohérente avec les applications de la machine virtuelle

  1. Sur le portail Azure, accédez à votre groupe de ressources rg-oracle et sélectionnez votre machine virtuelle vmoracle19c.

  2. Dans le volet Sauvegarde :

    1. Sous Coffre Recovery Services, sélectionnez Créer.
    2. Pour le nom du coffre, utilisez myVault.
    3. Pour Groupe de ressources, sélectionnez rg-oracle.
    4. Sous Choisir une stratégie de sauvegarde, utilisez (Nouveau) DailyPolicy. Si vous souhaitez modifier la fréquence de sauvegarde ou la durée de rétention, sélectionnez Créer une stratégie.

    Capture d’écran représentant le volet pour configurer un coffre Recovery Services.

  3. Sélectionnez Activer la Sauvegarde Azure.

    Le processus de sauvegarde ne démarre pas avant l’expiration de l’heure planifiée. Pour configurer une sauvegarde immédiate, procédez comme suit.

  4. Sur la page du groupe de ressources, sélectionnez le coffre Recovery Services nommé myVault que vous venez de créer. Il peut être nécessaire d’actualiser la page pour le voir.

  5. Dans le volet myVault – Éléments de sauvegarde, sous NOMBRE D’ÉLÉMENTS DE SAUVEGARDE, sélectionnez le nombre d’éléments de sauvegarde.

    Capture d’écran des détails d’un coffre Recovery Services.

  6. Dans le volet Éléments de sauvegarde (machine virtuelle Azure), cliquez sur le bouton de sélection (), puis sur Sauvegarder maintenant.

    Capture d’écran représentant la commande « Sauvegarder maintenant » du coffre Recovery Services.

  7. Acceptez la valeur par défaut du champ Conserver la sauvegarde jusqu’au, puis cliquez sur le bouton OK. Attendez que le processus de sauvegarde se termine.

  8. Pour consulter l’état du travail de sauvegarde, sélectionnez Travaux de sauvegarde.

    Capture d’écran représentant le volet qui répertorie les travaux de sauvegarde d’un coffre Recovery Services.

    Sélectionnez le travail de sauvegarde pour consulter son état.

    Capture d’écran représentant les informations sur l’état d’un travail de sauvegarde.

    Bien que l’exécution de la capture instantanée ne prenne que quelques secondes, son transfert vers le coffre peut prendre un certain temps. Le travail de sauvegarde n’est pas terminé tant que le transfert n’est pas finalisé.

  9. Pour une sauvegarde cohérente avec les applications, résolvez les éventuelles erreurs présentes dans le fichier journal qui se trouve sous /var/log/azure/Microsoft.Azure.RecoveryServices.VMSnapshotLinux/extension.log.

Restaurer la machine virtuelle

La restauration d’une machine virtuelle dans son intégralité permet de restaurer ladite machine et les disques qui y sont attachés sur une nouvelle machine virtuelle à partir d’un point de restauration sélectionné. Cette action restaure également toutes les bases de données qui s’exécutent sur la machine virtuelle. Après quoi, vous devez récupérer chaque base de données.

Pour restaurer une machine virtuelle dans son intégralité, procédez comme suit :

  1. Arrêtez et supprimez la machine virtuelle.
  2. Récupérez la machine virtuelle.
  3. Définissez l’adresse IP publique.
  4. Récupérez la base de données.

Deux options principales s’offrent à vous lors de la restauration d’une machine virtuelle :

  • Restaurer la machine virtuelle à partir de laquelle les sauvegardes ont été effectuées à l’origine.
  • Restaurer (cloner) une nouvelle machine virtuelle sans affecter la machine virtuelle à partir de laquelle les sauvegardes ont été effectuées à l’origine.

Les premières étapes de cet exercice (arrêt, suppression, puis récupération de la machine virtuelle) simulent le premier cas d’usage.

Arrêter et supprimer la machine virtuelle

  1. Sur le portail Azure, accédez à la machine virtuelle vmoracle19c, puis sélectionnez Arrêter.

  2. Une fois la machine virtuelle arrêtée, sélectionnez Supprimer, puis Oui.

    Capture d’écran représentant le message de confirmation pour la suppression d’une machine virtuelle.

Récupération de la machine virtuelle

  1. Créez un compte de stockage pour la mise en lots sur le portail Azure :

    1. Sur le portail Azure, sélectionnez + Créer une ressource, puis recherchez et sélectionnez Compte de stockage.

      Capture d’écran montrant où créer une ressource.

    2. Dans le volet Créer un compte de stockage :

      1. Pour Groupe de ressources, sélectionnez votre groupe de ressources existant, rg-oracle.
      2. Pour Nom du compte de stockage, saisissez oracrestore.
      3. Assurez-vous que l’Emplacement est défini sur la même région que toutes les autres ressources du groupe de ressources.
      4. Définissez Performances sur Standard.
      5. Pour Type de compte, sélectionnez Stockage v2 (usage général v2).
      6. Pour Réplication, sélectionnez Stockage localement redondant (LRS) .

      Capture d’écran représentant les informations de base pour la création d’un compte de stockage.

    3. Sélectionnez Vérifier + créer, puis Créer.

  2. Sur le portail Azure, recherchez le coffre Recovery Services myVault et sélectionnez-le.

    Capture d’écran représentant la sélection d’un coffre Recovery Services.

  3. Dans le volet Vue d’ensemble, sélectionnez Éléments de sauvegarde. Sélectionnez ensuite Machine virtuelle Azure, qui doit avoir un NOMBRE D’ÉLÉMENTS DE SAUVEGARDE non nul.

    Capture d’écran représentant la section d’un élément de sauvegarde de machine virtuelle pour un coffre Recovery Services.

  4. Dans le volet Éléments de sauvegarde (machine virtuelle Azure), sélectionnez la machine virtuelle vmoracle19c.

    Capture d’écran représentant le volet des éléments de sauvegarde de la machine virtuelle.

  5. Dans le volet vmoracle19c, choisissez un point de restauration dont le type de cohérence est Cohérence avec les applications. Cliquez sur le bouton de sélection (), puis sélectionnez Restaurer la machine virtuelle.

    Capture d’écran représentant la commande pour restaurer une machine virtuelle.

  6. Dans le volet Restaurer une machine virtuelle :

    1. Sélectionnez Créer.

    2. Dans Type de restauration, sélectionnez Créer une machine virtuelle.

    3. Dans Nom de la machine virtuelle, saisissez vmoracle19c.

    4. Pour Réseau virtuel, sélectionnez vmoracle19cVNET.

      Le sous-réseau est automatiquement renseigné en fonction du réseau virtuel que vous sélectionnez.

    5. Pour Emplacement intermédiaire, le processus de restauration de la machine virtuelle requiert un compte de stockage Azure situé dans le même groupe de ressources et dans la même région. Vous pouvez choisir le compte de stockage ou une restauration configurée précédemment.

    Capture d’écran représentant les valeurs de restauration d’une machine virtuelle.

  7. Pour restaurer la machine virtuelle, cliquez sur le bouton Restaurer.

  8. Pour afficher l’état du processus de restauration, cliquez sur Travaux, puis sur Travaux de sauvegarde.

    Capture d’écran représentant une liste de travaux de sauvegarde.

    Cliquez sur l’opération de restauration En cours pour afficher des informations sur l’état du processus de restauration.

    Capture d’écran représentant les informations sur l’état d’un processus de restauration.

Définition de l’adresse IP publique

Une fois la machine virtuelle restaurée, vous devez réattribuer l'adresse IP d'origine à la nouvelle machine virtuelle.

  1. Sur le portail Azure, accédez à la machine virtuelle vmoracle19c. Une nouvelle adresse IP publique et une carte réseau de type vmoracle19c-nic-XXXXXXXXXXXX ont été attribuées, mais celles-ci n’ont pas d’adresse DNS. Lorsque la machine virtuelle d’origine a été supprimée, son adresse IP publique et sa carte réseau ont été conservées. Les étapes suivantes visent à les rattacher à la nouvelle machine virtuelle.

    Capture d’écran représentant une liste des adresses IP publiques.

  2. Arrêtez la machine virtuelle.

    Capture d’écran représentant la sélection pour arrêter une machine virtuelle.

  3. Accédez à Mise en réseau.

    Capture d’écran représentant les informations relatives à la mise en réseau.

  4. Sélectionnez Attacher l’interface réseau. Sélectionnez la carte réseau d’origine vmoracle19cVMNic, à laquelle l’adresse IP publique d’origine est toujours associée. Sélectionnez ensuite OK.

    Capture d’écran montrant la sélection du type de ressource et des valeurs de la carte réseau.

  5. Détachez la carte réseau qui a été créée avec l’opération de restauration de la machine virtuelle, car elle est configurée en tant qu’interface principale. Sélectionnez Détacher l’interface réseau, sélectionnez la carte réseau de type vmoracle19c-nic-XXXXXXXXXXXXXXXX,, puis cliquez sur OK.

    Capture d’écran représentant le volet pour détacher l’interface réseau.

    La machine virtuelle recréée dispose maintenant de la carte réseau d’origine, qui est associée à l’adresse IP et aux règles de groupe de sécurité réseau d’origine.

    Capture d’écran représentant la valeur d’une adresse IP.

  6. Revenez au volet Vue d’ensemble, puis sélectionnez Démarrer.

Récupération de la base de données

Pour récupérer une base de données après une restauration de machine virtuelle complète :

  1. Reconnectez-vous à la machine virtuelle :

    ssh azureuser@<publicIpAddress>
    
    

    Quand l’ensemble de la machine virtuelle a été restauré, il est important de récupérer chaque base de données sur la machine virtuelle en effectuant les étapes suivantes sur chacune d’elles.

  2. Vous pouvez constater que l’instance est en cours d’exécution, car la fonctionnalité de démarrage automatique a tenté de lancer la base de données au démarrage de la machine virtuelle. Toutefois, la base de données doit être restaurée et n’en est probablement qu’au stade du montage. Exécutez un arrêt préparatoire avant de démarrer la phase de montage :

    sudo su - oracle
    sqlplus / as sysdba
    SQL> shutdown immediate
    SQL> startup mount
    
  3. Procédez à la récupération des bases de données.

    Il convient de spécifier la syntaxe USING BACKUP CONTROLFILE pour informer la commande RECOVER AUTOMATIC DATABASE que la récupération ne doit pas s’arrêter au numéro de modifications système (SCN) Oracle enregistré dans le fichier de contrôle de la base de données restaurée.

    Le fichier de contrôle de la base de données restaurée était un instantané, ainsi que le reste de la base de données. Le SCN stocké dans ce fichier est dérivé de l’instant dans le passé de l’instantané. Il peut y avoir des transactions enregistrées après ce point. Vous souhaitez réaliser la récupération jusqu’au moment de la dernière transaction validée dans la base de données.

    SQL> recover automatic database using backup controlfile until cancel;
    
  4. Quand le dernier fichier journal d’archivage disponible a été appliqué, saisissez CANCEL pour terminer la récupération.

    Une fois la récupération terminée, le message Media recovery complete s’affiche.

    Toutefois, lorsque vous utilisez la clause BACKUP CONTROLFILE, la commande de récupération ignore les fichiers journaux en ligne. Vous devrez peut-être apporter des modifications à l’actuel journal de restauration par progression en ligne pour terminer la récupération à un instant dans le passé. Dans ce cas, vous pouvez voir des messages de ce type :

    SQL> recover automatic database until cancel using backup controlfile;
    ORA-00279: change 2172930 generated at 04/08/2021 12:27:06 needed for thread 1
    ORA-00289: suggestion :
    /u02/fast_recovery_area/ORATEST1/archivelog/2021_04_08/o1_mf_1_13_%u_.arc
    ORA-00280: change 2172930 for thread 1 is in sequence #13
    ORA-00278: log file
    '/u02/fast_recovery_area/ORATEST1/archivelog/2021_04_08/o1_mf_1_13_%u_.arc' no
    longer needed for this recovery
    ORA-00308: cannot open archived log
    '/u02/fast_recovery_area/ORATEST1/archivelog/2021_04_08/o1_mf_1_13_%u_.arc'
    ORA-27037: unable to obtain file status
    Linux-x86_64 Error: 2: No such file or directory
    Additional information: 7
    
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    

    Important

    Si l’actuel journal de restauration par progression en ligne est perdu ou endommagé, et que vous ne pouvez pas l’utiliser, vous pouvez annuler la récupération à ce stade.

    Pour corriger cela, vous pouvez identifier l’actuel journal en ligne qui n’a pas été archivé et fournir le nom de fichier complet à l’invite.

  5. Ouvrez la base de données.

    L’option RESETLOGS est requise lorsque la commande RECOVER utilise l’option USING BACKUP CONTROLFILE. L’option RESETLOGS crée une nouvelle incarnation de la base de données en réinitialisant l’historique de restauration par progression au point de départ, car il n’existe aucun moyen de déterminer la part de la base de données précédente ignorée dans la récupération.

    SQL> alter database open resetlogs;
    
  6. Vérifiez que le contenu de la base de données a été récupéré :

    SQL> select * from scott.scott_table;
    

Le processus de sauvegarde et de récupération d’Oracle Database sur une machine virtuelle Linux Azure est maintenant terminé.

Vous trouverez plus d’informations sur les commandes et les concepts Oracle dans la documentation Oracle, y compris :

Supprimer la machine virtuelle

Quand vous n’avez plus besoin de la machine virtuelle, vous pouvez utiliser les commandes suivantes pour supprimer le groupe de ressources, la machine virtuelle et toutes les ressources associées :

  1. Désactiver la suppression réversible des sauvegardes dans le coffre :

    az backup vault backup-properties set --name myVault --resource-group rg-oracle --soft-delete-feature-state disable
    
  2. Arrêter la protection de la machine virtuelle et supprimer les sauvegardes :

    az backup protection disable --resource-group rg-oracle --vault-name myVault --container-name vmoracle19c --item-name vmoracle19c --delete-backup-data true --yes
    
  3. Supprimer le groupe de ressources, y compris toutes les ressources :

    az group delete --name rg-oracle
    

Étapes suivantes

Créer des machines virtuelles hautement disponibles

Explorer des exemples Azure CLI pour le déploiement de machines virtuelles