SQL-Schicht nach einem Binärpatch mit datapatch -verbose aktualisieren
OraclePatching & LifecycleBefehl
# 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/Was es tut
datapatch spielt die SQL-/PL-SQL-Komponenten (Dictionary, Packages) der Binärpatches im Oracle Home in CDB-Root, PDB$SEED und alle geöffneten PDBs ein und hält das Ergebnis in DBA_REGISTRY_SQLPATCH fest. Es macht auch den SQL-Teil zurückgerollter Patches rückgängig.
Wann einsetzen
Nach jedem RU-/RUR-/One-off-Binärpatch oder Rollback; für PDBs, die in ein neu gepatchtes Home verschoben oder dort ein-/ausgesteckt wurden; und erneut, wenn DBA_REGISTRY_SQLPATCH WITH ERRORS zeigt.
Vorsicht
Geschlossene oder MOUNTED PDBs werden nicht gepatcht und öffnen eventuell im RESTRICTED-Modus; öffne zuerst alle. Nicht unter hoher Last ausführen (Dictionary-Sperren, Invalidierung von Packages). In RAC nur einmal von einem einzigen Knoten ausführen. Bei Data Guard datapatch nur auf der Primary ausführen; die Änderungen gelangen per Redo zum Standby (zuerst die Standby-Binaries patchen).