Respaldar Bases de Datos Oracle con RMAN hacia un Disco Local

Introducción

Para nuestro ambiente de Base de Datos Oracle en Google Cloud Platform realizaremos la configuracion de RMAN para poder respaldar y recuperar nuestras instancias cuando así los requieran nuestras pruebas.
Vamos a configurar las opciones de RMAN para que los respaldos de la base de datos sean redireccionados hacía nuestro disco de RMAN y poder minimizar el espacio requerido para almacenar los respaldos.

Prerrequisitos

Recientemente creamos una instancia multitenant patodb en Oracle 19c con una base pluggabletaller corriendo en una Virtual Machine Instance en Google Cloud Platform.
Para ver los pasos de creación revisar Crear una Base de Datos Oracle Multitenant en Modo Silencioso.

Configuración de RMAN

Necesitamos definir los parametros de configuración de RMAN con el fin de guardar nuestros respaldo dentro del Disco de Google Compute Engine para respaldos de RMAN montado en nuestra Virtual Machine patoracle.

Mostrar la Configuración Actual

Primero necesitamos revistar nuestra configuración actual con el comando show all:

[oracle@patoracle respaldo]$ rman target /

Recovery Manager: Release 19.0.0.0.0 - Production on Wed May 27 20:11:41 2020
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

connected to target database: PATODB (DBID=1820073908)

RMAN> show all;

RMAN configuration parameters for database with db_unique_name PATODB are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/opt/oracle/product/19c/dbhome_1/dbs/snapcf_patodb.f'; # default

Podemos ver que nuestros respaldo ya están direccionados a disco: CONFIGURE DEFAULT DEVICE TYPE TO DISK entonces ningún cambio aquí.

Configurar el Directorio para Respaldo de Archivos de Datos

Ahora vamos a configurar el directorio destino y el formato para nombrar nuestros respaldos. Nuestro directorio en nuestro disco montado es /rman/respaldo y vamos a nombrar nuestros respaldo con:

  • %d nombre de la base de datos
  • %T año, mes, día AAAAMMDD
  • %u identificador único del backupset
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/rman/respaldo/%d_%T_%u.bkp';

new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   '/rman/respaldo/%d_%T_%u.bkp';
new RMAN configuration parameters are successfully stored

Para más información sobre el nombrado revisar la documentacion acerca de las variables de sustición en RMAN.

Configurar el Directorio para Respaldo de Archivo de Control

Ahora hacemos lo mismo para el autorespaldo del controlfile. El directorio en nuestro disco montado is /rman/controlfile y vamos a nombrar nuestros respaldos con %F ya que es la única sustitución aceptada.

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/rman/controlfile/%F.bkp';

new RMAN configuration parameters:

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/rman/controlfile/%F.bkp';
new RMAN configuration parameters are successfully stored

Configurar la Compresión

Con el fin de ahorrar espacio vamos a configurar nuestros respaldos para que sean comprimidos:

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET;

new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET;
new RMAN configuration parameters are successfully stored

Configurar la Optimización de Resplados

Finalmente vamos a configurar la optimización para ignorar aquellos archivos de datos que ya hayan sido respaldados y cuyo contenido no ha cambiado.

RMAN> CONFIGURE BACKUP OPTIMIZATION ON;

new RMAN configuration parameters:
CONFIGURE BACKUP OPTIMIZATION ON;
new RMAN configuration parameters are successfully stored

Validar la Configuración de RMAN

Vamos a realizar un respaldo del tablespace system con el fin de validar tanto el respaldo de archivos de datos como del controlfile.

[oracle@patoracle ~]$ rman target /

Recovery Manager: Release 19.0.0.0.0 - Production on Wed May 27 21:09:40 2020
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

connected to target database: PATODB (DBID=1820073908)

RMAN> backup datafile 1;

Starting backup at 27-MAY-20
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=37 device type=DISK
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/oradata/cdbs/PATODB/system01.dbf
channel ORA_DISK_1: starting piece 1 at 27-MAY-20
channel ORA_DISK_1: finished piece 1 at 27-MAY-20
piece handle=/rman/respaldo/PATODB_20200527_1uv23mdo.bkp tag=TAG20200527T211016 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:35
Finished backup at 27-MAY-20

Starting Control File and SPFILE Autobackup at 27-MAY-20
piece handle=/rman/controlfile/c-1820073908-20200527-0d.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 27-MAY-20

RMAN> exit

Recovery Manager complete.

De la salida podemos ver que los respaldos fueron redireccionados a nuestro disco de RMAN.
piece handle=/rman/respaldo/PATODB_20200527_1uv23mdo.bkp
piece handle=/rman/controlfile/c-1820073908-20200527-0d.bkp
Revisemos directamente en el sistema operativo:

[oracle@patoracle ~]$ ls /rman/controlfile
c-1820073908-20200527-0d.bkp
[oracle@patoracle ~]$ ls /rman/respaldo
PATODB_20200527_1uv23mdo.bkp

Hemos configurado exitosamente el RMAN para direccionar los respaldos a nuestro disco!

Conclusión

Configurar los parámetros de RMAN nos ayuda a guardar de forma transparente nuestros respaldos en nuestro Disco de Google dentro de los directorios designados para cada tipo y además reduciendo el espacio requerido para conservar los respaldos de la base de datos.