¿Qué haremos en esta práctica?

  • Actualizar una PDB individualmente (patching en una PDB específica)
  • Actualizar toda la CDB y aplicar los cambios a todas las PDBs
  • Revisar la versión antes y después de la actualización
  • Aplicar un parche con OPatch en la CDB
  • Actualizar estadísticas en la PDB después del patching

REQUISITOS PREVIOS

  • Oracle 19c instalado y configurado
  • CDB con al menos una PDB activa
  • Acceso como SYSDBA
  • Herramienta OPatch instalada en $ORACLE_HOME/OPatch/
  • Un parche descargado desde MOS (My Oracle Support)

PASO 1: Revisar la versión actual de la CDB y PDB

Antes de actualizar, revisemos las versiones actuales de CDB y PDB:

Ver versión de la CDB

Ejecuta en la CDB:

SELECT * FROM V$VERSION;

Ejemplo de salida:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Ver versión de una PDB específica

Conéctate a la PDB que deseas revisar:

ALTER SESSION SET CONTAINER = PDB_TEST;
SELECT * FROM V$VERSION;

PASO 2: Aplicar un parche en una PDB específica

Oracle permite aplicar parches a una PDB sin afectar a las demás. Para hacerlo:

Coloca la PDB en modo UPGRADE

ALTER PLUGGABLE DATABASE PDB_TEST CLOSE;
ALTER PLUGGABLE DATABASE PDB_TEST OPEN UPGRADE;

Ejecuta el script de actualización en la PDB
Desde el sistema operativo, ejecuta:

cd $ORACLE_HOME/rdbms/admin
sqlplus / as sysdba
-- Conéctate a la PDB
ALTER SESSION SET CONTAINER = PDB_TEST;
-- Ejecuta el script de actualización
@catupgrd.sql

Finaliza la actualización y reabre la PDB

ALTER PLUGGABLE DATABASE PDB_TEST CLOSE;
ALTER PLUGGABLE DATABASE PDB_TEST OPEN;

Verifica la versión actualizada de la PDB

SELECT * FROM V$VERSION;

PASO 3: Aplicar un parche a TODA la CDB

Si en lugar de actualizar solo una PDB quieres aplicar un parche globalmente, sigue estos pasos:

Verifica los parches actuales

$ORACLE_HOME/OPatch/opatch lsinventory

Aplica el nuevo parche en la CDB

Coloca la base en modo restricción:

ALTER DATABASE OPEN UPGRADE;

Aplica el parche con OPatch:

cd $ORACLE_HOME/OPatch
./opatch apply

Ejecuta el script de actualización en todas las PDBs

sqlplus / as sysdba
@catupgrd.sql

Reinicia la base de datos

SHUTDOWN IMMEDIATE;
STARTUP;

PASO 4: Sincronizar la versión en todas las PDBs

Después de actualizar la CDB, es posible que algunas PDBs aún tengan una versión anterior. Para sincronizarlas:

ALTER PLUGGABLE DATABASE ALL OPEN UPGRADE;
@catcon.pl -d /u01/app/oracle/product/19c/dbhome_1/rdbms/admin -b catupgrd.sql -c 'PDB1 PDB2 PDB3'

Esto aplicará los cambios a todas las PDBs.

Luego, reabre todas las PDBs en modo normal:

ALTER PLUGGABLE DATABASE ALL OPEN;

PASO 5: Actualizar estadísticas de la PDB después del parche

Después de cualquier actualización, es importante regenerar las estadísticas del optimizador:

BEGIN
DBMS_STATS.GATHER_DICTIONARY_STATS;
DBMS_STATS.GATHER_SYSTEM_STATS;
DBMS_STATS.GATHER_DATABASE_STATS;
END;
/

PASO 6: Verificar que todo funciona correctamente

Verifica que la base de datos y las PDBs están abiertas y operativas:

SELECT NAME, OPEN_MODE FROM V$PDBS;

Verifica la versión final de Oracle:

SELECT * FROM V$VERSION;

Verifica que el parche se aplicó correctamente:

$ORACLE_HOME/OPatch/opatch lsinventory

Deja un comentario

Tendencias