Atualizar a camada SQL com datapatch -verbose após um patch binário
OraclePatches e 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/O que faz
O datapatch aplica os componentes SQL/PL-SQL (dicionário, pacotes) dos patches binários do Oracle Home ao CDB root, ao PDB$SEED e a todos os PDBs abertos, e registra o resultado em DBA_REGISTRY_SQLPATCH. Também reverte a parte SQL de patches que sofreram rollback.
Quando usar
Após todo patch binário RU/RUR/one-off ou rollback; para PDBs movidos ou desconectados/conectados em um home recém-atualizado; e para executá-lo novamente quando DBA_REGISTRY_SQLPATCH mostrar WITH ERRORS.
Atenção
PDBs fechados ou MOUNTED não recebem o patch e podem abrir em modo RESTRICTED; abra todos antes. Não execute sob carga pesada (bloqueios no dicionário, invalidação de pacotes). No RAC execute uma única vez a partir de um só nó. Com Data Guard execute o datapatch apenas no primário; as mudanças chegam ao standby via redo (aplique antes o patch nos binários do standby).