Actualizar la capa SQL con datapatch -verbose tras un parche binario
OracleParches y ciclo de vidaComando
# 1) After the binary patch (opatch apply), start the DB; all PDBs must be open:
sqlplus / as sysdba <<EOF
STARTUP;
ALTER PLUGGABLE DATABASE ALL OPEN;
EXIT;
EOF
# 2) Check only first, then apply:
cd $ORACLE_HOME/OPatch
./datapatch -prereq
./datapatch -verbose
# For specific PDBs: ./datapatch -verbose -pdbs PDB1,PDB2
# 3) Recompile invalid objects:
sqlplus / as sysdba @?/rdbms/admin/utlrp.sql
# Logs: $ORACLE_BASE/cfgtoollogs/sqlpatch/Qué hace
datapatch aplica los componentes SQL/PL-SQL (diccionario, paquetes) de los parches binarios del Oracle Home a CDB root, PDB$SEED y todas las PDB abiertas, y registra el resultado en DBA_REGISTRY_SQLPATCH. También revierte la parte SQL de los parches desinstalados.
Cuándo usarlo
Tras cada parche binario RU/RUR/one-off o su rollback; para PDB movidas o desconectadas/conectadas en un home recién parcheado; y para volver a ejecutarlo cuando DBA_REGISTRY_SQLPATCH muestra WITH ERRORS.
Precaución
Las PDB cerradas o en MOUNTED no se parchean y pueden abrirse en modo RESTRICTED; ábralas todas primero. No lo ejecute con mucha carga (bloqueos del diccionario, invalidación de paquetes). En RAC ejecútelo una sola vez desde un único nodo. Con Data Guard ejecute datapatch solo en el primario; los cambios llegan al standby mediante redo (parchee primero los binarios del standby).