Proteja su base de datos de Oracle en el cloud de Azure
Allen Cao, Ingeniería de Soluciones de NetApp
En esta sección se describe cómo proteger su base de datos de Oracle con la herramienta azacsnap y el backup de snapshots, la restauración y las snapshots en niveles en Azure BLOB.
Realizar backups de bases de datos de Oracle con snapshot mediante la herramienta AzAcSnap
La herramienta Snapshot coherente con las aplicaciones de Azure (AzAcSnap) es una herramienta de línea de comandos que permite la protección de datos de bases de datos de terceros al manejar toda la orquestación necesaria para ponerlas en un estado coherente con las aplicaciones antes de tomar una instantánea de almacenamiento, después de la cual devuelve las bases de datos a un estado operativo.
En el caso de Oracle, se coloca la base de datos en modo de backup para realizar una instantánea y, a continuación, sacar la base de datos del modo de backup.
Backup de datos y volúmenes de registros
El backup se puede configurar en el host del servidor de bases de datos con un script de shell simple que ejecuta el comando snapshot. A continuación, se puede programar la ejecución del script desde crontab.
Generalmente, la frecuencia de backup depende del objetivo de tiempo de recuperación y el objetivo de punto de recuperación que desee. La creación frecuente de copias Snapshot consume más espacio de almacenamiento. Existe un compensación entre la frecuencia de backup y el consumo de espacio.
Los volúmenes de datos suelen consumir más espacio de almacenamiento que los volúmenes de registro. Por lo tanto, se pueden realizar copias Snapshot en volúmenes de datos cada pocas horas y realizar copias Snapshot más frecuentes en volúmenes de registro cada 15 a 30 minutos.
Consulte los siguientes ejemplos de secuencias de comandos y programación de backup.
Para snapshots de volumen de datos:
# /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
Para las copias de Snapshot de volumen de registro:
# /bin/sh
cd /home/azacsnap/bin
. ~/.bash_profile
azacsnap -c backup --volume other --prefix acao-ora01-log --retention 250
Programación de crontab:
15,30,45 * * * * /home/azacsnap/snap_log.sh 0 */2 * * * /home/azacsnap/snap_data.sh
Al configurar el backup azacsnap.json archivo de configuración, agregar todos los volúmenes de datos, incluido el volumen binario a. dataVolume y todos los volúmenes de registro en otherVolume . La retención máxima de copias de Snapshot es de 250 copias.
|
Validar las copias Snapshot
Vaya al portal de Azure > Azure NetApp Files/Volumes para comprobar si las snapshots se han creado correctamente.
Recuperación y restauración de Oracle desde un backup local
Una de las ventajas clave del backup snapshot es que existe de forma conjunta con los volúmenes de base de datos de origen y que los volúmenes de base de datos primaria pueden revertirse casi instantáneamente.
Restauración y recuperación de Oracle en el servidor primario
El siguiente ejemplo muestra cómo restaurar y recuperar una base de datos de Oracle desde la consola de Azure y la CLI en el mismo host de Oracle.
-
Cree una tabla de pruebas en la base de datos que se va a restaurar.
[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
-
Coloque la tabla después de los backups 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
-
En la consola de Azure NetApp Files, restaure el volumen de registro a la última snapshot disponible. Seleccione volumen de reversión.
-
Confirme la reversión de volumen y haga clic en revertir para completar la reversión del volumen a la última copia de seguridad disponible.
-
Repita los mismos pasos para el volumen de datos y compruebe que el backup contenga la tabla que se va a recuperar.
-
Vuelva a confirmar la versión del volumen y haga clic en "Revert".
-
Resincronizcar los archivos de control si tiene varias copias de ellos y reemplazar el archivo de control antiguo con la última copia 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
-
Inicie sesión en el equipo virtual del servidor de Oracle y ejecute la recuperación de bases de datos con 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
Esta pantalla muestra que la tabla borrada se ha recuperado utilizando copias de seguridad de instantánea locales.