A continuación, veremos casos reales de errores en producción y cómo se solucionaron con ejemplos de logs:
✅ Caso 1: Error al hacer rollback de un parche con OPatch
✅ Caso 2: PDB no arranca después de un parche fallido
✅ Caso 3: Migración de una PDB fallida por incompatibilidad de versión
✅ Caso 4: Base de datos no arranca después de migrar la CDB
✅ Caso 5: Error ORA-01578 por corrupción en un bloque después de un patch
CASO 1: Error al hacer rollback de un parche con OPatch
Escenario:
Después de aplicar el parche 31771877, se observó un problema de rendimiento en las consultas. Se decidió hacer rollback, pero OPatch falló con el siguiente mensaje en el log:
Error en el log (
$ORACLE_HOME/cfgtoollogs/opatch/opatch2024-02-05_14-22-11.log):
ERROR: OPatch failed because the following files are still in use:
File in use: /u01/app/oracle/product/19c/dbhome_1/lib/libserver19.a
Solución:
Verificar qué procesos están usando archivos en $ORACLE_HOME
fuser -v /u01/app/oracle/product/19c/dbhome_1/lib/libserver19.a
Salida:
/u01/app/oracle/product/19c/dbhome_1/lib/libserver19.a: 2253o 2280o
Los PIDs 2253 y 2280 son procesos activos.
Matar los procesos activos
kill -9 2253 2280
Intentar de nuevo el rollback del parche
cd $ORACLE_HOME/OPatch
./opatch rollback -id 31771877
Reiniciar la base de datos y verificar la versión
SHUTDOWN IMMEDIATE;
STARTUP;
SELECT * FROM V$VERSION;
CASO 2: PDB no arranca después de un parche fallido
Escenario:
Después de aplicar un parche a la CDB, la PDB_TEST no pudo abrirse.
Error en el log (
alert_PDB_TEST.logen$ORACLE_BASE/diag/rdbms/cdb19c/CDB19C/trace/):
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
ORA-01113: file 5 needs media recovery
Solución:
Verificar qué archivos necesitan recuperación
SELECT FILE#, STATUS FROM V$RECOVER_FILE;
Salida:

Recuperar la PDB con RMAN
rman target /
RECOVER PLUGGABLE DATABASE PDB_TEST;
Abrir la PDB
ALTER PLUGGABLE DATABASE PDB_TEST OPEN;
CASO 3: Migración de una PDB fallida por incompatibilidad de versión
Escenario:
Se intentó migrar una PDB de Oracle 12.2 a Oracle 19c, pero falló con error de compatibilidad.
Error en el log (
alert.logde la CDB en$ORACLE_BASE/diag/rdbms/cdb19c/CDB19C/trace/):
ORA-65040: operation not allowed from within a pluggable database
ORA-00904: "DBA_FEATURE_USAGE": invalid identifier
Solución:
Verificar la versión de la PDB antes de migrarla
SELECT NAME, VERSION FROM CDB_PDBS;
Salida:

Abrir la PDB en modo UPGRADE antes de la migración
ALTER PLUGGABLE DATABASE PDB_TEST OPEN UPGRADE;
Ejecutar el script de actualización
sqlplus / as sysdba
@catupgrd.sql
Cerrar y reabrir la PDB en modo normal
ALTER PLUGGABLE DATABASE PDB_TEST CLOSE;
ALTER PLUGGABLE DATABASE PDB_TEST OPEN;
CASO 4: Base de datos no arranca después de migrar la CDB
Escenario:
Después de migrar la CDB de Oracle 12c a 19c, la base no arranca.
Error en el log (
alert.logde la CDB en$ORACLE_BASE/diag/rdbms/cdb19c/CDB19C/trace/):
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option
Solución:
Abrir la base en modo UPGRADE
STARTUP UPGRADE;
Ejecutar el script de actualización
sqlplus / as sysdba
@catupgrd.sql
Cerrar y reiniciar la base normalmente
SHUTDOWN IMMEDIATE;
STARTUP;
Verificar la versión final
SELECT * FROM V$VERSION;
CASO 5: Error ORA-01578 por corrupción en un bloque después de un patch
Escenario:
Después de aplicar un parche, algunas consultas fallaban con el error ORA-01578.
Error en el log (
alert.logde la CDB en$ORACLE_BASE/diag/rdbms/cdb19c/CDB19C/trace/):
ORA-01578: ORACLE data block corrupted (file # 12, block # 305)
Solución:
Identificar el segmento afectado
SELECT * FROM V$DATABASE_BLOCK_CORRUPTION;
Salida:

Intentar reparar el bloque con RMAN
rman target /
BLOCKRECOVER DATAFILE 12 BLOCK 305;
Si no se puede recuperar, restaurar desde backup
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
Verificar que la corrupción fue corregida
SELECT * FROM V$DATABASE_BLOCK_CORRUPTION;
Debe retornar 0 filas.






Deja un comentario