DBAtlas · Атлас эксплуатации баз данных

Обновить SQL-уровень через datapatch -verbose после бинарного патча

OracleПатчинг и жизненный цикл

Команда

# 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/

Что делает

datapatch применяет SQL/PL-SQL-компоненты (словарь, пакеты) бинарных патчей из Oracle Home к CDB root, PDB$SEED и всем открытым PDB и записывает результат в DBA_REGISTRY_SQLPATCH. Он также откатывает SQL-часть отозванных патчей.

Когда использовать

После каждого бинарного RU/RUR/one-off-патча или его отката; для PDB, перенесённых или подключённых через unplug/plug в заново пропатченный home; и для повторного запуска, когда DBA_REGISTRY_SQLPATCH показывает WITH ERRORS.

Внимание

Закрытые PDB или PDB в состоянии MOUNTED не патчатся и могут открыться в режиме RESTRICTED; сначала откройте их все. Не запускайте при высокой нагрузке (блокировки словаря, инвалидация пакетов). В RAC запускайте один раз только с одного узла. В Data Guard запускайте datapatch только на primary; изменения доходят до standby через redo (сначала пропатчите бинарные файлы standby).

Открыть в DBAtlas →

Связанные материалы