Skip to main content
NetApp Solutions
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Protégez votre base de données Oracle dans le cloud Azure

Contributeurs

Allen Cao, ingénierie des solutions NetApp

Cette section décrit comment protéger votre base de données Oracle avec l'outil azacsnap et le Tiering de sauvegarde, de restauration et de snapshots vers Azure Blob.

Sauvegardez la base de données Oracle avec snapshot à l'aide de l'outil AzAcSnap

L'outil Azure application-cohérent Snapshot Tool (AzAcSnap) est un outil de ligne de commande qui permet de protéger les données des bases de données tierces en gérant l'orchestration nécessaire pour les placer dans un état cohérent entre les applications avant de créer une copie Snapshot de stockage. Il renvoie ensuite les bases de données à un état opérationnel.

Dans le cas d'Oracle, vous mettez la base de données en mode de sauvegarde pour prendre un instantané, puis sortez-la du mode de sauvegarde.

Sauvegarde des données et des volumes de journaux

La sauvegarde peut être configurée sur l'hôte du serveur de base de données à l'aide d'un script shell simple qui exécute la commande snapshot. Ensuite, le script peut être planifié pour s'exécuter à partir de crontab.

Généralement, la fréquence de sauvegarde dépend des objectifs RTO et RPO souhaités. La création fréquente de snapshots consomme plus d'espace de stockage. Il existe un compromis entre la fréquence de sauvegarde et la consommation d'espace.

En général, les volumes de données consomment plus d'espace de stockage que les volumes de journaux. Ainsi, vous pouvez créer des snapshots sur des volumes de données toutes les quelques heures et plus fréquemment sur les volumes des journaux toutes les 15 à 30 minutes.

Reportez-vous aux exemples suivants de scripts de sauvegarde et de planification.

Pour les copies Snapshot de volumes de données :

 # /bin/sh
cd /home/azacsnap/bin
. ~/.bash_profile
azacsnap -c backup --volume data --prefix acao-ora01-data --retention 36
azacsnap -c backup --volume other --prefix acao-ora01-log --retention 250

Pour les instantanés de volume de journal :

 # /bin/sh
cd /home/azacsnap/bin
. ~/.bash_profile
azacsnap -c backup --volume other --prefix acao-ora01-log --retention 250

Programme crontab :

15,30,45 * * * * /home/azacsnap/snap_log.sh
0 */2 * * * /home/azacsnap/snap_data.sh
Remarque Lors de la configuration de la sauvegarde azacsnap.json fichier de configuration, ajoutez tous les volumes de données, y compris le volume binaire, à dataVolume et tous les volumes de log à otherVolume. La rétention maximale des snapshots est de 250 copies.

Validation des snapshots

Accédez au portail Azure > Azure NetApp Files/volumes pour vérifier si les snapshots ont été créés.

Cette capture d'écran illustre deux fichiers dans la liste de snapshot. Cette capture d'écran illustre huit fichiers dans la liste de capture d'écran.

Restauration et restauration Oracle à partir de la sauvegarde locale

L'un des principaux avantages de la sauvegarde Snapshot est sa coexistence avec les volumes de base de données source, et les volumes de base de données primaires peuvent être redéployés presque instantanément.

Restauration et restauration d'Oracle sur le serveur principal

L'exemple suivant montre comment restaurer et récupérer une base de données Oracle à partir du tableau de bord et de l'interface de ligne de commande Azure sur le même hôte Oracle.

  1. Créez une table de tests dans la base de données à restaurer.

    [oracle@acao-ora01 ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Mon Sep 12 19:02:35 2022
    Version 19.8.0.0.0
    
    Copyright (c) 1982, 2019, Oracle.  All rights reserved.
    
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.8.0.0.0
    
    SQL> create table testsnapshot(
         id integer,
         event varchar(100),
         dt timestamp);
    
    Table created.
    
    SQL> insert into testsnapshot values(1,'insert a data marker to validate snapshot restore',sysdate);
    
    1 row created.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select * from testsnapshot;
    
     ID
    ----------
    EVENT
    --------------------------------------------------------------------------------
    DT
    ---------------------------------------------------------------------------
             1
    insert a data marker to validate snapshot restore
    12-SEP-22 07.07.35.000000 PM
  2. Déposez le tableau après les sauvegardes de snapshot.

    [oracle@acao-ora01 ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Tue Sep 13 14:20:22 2022
    Version 19.8.0.0.0
    
    Copyright (c) 1982, 2019, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.8.0.0.0
    
    SQL> drop table testsnapshot;
    
    Table dropped.
    
    SQL> select * from testsnapshot;
    select * from testsnapshot
                  *
    ERROR at line 1:
    ORA-00942: table or view does not exist
    
    SQL> shutdown immediate;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> exit
    Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.8.0.0.0
  3. Depuis le tableau de bord Azure NetApp Files, restaurez le volume des journaux vers le dernier snapshot disponible. Choisissez Revert volume.

    Cette capture d'écran montre la méthode de reversion de snapshot pour les volumes du tableau de bord ANF.

  4. Confirmez la restauration du volume et cliquez sur Revert pour terminer la réversion du volume vers la dernière sauvegarde disponible.

    « Êtes-vous sûr de vouloir le faire ? » page pour la nouvelle version de snapshot.

  5. Répétez les mêmes étapes pour le volume de données, puis assurez-vous que la sauvegarde contient la table à restaurer.

    Cette capture d'écran montre la méthode de reversion de snapshot pour les volumes de données dans le tableau de bord ANF.

  6. Confirmez de nouveau la version du volume et cliquez sur « Revert ».

    « Êtes-vous sûr de vouloir le faire ? » page pour la nouvelle version du snapshot du volume de données.

  7. Resynchroniser les fichiers de contrôle si vous disposez de plusieurs copies d'entre eux et remplacer l'ancien fichier de contrôle par la dernière copie disponible.

    [oracle@acao-ora01 ~]$ mv /u02/oradata/ORATST/control01.ctl /u02/oradata/ORATST/control01.ctl.bk
    [oracle@acao-ora01 ~]$ cp /u03/orareco/ORATST/control02.ctl /u02/oradata/ORATST/control01.ctl
  8. Connectez-vous à la machine virtuelle Oracle Server et exécutez la restauration de la base de données avec sqlplus.

    [oracle@acao-ora01 ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Tue Sep 13 15:10:17 2022
    Version 19.8.0.0.0
    
    Copyright (c) 1982, 2019, Oracle.  All rights reserved.
    
    Connected to an idle instance.
    
    SQL> startup mount;
    ORACLE instance started.
    
    Total System Global Area 6442448984 bytes
    Fixed Size                  8910936 bytes
    Variable Size            1090519040 bytes
    Database Buffers         5335154688 bytes
    Redo Buffers                7864320 bytes
    Database mounted.
    SQL> recover database using backup controlfile until cancel;
    ORA-00279: change 3188523 generated at 09/13/2022 10:00:09 needed for thread 1
    ORA-00289: suggestion :
    /u03/orareco/ORATST/archivelog/2022_09_13/o1_mf_1_43__22rnjq9q_.arc
    ORA-00280: change 3188523 for thread 1 is in sequence #43
    
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    
    ORA-00279: change 3188862 generated at 09/13/2022 10:01:20 needed for thread 1
    ORA-00289: suggestion :
    /u03/orareco/ORATST/archivelog/2022_09_13/o1_mf_1_44__29f2lgb5_.arc
    ORA-00280: change 3188862 for thread 1 is in sequence #44
    ORA-00278: log file
    '/u03/orareco/ORATST/archivelog/2022_09_13/o1_mf_1_43__22rnjq9q_.arc' no longer
    needed for this recovery
    
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    
    ORA-00279: change 3193117 generated at 09/13/2022 12:00:08 needed for thread 1
    ORA-00289: suggestion :
    /u03/orareco/ORATST/archivelog/2022_09_13/o1_mf_1_45__29h6qqyw_.arc
    ORA-00280: change 3193117 for thread 1 is in sequence #45
    ORA-00278: log file
    '/u03/orareco/ORATST/archivelog/2022_09_13/o1_mf_1_44__29f2lgb5_.arc' no longer
    needed for this recovery
    
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    
    ORA-00279: change 3193440 generated at 09/13/2022 12:01:20 needed for thread 1
    ORA-00289: suggestion :
    /u03/orareco/ORATST/archivelog/2022_09_13/o1_mf_1_46_%u_.arc
    ORA-00280: change 3193440 for thread 1 is in sequence #46
    ORA-00278: log file
    '/u03/orareco/ORATST/archivelog/2022_09_13/o1_mf_1_45__29h6qqyw_.arc' no longer
    needed for this recovery
    
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    cancel
    Media recovery cancelled.
    SQL> alter database open resetlogs;
    
    Database altered.
    
    SQL> select * from testsnapshot;
    
      ID
    ----------
    EVENT
    --------------------------------------------------------------------------------
    DT
    ---------------------------------------------------------------------------
             1
    insert a data marker to validate snapshot restore
    12-SEP-22 07.07.35.000000 PM
    
    SQL> select systimestamp from dual;
    
     SYSTIMESTAMP
    ---------------------------------------------------------------------------
    13-SEP-22 03.28.52.646977 PM +00:00

Cet écran montre que la table supprimée a été restaurée à l'aide de sauvegardes instantanées locales.