Aquí te presento algunas recomendaciones para administrar y depurar los backups realizados con RMAN en Oracle Database 19c:
- Monitorizar los backups:
- Revisa regularmente los registros de RMAN (archivos de traza) para asegurarte de que los backups se hayan realizado correctamente.
- Utiliza el comando
list backuppara ver el historial de backups y comprobar su integridad. - Configura notificaciones (por correo electrónico, mensajería, etc.) para recibir alertas sobre posibles problemas con los backups.
- Verificar la integridad de los backups:
- Utiliza el comando
validate databasepara comprobar que los archivos de backup sean restaurables. - Realiza pruebas de restauración y recuperación periódicamente para asegurarte de que los backups puedan ser utilizados en caso de ser necesario.
- Utiliza el comando
- Gestionar el espacio de almacenamiento:
- Monitoriza el uso de espacio en el directorio de backups y expande o migra los backups a un medio de almacenamiento adicional cuando sea necesario.
- Utiliza el comando
configure retention policypara establecer una política de retención adecuada y depurar los backups antiguos que ya no se necesiten. - Considera el uso de herramientas de limpieza y purga de backups para mantener el directorio organizado y liberar espacio.
- Administrar el catálogo de recuperación (si se utiliza):
- Revisa periódicamente el catálogo de recuperación RMAN para identificar posibles problemas o inconsistencias.
- Utiliza los comandos
crosscheckydelete obsoletepara mantener el catálogo actualizado y eliminar los backups obsoletos. - Realiza copias de seguridad del catálogo de recuperación para poder restaurarlo en caso de ser necesario.
- Documentar y automatizar los procesos:
- Mantén un registro detallado de la configuración de los backups, las políticas de retención y cualquier otra información relevante.
- Automatiza los procesos de backup, verificación e incluso la depuración de los backups mediante scripts de RMAN o herramientas de programación de tareas.
- Probar la recuperación de la base de datos:
- Realiza pruebas periódicas de recuperación de la base de datos a partir de los backups para asegurarte de que el proceso funciona correctamente.
- Simula diferentes escenarios de recuperación, como la pérdida de archivos de datos, archivos de control o el registro de recuperación.
- Realizar copias de seguridad de los metadatos:
- Respalda regularmente los archivos de control, el registro de recuperación y cualquier otro metadato crítico para la base de datos.
- Almacena estas copias de seguridad en una ubicación segura y fuera del sitio.
Siguiendo estas recomendaciones, podrás mantener un proceso de backup robusto, confiable y fácil de administrar en tu entorno Oracle 19c.
Ejemplo:
Aquí te presento un ejemplo paso a paso de cómo administrar y depurar los backups en RMAN, considerando un esquema de backup semanal full y backup incremental diario:
Configurar el entorno de RMAN:
$ rman target /
Recovery Manager: Release 19.0.0.0.0 - Production on Tue Dec 26 12:34:56 2024
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
RMAN>
Configurar el destino de los backups y la política de retención:
RMAN> configure controlfile autobackup format for device type disk to '/rman_backups/autobackup_%F';
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/rman_backups/autobackup_%F';
new RMAN configuration parameters are successfully stored
RMAN> configure retention policy to recovery window of 35 days;
new retention policy was successfully set
Realizar un backup semanal full de la base de datos:
RMAN> backup database format '/rman_backups/db_backup_full_%d_%t_%s_%p.bkp';
Starting backup at 26-DIC-24
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=12 device type=DISK
channel ORA_DISK_1: starting full database backup
channel ORA_DISK_1: specifying database backup set
channel ORA_DISK_1: starting piece 1 at 26-DIC-24
channel ORA_DISK_1: finished piece 1 at 26-DIC-24
piece handle=/rman_backups/db_backup_full_20241226_123456_1_1.bkp tag=TAG20241226T123456 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:10:24
Finished backup at 26-DIC-24
Realizar backups incrementales diarios:
RMAN> backup incremental level 1 database format '/rman_backups/db_backup_inc_%d_%t_%s_%p.bkp';
Starting backup at 27-DIC-24
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=12 device type=DISK
channel ORA_DISK_1: starting incremental level 1 database backup
channel ORA_DISK_1: specifying database backup set
channel ORA_DISK_1: starting piece 1 at 27-DIC-24
channel ORA_DISK_1: finished piece 1 at 27-DIC-24
piece handle=/rman_backups/db_backup_inc_20241227_123456_1_1.bkp tag=TAG20241227T123456 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:04:12
Finished backup at 27-DIC-24
Monitorear los backups:
RMAN> list backup;
using target database control file instead of recovery catalog
List of Backups
===============
Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- --------------- ------- ------- ---------- ---
1 B F A DISK 26-DIC-24 1 1 NO TAG20241226T123456
2 B I A DISK 27-DIC-24 1 1 NO TAG20241227T123456
Verificar la integridad de los backups:
RMAN> validate database;
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=12 device type=DISK
channel ORA_DISK_1: starting validation of the database
channel ORA_DISK_1: validation complete
List of Datafiles
================
File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ ---------------- ----------
1 VALID NOT FOUND 0 56710 12345
2 VALID NOT FOUND 0 43522 12345
[...]
Finished validation of database
Depurar los backups obsoletos:
RMAN> crosscheck backup;
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=12 device type=DISK
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/rman_backups/db_backup_full_20241219_123456_1_1.bkp RECID=1 STAMP=1234567890
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/rman_backups/db_backup_inc_20241220_123456_1_1.bkp RECID=2 STAMP=1234567891
[...]
RMAN> delete obsolete;
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=12 device type=DISK
deleting obsolete backup pieces
backup piece handle=/rman_backups/db_backup_full_20241212_123456_1_1.bkp RECID=1 STAMP=1234567890
backup piece handle=/rman_backups/db_backup_inc_20241213_123456_1_1.bkp RECID=2 STAMP=1234567891
Aquí quiero abrir un gran gran paréntesis ya que determinar cuándo un backup es obsoleto y no sirve para una recuperación no es una tarea trivial, pues depende de varios factores.
Aquí te explico cómo RMAN puede ayudarte a identificar y depurar los backups obsoletos:
- Política de retención:
- Cuando se configura esta política, RMAN automáticamente identifica los backups que ya no son necesarios para cumplir con la ventana de recuperación.
- Verificación de la integridad de los backups:
- Antes de marcar un backup como obsoleto, RMAN realiza una verificación de la integridad del mismo utilizando el comando
crosscheck. - El
crosscheckcompara los metadatos del backup almacenados en el catálogo RMAN con los archivos de backup físicos. - Si el backup no se encuentra disponible o no puede ser leído, RMAN lo marca como «EXPIRED» en el catálogo.
- Antes de marcar un backup como obsoleto, RMAN realiza una verificación de la integridad del mismo utilizando el comando
- Eliminación de backups obsoletos:
- Una vez que RMAN ha identificado los backups obsoletos, puedes utilizar el comando
delete obsoletepara eliminarlos. - Este comando elimina los archivos de backup físicos y actualiza el catálogo RMAN en consecuencia.
- Una vez que RMAN ha identificado los backups obsoletos, puedes utilizar el comando
Es importante tener en cuenta que RMAN siempre mantiene los backups necesarios para cumplir con la política de retención configurada. Incluso si un backup individual está marcado como obsoleto, RMAN se asegura de que haya suficientes backups disponibles para poder recuperar la base de datos.
Además, puedes realizar pruebas de recuperación periódicas para verificar que los backups sean restaurables y puedan utilizarse para recuperar la base de datos en caso de ser necesario.
En resumen, RMAN utiliza un enfoque sistemático y automatizado para identificar y depurar los backups obsoletos, basándose en la política de retención y la verificación de la integridad de los archivos. Esto ayuda a mantener un conjunto confiable de backups sin necesidad de depender de la intuición o la experiencia del administrador.
Aquí te muestro un ejemplo paso a paso de cómo realizar una depuración de backups junto con una prueba de recuperación de la base de datos en RMAN:
Verifica la configuración de la política de retención:
RMAN> show retention policy;
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 35 DAYS;
Realiza un crosscheck de los backups existentes:
RMAN> crosscheck backup;
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=12 device type=DISK
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/rman_backups/db_backup_full_20241226_123456_1_1.bkp RECID=1 STAMP=1234567890
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/rman_backups/db_backup_inc_20241227_123456_1_1.bkp RECID=2 STAMP=1234567891
Identifica y elimina los backups obsoletos:
RMAN> delete obsolete;
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=12 device type=DISK
deleting obsolete backup pieces
backup piece handle=/rman_backups/db_backup_full_20241219_123456_1_1.bkp RECID=1 STAMP=1234567890
backup piece handle=/rman_backups/db_backup_inc_20241220_123456_1_1.bkp RECID=2 STAMP=1234567891
Valida la integridad de los backups:
RMAN> validate database;
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=12 device type=DISK
channel ORA_DISK_1: starting validation of the database
channel ORA_DISK_1: validation complete
List of Datafiles
================
File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ ---------------- ----------
1 VALID NOT FOUND 0 56710 12345
2 VALID NOT FOUND 0 43522 12345
[...]
Finished validation of database
Prueba la recuperación de la base de datos:
RMAN> restore database;
using channel ORA_DISK_1
Starting restore at 27-DIC-24
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=12 device type=DISK
channel ORA_DISK_1: restoring database
channel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/orcl/system01.dbf
channel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/orcl/sysaux01.dbf
[...]
channel ORA_DISK_1: restore complete, elapsed time: 00:15:00
Finished restore at 27-DIC-24
RMAN> recover database;
using channel ORA_DISK_1
starting media recovery
archived log for thread 1 with sequence 1234 is already on disk as file /rman_backups/archivelog_20241227_123456.arc
archived log file name=/rman_backups/archivelog_20241227_123456.arc thread=1 sequence=1234
media recovery complete, elapsed time: 00:05:00
Finished recovery at 27-DIC-24
Al realizar estas acciones, puedes estar seguro de que tus backups son confiables y que podrás restaurar y recuperar la base de datos de manera efectiva en caso de ser necesario.
Recuerda que este es un ejemplo básico y que deberías adaptar el proceso a tus necesidades y políticas específicas. Si tienes alguna otra pregunta, no dudes en consultarme.






Deja un comentario