# 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:

```plaintext

[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.

```plaintext

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!
