El blog de oracle en Español

Upgrade PDB 19c to 26ai con Autoupgrade

En esta entrada vamos a explicar cómo realizar un upgrade de una base de datos 19c a 26ai. Para ello explicaré cómo hacerlo a través de Autoupgrade y Oracle update Advisor para detectar y solucionar problemas de forma proactiva antes de acometer la actualización.

Dentro de la misma máquina (oracle19cdb1). Vamos a migrar una base de datos en arquitectura multitenant (TESTPDB1) en versión 19.3 a un nuevo contenerdo ya creado en versión 23.23.26.1.0. Para realizar este upgrade, usaremos autoupgrade, la opción recomendada por Oracle.

Máquina: oracle19cdb1
Origen: Oracle 19c (19.3.0.0.0) -> CDB (test) -> PDB (TESTPDB1)
Destino: Oracle 26ai (23.26.1.0.0) -> CDB (orcl) ->

1- Descargamos la última versión de autoupgrade

Se recomienda descargar la última versión de la utilidad «AutoUpgrade» antes de comenzar a realizar cualquiera de las tareas.

Para ello decargamos el software de la siguiente dirección.
https://www.oracle.com/database/upgrades/

También puedes hacerlo directamente

wget https://download.oracle.com/otn-pub/otn_software/autoupgrade.jar

Dependiendo de la versión Oracle en la que nos encontremos, podemos verfificar que dentro de la ruta por defecto $ORACLE_HOME/rdbms/admin, ya se encuentra instalada la herramienta autoupgrade .
En este caso, si no estamos en la última versión, la cambiaremos por la última versión recientemente descargada.

oracle@oracle19cdb1 admin]$ mv autoupgrade.jar autoupgrade.jar_old
oracle@oracle19cdb1 admin]$ wget https://download.oracle.com/otn-pub/otn_software/autoupgrade.jar–2026-04-03 05:17:17–

2 – Creamos el fichero de configuración de Autoupgrade.

Antes de crear el fichero de configuración definitivo que lanzaremos con autoupgrade.jar con los parámetros necesarios con los que se realizará el upgrade, la utilidad autoupgrade.jar, permite entre otras cosas crear un fichero de ejemplo sobre el que basarnos.

Lanzamos lo siguiente:
java -jar autoupgrade.jar -create_sample_file config

Se crea el fichero /tmp/sample_config.cfg con configuraciones estándares que te ayudaran a configurar tu fichero de configuración.

Parte del fichero creado.

Con este fichero de ejemplo, vamos a crear un fichero simple válido para nuestro entorno.
Este es nuestro fichero upgrade26.cfg

[oracle@oracle19cdb1 admin]$ cat /tmp/upgrade26.cfg
global.autoupg_log_dir=/tmp/upgrade
upg1.source_home=/home/oracle/software/dbhome19c
upg1.target_home=/oradata1/software
upg1.sid=test
upg1.target_cdb=orcl
upg1.restoration=no

Explicación
global.autoupg_log_dir=/tmp/upgrade -> directorio de logs
upg1.source_home=/home/oracle/software/dbhome19c -> Oracle Home origen
upg1.target_home=/oradata1/software -> Oracle Home destino
upg1.sid=test -> Sid de la base de datos origen
upg1.target_cdb=orcl -> CDB destino
upg1.restoration=no -> Punto de restore por si hay que hacer rollbackup de la operación.
Recomendado, en este caso está a no porque es una prueba.

3 – Analizamos nuestra base de datos.

Antes de lanzar un upgrade, podemos analizar si nuestra base de datos está preprada para ralizar el upgrade sin problemas.

java -jar autoupgrade.jar -config /tmp/upgrade26.cfg -mode analyze

Lanzamos el precheck.

Al lanzarlo, aparece el siguiente error:

Unsupported Java Runtime Environment 24 AutoUpgrade must run with Java version 11

Para solucionar este problema debemos descargar una versión certificada para esta versión de upgrade.

Podemos decargar la versión a través de la página siguiente:
https://www.oracle.com/java/technologies/downloads/

Dentro de esta página descargamos el fichero correspondiente al sistema operativo de tu entorno y a la versión requeida por la herramienta.

Una vez descargado, instalamos el rpm.

[root@oracle19cdb1 Descargas]# rpm -ivh jdk-11.0.31_linux-x64_bin.rpm
Verifying… ################################# [100%]
Preparando… ################################# [100%]
Actualizando / instalando…
1:jdk-11-2000:11.0.31-9 ################################# [100%]

Ejecutamos el upgrade con la versión de java correspondiente:

oracle@oracle19cdb1 admin]$ /usr/java/jdk-11/bin/java -jar autoupgrade.jar -config /tmp/upgrade26.cfg -mode analyze
Se ha iniciado AutoUpgrade 26.5.260117 con las opciones internas por defecto
Procesando archivo de configuración…
+——————————–+
| Iniciando ejecución de AutoUpgrade |
+——————————–+
1 PDB serán analizadas
Tipo ‘help’ para enumerar comandos de consola

Autoupgrade nos llevará a la consola para monitorizar el estado de nuestro chequeo:

Procesando archivo de configuración…
+——————————–+
| Iniciando ejecución de AutoUpgrade |
+——————————–+
1 PDB serán analizadas
Tipo ‘help’ para enumerar comandos de consola
upg>

Existen varias formas de monitorizar los procesos que se van ejecutando en Autopugrade, uno es añadir el comando lsj -a 10 y comenzará a verse en pantalla el estado del análisis de nuestra base de datos verificando los parámetros de nuestro fichero de configuración.

Explicación del comando:
lsj (lista los jobs)
-a (listar todos los trabajos, activos y no activos)
10 (intervalo de refresco en segundos del comando lanzado)

Existen diferentes formas de monitorizar nuestros trabajos, iremos viendo algunos de ellos en este ejemplo.

Esto nos devuelve un número de trabajo, en este caso 100 con el que podremos ver más información del job ejecutado (estado, errores, etc), si fuera necesario.

Si todo es correcto, veremos algo parecido a lo siguiente:

Verificamos que todo se ha ejecutado sin errores, chequenado el fichero de log.

En este momento podemos lanzar el upgrade. En este caso, no tenemos punto de restore upg1.restoration=no, pero para entornos productivos aconsejo siempre estudiar esta posibilidad.

4 – Upgrade de la base de datos PDB-> 19C to PDB->26ai

Después del analyze (precheck) ya podemos lanzar el upgrade de nuestra base de datos, en este caso de nuestra pdb (testpdb1), de un contenedor de 19c a 26ai.

[oracle@oracle19cdb1 admin]$ /usr/java/jdk-11/bin/java -jar autoupgrade.jar -config /tmp/upgrade26.cfg -mode deploy

Esta vez vamos a monitorizar el job de la siguiente forma ( status -job 101 -a 10).

upg>status -job 101 -a 10
Detalles

Tras unos minutos tendremos nuestra PDB en 26ai.

[oracle@oracle19cdb1 ~]$ cat /tmp/upgrade/cfgtoollogs/upgrade/auto/status/status.log
Autoupgrade Summary Report
[Date] Fri Apr 24 03:04:51 CEST 2026
[Stage Name] SYSUPDATES
[Status] SUCCESS
[Start Time] 2026-04-24 03:04:50
[Duration] 0:00:00
[Log Directory] /tmp/upgrade/test/101/sysupdates
Summary:/tmp/upgrade/test/101/dbupgrade/upg_summary.log
[oracle@oracle19cdb1 ~]$

5 -Comprobaciones post-upgrade.

En estos momentos únicamente resta comprobar que nuestro upgrade a 26ai se ha realizado correctamente.

CDB 19C

Para ello nos conectamos a la base de datos origen (source);

Comprobamos que la base de datos «testpdb1», ya no se encuentra en la CDB origen.

[oracle@oracle19cdb1 101]$ sqlplus -v
SQL*Plus: Release 19.0.0.0.0 – Production
Version 19.3.0.0.0
[oracle@oracle19cdb1 101]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 – Production on Fri Apr 24 08:11:06 2026
Version 19.3.0.0.0
SQL> show pdbs

CON_ID CON_NAME OPEN MODE RESTRICTED
——————————————————————
2 PDB$SEED READ ONLY NO

CDB 26AI

Nos conectamos al contendor 26AI donde hemos realizado el upgrade a 26ai y comprobamos que nuestra PDB «TESTPDB1» está migrada a 26ai.

[oracle@oracle19cdb1 admin]$ sqlplus -v
SQL*Plus: Release 23.26.1.0.0 – Production
Version 23.26.1.0.0


[oracle@oracle19cdb1 admin]$ sqlplus / as sysdba
SQL*Plus: Release 23.26.1.0.0 – Production on Fri Apr 24 08:10:46 2026
Version 23.26.1.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Conectado a:
Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 – Production
Version 23.26.1.0.0


SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
————————————————————-
2 PDB$SEED READ ONLY NO
3 ORCLPDB READ WRITE NO
4 TESTPDB1 READ WRITE NO


Las opciones de Autoupgrade son muy extensas, recuerda que es la opción recomendada y soportada por Oracle. Realizaré más causísticas que iré añadiendo a mi blog por si pueden ser de ayuda.

Oracle ACE Associate