Modificar UNDO_RETENTION a nivel de PDB en Active Data Guard

¿Qué es UNDO_RETENTION? UNDO_RETENTION es un parámetro de la base de datos Oracle que determina el período de retención de los datos de UNDO. Estos datos de UNDO son esenciales para operaciones como:

  • Transacciones en curso: Permiten revertir cambios en caso de que se produzcan errores.

  • Consultas consistentes: Garantizan que las consultas de larga duración tengan una vista consistente de los datos, incluso si se están produciendo cambios en ellos.

  • Flashback: Facilitan el uso de tecnologías de recuperación como Flashback Query para restaurar datos a un estado anterior sin necesidad de recuperación completa.

Cuando modificamos el parámetro UNDO_RETENTION en la base de datos primaria a nivel de PDB, este cambio debe propagarse automáticamente a la base de datos standby debido a la replicación continua de datos entre ambas bases de datos en una configuración de Active Data Guard.

Para ello primero haremos el cambio en la primaria:


[oracle@rac-xxx-001 ~]$ pdb_variables
The Oracle base remains unchanged with value /u01/app/oracle

[oracle@rac-xxx-001 ~]$ sql

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Jul 12 12:30:05 2024
Version 19.22.0.0.0

Copyright (c) 1982, 2023, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.22.0.0.0

SQL> sho parameter undo_retention
NAME                     TYPE                      VALUE
------------------------------------ -------------------------------------------- ------------------------------
undo_retention                 integer                      21600


SQL> alter system set undo_retention=604800 scope=both sid='*';

SQL> sho parameter undo_retention
NAME                     TYPE                      VALUE
------------------------------------ -------------------------------------------- ------------------------------
undo_retention                 integer                      604800


[oracle@rac-xxx-001 ~]$ cdb_variables
The Oracle base remains unchanged with value /u01/app/oracle

[oracle@rac-xxx-001 ~]$ sql

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Jul 12 12:30:43 2024
Version 19.22.0.0.0

Copyright (c) 1982, 2023, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.22.0.0.0

SYS@cdbxxx> alter system switch logfile;

System altered.

SYS@cdbgxxx>  alter system switch logfile;

System altered.

SYS@cdbxxx>  alter system switch logfile;

System altered.

Posteriormente paramos y arrancamos la PDB para ver los cambios efectuados. No se aplican a la configuración actual, es necesario reiniciarla.


SQL> alter session set container=PDB_ESQUEMA;

Session altered.

SQL> sho parameter undo_retention
NAME                     TYPE                      VALUE
------------------------------------ -------------------------------------------- ------------------------------
undo_retention                 integer                      21600


SQL> alter pluggable database close instances=all;

Pluggable database altered.

SQL> alter pluggable database open instances=all;

Pluggable database altered.

SQL> sho parameter undo_retention

NAME                     TYPE                      VALUE
------------------------------------ -------------------------------------------- ------------------------------
undo_retention                 integer                      604800

Y listo!

0
Subscribe to my newsletter

Read articles from Carla Muñoz López directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Carla Muñoz López
Carla Muñoz López

Mi nombre es Carla y me defino como una apasionada de conocer, compartir ideas, divertirme y aprender todo lo relacionado con Oracle. Alegre y creativa, con un alto grado de autoexigencia, que busca, incluso sin querer, una forma diferente de ver un mismo problema o solución. Defensora del trabajo en equipo en todas las facetas de la vida y de disfrutar todo lo que haces, siempre con humildad. Actualmente cuento con más de 15 años de experiencia como administradora de Oracle, habiendo ocupado previamente posiciones como desarrolladora en la rama de Inteligencia de Negocios. Fue en ese momento que me di cuenta de que no quería centrarme en el desarrollo, sino participar en todas las capas que involucraban los datos, desde el despliegue de la base de datos hasta su explotación final. Siempre estoy dispuesta a ayudar y compartir conocimientos. Creo firmemente que con la tecnología hay que divertirse y no verla como una competencia. La persona con la que tienes que ser el mejor es contigo mismo.