Aprende a parchar como Dios manda (S3E1)
Iniciamos el 2026 con la tercera temporada de la serie de artículos «Aprende a parchar como Dios manda».
Por si no lo has hecho aún, te recomiendo darle una mirada a los episodios anteriores:
S1E1. Parchado in-place, la forma más común y también la más peligrosa
S1E2. Parchado out-of-place, la forma recomendada y también la más eficiente
S1E3. Creación de Gold Image para el parchado de Oracle Single Instance Database
S2E1. Parchado de Oracle RAC Database con Gold Image
S2E2. Parchado out-of-place de Oracle Grid Infrastructure (Oracle Restart)
S2E3. Creación de Gold Image para el parchado de Oracle Grid Infrastructure (Oracle Restart)
En esta nueva temporada haremos una revisión de lo ya visto, pero ahora aprovechando el utilitario AutoUpgrade, que con la versión 26.2 ha alcanzado un nivel de madurez que no podemos pasar por alto.
En un artículo anterior analizo a AutoUpgrade en su faceta como utilitario para descargar parches; ahora lo veremos como una herramienta para instalación y para parchado.
Para empezar, veremos las diferencias con el procedimiento seguido en el artículo S1E2: Parchado de Oracle Single Instance Database.
Situación inicial
Conforme a la lista que sigue, queremos implementar el Release Update más reciente: 19.30, así como los parches sugeridos y la versión más actual de OPatch, todo para Linux:
| 38632161 | Database Release Update : 19.30.0.0.260120(REL-JAN260130) (38632161) |
| 38661284 | OCW RELEASE UPDATE 19.30.0.0.0 (38661284) |
| 38523609 | OJVM RELEASE UPDATE: 19.30.0.0.260120 (38523609) |
| 38586770 | JDK BUNDLE PATCH 19.0.0.0.260120 |
| 38844733 | DATAPUMP BUNDLE PATCH 19.30.0.0.0 |
| 29213893 | DBMS_STATS FAILING WITH ERROR ORA-01422 WHEN GATHERING STATS FOR USER$ TABLE |
| 34774667 | ORA-7445 IN PURGE QUEUE TABLE |
| 34672698 | ORA-00800 SOFT EXTERNAL ERROR, ARGUMENTS [SET PRIORITY FAILED], [VKTM] , DISM(16) |
| 37690446 | ORA-600 [KTATMKREF-RS] ERRORS IN THE ALERT LOG POST-PATCH 37260974 (19.26.0.0.250121 DBRU) |
| 38844367 | 19.30 OJVM PATCH APPLY IS FAILING ON SECOND NODE IN RAC ENVIRONMENT |
AutoUpgrade: download
Archivo de configuración
global.global_log_dir=/stage/autoupgrade/log
global.keystore=/stage/autoupgrade/keystore
global.folder=/stage/autoupgrade/patches
patch1.patch=RU:19.30,OPATCH,OJVM,DPBP,OCW,JDK,37690446,34672698,34774667,29213893,38844367
patch1.platform=LINUX.X64
En él señalamos:
- la ubicación del Wallet con nuestras credenciales de My Oracle Support (línea 2)
- el directorio para descargar los parches (línea 3)
- los parches que necesitamos (línea 5)
- la plataforma en uso (línea 6)
1
2
Descargar parches
Hacemos una primera invocación a AutoUpgrade, para ejecutar la descarga en sí, con -mode download:
java -jar autoupgrade.jar \
-config download.cfg \
-patch -mode download
AutoUpgrade Patching 26.2.260205 launched with default internal options
Processing config file ...
Loading AutoUpgrade Patching keystore
AutoUpgrade Patching keystore is loaded
Connected to MOS - Searching for specified patches
There were conditions found preventing AutoUpgrade Patching from successfully running
*Downloading files
Cannot find the patch for bug 38844367
AutoUpgrade no encuentra el parche 38844367, aunque sí está disponible en MOS.
Luego de consultar el caso con algunos ingenieros de Oracle a cargo de AutoUpgrade, se concluye que se trata de una limitación del producto: actualmente solo se pueden descargar parches relacionados con el RU y este parche es de OJVM.
Siendo así, no queda más que removerlo de la lista y descargarlo por otros medios. Parece que getMOSPatch seguirá siendo mi aliado hasta nuevo aviso.
global.global_log_dir=/stage/autoupgrade/log
global.keystore=/stage/autoupgrade/keystore
global.folder=/stage/autoupgrade/patches
patch1.patch=RU:19.30,OPATCH,OJVM,DPBP,OCW,JDK,37690446,34672698,34774667,29213893
patch1.platform=LINUX.X64
java -jar autoupgrade.jar \
-config download.cfg \
-patch -mode download
AutoUpgrade Patching 26.2.260205 launched with default internal options
Processing config file ...
Loading AutoUpgrade Patching keystore
AutoUpgrade Patching keystore is loaded
Connected to MOS - Searching for specified patches
------------------------------------------------------------------------
Downloading files to /stage/autoupgrade/patches
------------------------------------------------------------------------
DATABASE RELEASE UPDATE 19.30.0.0.0(REL-JAN260130)
File: p38632161_190000_Linux-x86-64.zip - VALIDATED
OPatch 12.2.0.1.49 for DB 19.0.0.0.0 (Jan 2026)
File: p6880880_190000_Linux-x86-64.zip - VALIDATED
OJVM RELEASE UPDATE 19.30.0.0.0
File: p38523609_190000_Linux-x86-64.zip - VALIDATED
DATAPUMP BUNDLE PATCH 19.30.0.0.0
File: p38844733_1930000DBRU_Generic.zip - VALIDATED
GI RELEASE UPDATE 19.30.0.0.0(REL-JAN260130)
File: p38629535_190000_Linux-x86-64.zip - VALIDATED
JDK BUNDLE PATCH 19.0.0.0.260120
File: p38586770_190000_Linux-x86-64.zip - VALIDATED
ORA-600 [KTATMKREF-RS] ERRORS IN THE ALERT LOG POST-PATCH 37260974 (19.26.0.0.250121 DBRU)
File: p37690446_1930000DBRU_Linux-x86-64.zip - VALIDATED
ORA-00800: SOFT EXTERNAL ERROR, ARGUMENTS: [SET PRIORITY FAILED], [VKTM] , DISM(16)
File: p34672698_1930000DBRU_Linux-x86-64.zip - VALIDATED
ORA-7445 IN PURGE QUEUE TABLE
File: p34774667_1930000DBRU_Linux-x86-64.zip - VALIDATED
DBMS_STATS FAILING WITH ERROR ORA-01422 WHEN GATHERING STATS FOR USER$ TABLE
File: p29213893_1930000DBRU_Generic.zip - VALIDATED
------------------------------------------------------------------------
Copiar instaladores
Si bien ya tenemos todos los parches requeridos, para que AutoUpgrade pueda hacer la instalación debemos colocar el instalador base de Oracle Database Server 19c en la carpeta de parches.
Esto ya no es necesario con Oracle 26ai porque el RU es en realidad un Gold Image listo para ser usado como instalador.
$ ls -la /stage/autoupgrade/patches
drwxrwxr-x Feb 10 18:27 .
drwxrwxr-x Feb 10 20:02 ..
-rw-rw-r-- Apr 26 2019 LINUX.X64_193000_db_home.zip
-rw-rw-r-- Feb 9 09:40 p29213893_1930000DBRU_Generic.zip
-rw-rw-r-- Feb 9 09:40 p34672698_1930000DBRU_Linux-x86-64.zip
-rw-rw-r-- Feb 9 09:40 p34774667_1930000DBRU_Linux-x86-64.zip
-rw-rw-r-- Feb 9 09:40 p37690446_1930000DBRU_Linux-x86-64.zip
-rw-rw-r-- Feb 9 09:34 p38523609_190000_Linux-x86-64.zip
-rw-rw-r-- Feb 1 16:03 p38586770_190000_Linux-x86-64.zip
-rw-rw-r-- Feb 9 09:33 p38632161_190000_Linux-x86-64.zip
-rw-rw-r-- Feb 9 11:06 p38661284_1930000OCW_Linux_x86-64.zip
-rw-rw-r-- Feb 9 14:45 p38844367_1930000OJVMRU_Generic.zip
-rw-rw-r-- Feb 9 09:34 p38844733_1930000DBRU_Generic.zip
-rw-rw-r-- Feb 1 15:52 p6880880_190000_Linux-x86-64.zip
3
AutoUpgrade: create_home
Archivo de configuración
Necesitamos un nuevo archivo de configuración, el cual llamaremos create_oh.cfg, con los siguientes datos:
global.global_log_dir=/home/oracle/autoupgrade/log
global.keystore=/home/oracle/autoupgrade/keystore
global.folder=/NFS/autoupgrade/patches
install1.patch=RU:19.30,OPATCH,OJVM,DPBP,OCW,JDK,37690446,34672698,34774667,29213893,38844367
install1.target_version=19
install1.platform=LINUX.X64
install1.download=no
install1.target_home=/u01/app/oracle/19.0.0/db_2
install1.home_settings.oracle_base=/u01/app/oracle
install1.home_settings.edition=EE
install1.home_settings.inventory_location=/u01/app/oraInventory
install1.home_settings.home_name=DBHome2
install1.home_settings.osdba_group=dba
install1.home_settings.osbackupdba_group=backupdba
install1.home_settings.osdgdba_group=dgdba
install1.home_settings.oskmdba_group=kmdba
install1.home_settings.osracdba_group=racdba
install1.home_settings.ru_apply=yes
Como lo usual es que los parches se descarguen desde un servidor con acceso a internet, pero la instalación del software se hace en servidores aislados del internet, en la línea 3 indicamos la ubicación de los parches dentro de una carpeta compartida por NFS.
En la línea 5 va la lista de parches a aplicar, incluido el que tuvimos que descargar por nuestra cuenta.
En la línea 8 indicamos que no se harán descargas, ya que todo lo necesario está en la carpeta de parches.
En las líneas 10 a 19 se indican las propiedades del nuevo Oracle Home, como su ubicación, nombre, grupos, etc.
Finalmente, en la línea 20, se indica que se aplique el RU al momento de instalar, lo que es equivalente a ejecutar: runinstaller -applyRU. Eso sí, los parches adicionales se instalarán uno a uno con OPatch, AutoUpgrade no hace uso de: -applyOneOffs, lo cual puede hacerlo algo más lento, pero tiene como ventaja que es a prueba de todo (los MRP no pueden ser procesados por -applyOneOffs, por ejemplo).
1
2
Instalar Oracle Database
java -jar autoupgrade.jar \
-config create_oh.cfg \
-patch -mode create_home
Processing config file ...
Loading AutoUpgrade Patching keystore
AutoUpgrade Patching keystore is loaded
+-----------------------------------------+
| Starting AutoUpgrade Patching execution |
+-----------------------------------------+
Type 'help' to list console commands
patch>
Tal como vemos líneas abajo, AutoUpgrade empieza por descomprimir el instalador base de Oracle 19c, y luego va aplicando uno a uno los parches solicitados.
patch> lsj -a 90
patch> +----+-------------+-------+---------+-------+----------+-------+---------------------+
|Job#| DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------------+-------+---------+-------+----------+-------+---------------------+
| 100|create_home_1|EXTRACT|EXECUTING|RUNNING| 12:45:18| 5s ago|Extracting gold image|
+----+-------------+-------+---------+-------+----------+-------+---------------------+
Total jobs 1
The command lsj is running every 90 seconds. PRESS ENTER TO EXIT
+----+-------------+-------+---------+-------+----------+-------+----------------------+
|Job#| DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------------+-------+---------+-------+----------+-------+----------------------+
| 100|create_home_1|INSTALL|EXECUTING|RUNNING| 12:45:18| 5s ago|Installing ORACLE_HOME|
+----+-------------+-------+---------+-------+----------+-------+----------------------+
Total jobs 1
The command lsj is running every 90 seconds. PRESS ENTER TO EXIT
+----+-------------+-----------+---------+-------+----------+-------+----------------------------------------+
|Job#| DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------------+-----------+---------+-------+----------+-------+----------------------------------------+
| 100|create_home_1|OH_PATCHING|EXECUTING|RUNNING| 12:45:18| 3s ago|OJVM RELEASE UPDATE: 19.30.0.0.260120 (3|
+----+-------------+-----------+---------+-------+----------+-------+----------------------------------------+
Total jobs 1
The command lsj is running every 90 seconds. PRESS ENTER TO EXIT
+----+-------------+-----------+---------+-------+----------+-------+----------------------------------------+
|Job#| DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------------+-----------+---------+-------+----------+-------+----------------------------------------+
| 100|create_home_1|OH_PATCHING|EXECUTING|RUNNING| 12:45:18|33s ago|OCW RELEASE UPDATE 19.30.0.0.0 (38661284|
+----+-------------+-----------+---------+-------+----------+-------+----------------------------------------+
Total jobs 1
The command lsj is running every 90 seconds. PRESS ENTER TO EXIT
+----+-------------+-----------+---------+-------+----------+-------+----------------------------------------+
|Job#| DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------------+-----------+---------+-------+----------+-------+----------------------------------------+
| 100|create_home_1|OH_PATCHING|EXECUTING|RUNNING| 12:45:18|11s ago|ORA-600 [KTATMKREF-RS] ERRORS IN THE ALE|
+----+-------------+-----------+---------+-------+----------+-------+----------------------------------------+
Total jobs 1
The command lsj is running every 90 seconds. PRESS ENTER TO EXIT
+----+-------------+-----------+---------+-------+----------+-------+-----------------------------+
|Job#| DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------------+-----------+---------+-------+----------+-------+-----------------------------+
| 100|create_home_1|OH_PATCHING|EXECUTING|RUNNING| 12:45:18|13s ago|ORA-7445 IN PURGE QUEUE TABLE|
+----+-------------+-----------+---------+-------+----------+-------+-----------------------------+
Total jobs 1
The command lsj is running every 90 seconds. PRESS ENTER TO EXIT
Job 100 completed
------------------- Final Summary --------------------
Number of databases [ 1 ]
Jobs finished [1]
Jobs failed [0]
Jobs restored [0]
Jobs pending [0]
# Run the root.sh script as root for the following jobs:
For create_home_1 -> /u01/app/oracle/19.0.0/db_2/root.sh
Please check the summary report at:
/home/oracle/autoupgrade/log2/cfgtoollogs/patch/auto/status/status.html
/home/oracle/autoupgrade/log2/cfgtoollogs/patch/auto/status/status.log
Ejecutar root.sh
Al concluir, sin incidentes, nos indica que debemos ejecutar root.sh para concluir con la instalación.
Lo ejecutamos y verificamos que el nuevo Oracle Home está tal como lo solicitamos.
$ sudo sh /u01/app/oracle/19.0.0/db_2/root.sh
Check /u01/app/oracle/19.0.0/db_2/install/root_server1_2026-02-09_13-09-34-146067296.log for the output of root script
$ opatch lspatches
38632161;Database Release Update : 19.30.0.0.260120(REL-JAN260130) (38632161)
38661284;OCW RELEASE UPDATE 19.30.0.0.0 (38661284)
38523609;OJVM RELEASE UPDATE: 19.30.0.0.260120 (38523609)
38586770;JDK BUNDLE PATCH 19.0.0.0.260120
38844733;DATAPUMP BUNDLE PATCH 19.30.0.0.0
29213893;DBMS_STATS FAILING WITH ERROR ORA-01422 WHEN GATHERING STATS FOR USER$ TABLE
34774667;ORA-7445 IN PURGE QUEUE TABLE
34672698;ORA-00800 SOFT EXTERNAL ERROR, ARGUMENTS [SET PRIORITY FAILED], [VKTM] , DISM(16)
37690446;ORA-600 [KTATMKREF-RS] ERRORS IN THE ALERT LOG POST-PATCH 37260974 (19.26.0.0.250121 DBRU)
38844367;19.30 OJVM PATCH APPLY IS FAILING ON SECOND NODE IN RAC ENVIRONMENT
OPatch succeeded.
3
AutoUpgrade: patch
Archivo de configuración
Creamos un archivo de configuración, el cual llamaremos patch_db.cfg, con los siguientes datos:
global.global_log_dir=/home/oracle/autoupgrade/log
global.folder=/NFS/autoupgrade/patches
patch1.sid=democdb
patch1.source_home=/u01/app/oracle/19.0.0/db_1
patch1.target_home=/u01/app/oracle/19.0.0/db_2
patch1.restoration=NO
Como vemos, es bastante simple: solo indicamos el Oracle Home original, el Oracle Home de destino y, desde luego, el ORACLE_SID de la base de datos que vamos a parchar.
1
2
Parchar la base de datos
Estamos listos para que AutoUpgrade haga el trabajo de parchado, con -mode deploy:
java -jar autoupgrade.jar \
-config patch_db.cfg \
-patch -mode deploy
AutoUpgrade Patching 26.2.260205 launched with default internal options
Processing config file ...
+-----------------------------------------+
| Starting AutoUpgrade Patching execution |
+-----------------------------------------+
1 CDB(s) plus 2 PDB(s) will be processed
Type 'help' to list console commands
patch>
AutoUpgrade empieza por ejecutar chequeos previos, como por ejemplo ver el estado de las estadísticas, tareas en ejecución, etc., que podrían impedir el parchado.
A continuación detiene la base de datos y la inicia en su nuevo Oracle Home, ejecuta datapatch para actualizar el catálogo, esto para CDB$ROOT, PDB$SEED y todos los PDBs que existan.
Finalmente hace validaciones adicionales y copia al nuevo Oracle Home archivos como tnsnames.ora, sqlnet.ora, password file, etc.
patch> lsj -a 30
patch> +----+-------+---------+---------+-------+----------+-------+----------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+-------+----------------+
| 100|democdb|PRECHECKS|EXECUTING|RUNNING| 15:23:29| 0s ago|Executing Checks|
+----+-------+---------+---------+-------+----------+-------+----------------+
Total jobs 1
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT
+----+-------+---------+---------+-------+----------+-------+-------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+-------+-------------------+
| 100|democdb|PREFIXUPS|EXECUTING|RUNNING| 15:23:29| 4s ago|Re-Executing Checks|
+----+-------+---------+---------+-------+----------+-------+-------------------+
Total jobs 1
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT
+----+-------+-----------+---------+-------+----------+-------+-----------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+-----------+---------+-------+----------+-------+-----------------+
| 100|democdb|DB_PATCHING|EXECUTING|RUNNING| 15:23:29|18s ago|Patching Database|
+----+-------+-----------+---------+-------+----------+-------+-----------------+
Total jobs 1
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT
+----+-------+-----------+---------+-------+----------+-------+-------------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+-----------+---------+-------+----------+-------+-------------------------------+
| 100|democdb|DB_PATCHING|EXECUTING|RUNNING| 15:23:29|15s ago|PREFIXUPS - Re-Executing Checks|
+----+-------+-----------+---------+-------+----------+-------+-------------------------------+
Total jobs 1
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT
+----+-------+-----------+---------+-------+----------+-------+--------------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+-----------+---------+-------+----------+-------+--------------------------------+
| 100|democdb|DB_PATCHING|EXECUTING|RUNNING| 15:23:29|15s ago|DRAIN - Disabling RAC if present|
+----+-------+-----------+---------+-------+----------+-------+--------------------------------+
Total jobs 1
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT
+----+-------+-----------+---------+-------+----------+-------+----------------------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+-----------+---------+-------+----------+-------+----------------------------------------+
| 100|democdb|DB_PATCHING|EXECUTING|RUNNING| 15:23:29|15s ago|DRAIN - RAC configurations have finished|
+----+-------+-----------+---------+-------+----------+-------+----------------------------------------+
Total jobs 1
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT
+----+-------+-----------+---------+-------+----------+-------+-------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+-----------+---------+-------+----------+-------+-------------------+
| 100|democdb|DB_PATCHING|EXECUTING|RUNNING| 15:23:29|15s ago|DBUPGRADE - Running|
+----+-------+-----------+---------+-------+----------+-------+-------------------+
Total jobs 1
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT
+----+-------+-----------+---------+-------+----------+-------+-------------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+-----------+---------+-------+----------+-------+-------------------------------+
| 100|democdb|DB_PATCHING|EXECUTING|RUNNING| 15:23:29|15s ago|DBUPGRADE - 5%Patching CDB$ROOT|
+----+-------+-----------+---------+-------+----------+-------+-------------------------------+
Total jobs 1
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT
+----+-------+-----------+---------+-------+----------+-------+-------------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+-----------+---------+-------+----------+-------+-------------------------------+
| 100|democdb|DB_PATCHING|EXECUTING|RUNNING| 15:23:29|15s ago|DBUPGRADE - 0%Patching PDB$SEED|
+----+-------+-----------+---------+-------+----------+-------+-------------------------------+
Total jobs 1
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT
+----+-------+-----------+---------+-------+----------+-------+-----------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+-----------+---------+-------+----------+-------+-----------------------------+
| 100|democdb|DB_PATCHING|EXECUTING|RUNNING| 15:23:29|15s ago|POSTFIXUPS - Executing fixups|
+----+-------+-----------+---------+-------+----------+-------+-----------------------------+
Total jobs 1
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT
+----+-------+----------+---------+-------+----------+-------+-------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED|MESSAGE|
+----+-------+----------+---------+-------+----------+-------+-------+
| 100|democdb|POSTCHECKS|PREPARING|RUNNING| 15:23:29| 0s ago| |
+----+-------+----------+---------+-------+----------+-------+-------+
Total jobs 1
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT
Job 100 completed
------------------- Final Summary --------------------
Number of databases [ 1 ]
Jobs finished [1]
Jobs failed [0]
Jobs restored [0]
Jobs pending [0]
Please check the summary report at:
/home/oracle/autoupgrade/log_1930/cfgtoollogs/patch/auto/status/status.html
/home/oracle/autoupgrade/log_1930/cfgtoollogs/patch/auto/status/status.log
Verificar
Comprobamos que la base de datos esté operativa desde el nuevo Oracle Home, con RU 19.30.
$ srvctl status database -db democdb
Database is running.
$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Feb 10 21:46:57 2026
Version 19.30.0.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.30.0.0.0
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
------ --------- ---------- ----------
2 PDB$SEED READ ONLY NO
3 DEMO READ WRITE NO
3
Conclusiones
AutoUpgrade es la herramienta oficial de Oracle para ejecutar upgrades; personalmente, lo he usado en muchos proyectos y nunca me ha defraudado. Ahora, en su fase de utilitario para descargar parches y ejecutar instalaciones, va por el camino correcto y es bastante sólido.
Pero ojo: AutoUpgrade está limitado a Oracle Database Server; para Oracle Grid Infrastructure tendremos que seguir ejecutando comandos manualmente.
Para mí, que ya tengo automatizadas con Ansible las tareas de instalar y parchar el software Oracle Database Server y Oracle Grid Infrastructure, quizás no sea el momento de abandonar todo y reemplazarlo por AutoUpgrade, pero sí es mi herramienta favorita para el parchado y upgrade de las bases de datos.
Para quien no tiene aún todo automatizado, AutoUpgrade es, sin pensarlo dos veces, la herramienta ideal para hacerte la vida más fácil. Te recomiendo empezar a probarlo lo antes posible, ¡no te arrepentirás!
Para complementar lo aquí expuesto, te recomiendo la lectura de las notas:
Posts Recientes