Protégez votre base de données Oracle dans le cloud Azure
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
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.
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.
-
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
-
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
-
Depuis le tableau de bord Azure NetApp Files, restaurez le volume des journaux vers le dernier snapshot disponible. Choisissez Revert volume.
-
Confirmez la restauration du volume et cliquez sur Revert pour terminer la réversion du volume vers la dernière sauvegarde disponible.
-
Répétez les mêmes étapes pour le volume de données, puis assurez-vous que la sauvegarde contient la table à restaurer.
-
Confirmez de nouveau la version du volume et cliquez sur « Revert ».
-
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
-
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.