Oracle DB: Установка патчей: различия между версиями
Admin (обсуждение | вклад) |
(нет различий)
|
Текущая версия на 12:19, 14 февраля 2023
Обзор
Ссылки по теме:
Листинг патчей
- Primary Note for Database Proactive Patch Program (Doc ID 888.1)
- Oracle Database 19c Proactive Patch Information (Doc ID 2521164.1)
Старая модель обновления
- Critical Patch Udate (CPU) - выпускается ежеквартально, содержит только исправления безопасности
- Patch Set Updates (PSU) - выпускается ежеквартально, содержит исправления безопасности и регрессивные исправления, например BUG фиксы
- Proactive Bundle Patches (BP) - выпускается ежеквартально, включает PSU, а также исправления оптимизации, функциональные исправления и иногда функциональные расширения
https://www.codetd.com/en/article/12739657 11.2.0.4 p31537677_112040_Linux-x86-64_DB (PSU 2020-10) Opatch_11.2.0.3.27
Схема обновления
Base Release Base Releas Base Release | | | BP1 PSU1 PSU1 | | | BP2 PSU2 BP2 ---+ | | | ... ... ...
В любой момент можно переключиться с BP на PSU или наоборот.
PSU и BP - являются комулятивными, т.е. включают все исправления предыдущих выпусков своего типа.
Новая модель обновления (начиная с 12.2.0.1), для платформы Windows сохраняется старая модель обновления с использованием BP
- Release Updates (RU) - выпускается ежеквартально, включает исправления всех типов, исправления безопасности, регрессивные исправления, исправления оптимизации, функциональные исправления и расширения
- Release Update Revisions (RUR) - выпускается ежеквартально, содержит все исправления базового RU, плюс все новые исправления двух типов: исправления безопасности и регрессивные исправления. От базового RU выходит не более двух RUR.
RU очень похож на BP и также является комулятивным.
RUR2(на базе RU1) будет содержать тот же набор исправлений безопасности и регрессивных исправлений, что и RU3.
Схема обновления
Base Releas | RU1 - (RU1)RUR1 - (RU1)RUR2 | RU2 - (RU2)RUR1 - (RU2)RUR2 | ...
Возможные последовательности обновлений
- RU1, RU2, RU3, ...
- RU1, RUR1(RU1), RU3, RUR1(RU3), ...
- RU1, RUR1(RU1), RUR2(RU1), RU4, RUR1(RU4), RUR2(RU4), RU7, ...
Таким образом, новая модель обновления не позволяет отложить функциональные исправления больше чем на полгода.
Установка патча
Каждый патч содержит файл README.html в котором даны подробные инструкции по установке данного патча.
Обычно процесс установки выглядит так:
Шаг 1, проверка версии opatch
opatch version
Если версия opatch ниже той что указана в требованиях патча (файл readme), то обновляем opatch.
Обновление OPatch это распаковка архива новой версии в каталог содержащий подкаталог OPatch, по умолчанию это $ORACLE_HOME.
unzip -o p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
Шаг 2, предварительные проверки
В переменной $PATH должен быть путь к утилитам make, ar, ld, nm, для Oracle Linux это /usr/bin
echo $PATH
Проверка на конфликты патчей
unzip <файл_архива_патча.zip> cd <каталог_номер_патча> opatch prereq CheckConflictAgainstOHWithDetail -ph ./ # ожидаемый результат Prereq "checkConflictAgainstOHWithDetail" passed. OPatch succeeded.
Если обнаружены конфликты, то необходимо откатить проблемные патчи до установки данного патча.
Шаг 3, установка патча
# остановите инстанцию, если она запущена # из каталога патча выполните opatch apply
Шаг 4, обновление базы
# запустите базу sqlplus / as sysdba startup -- убедитесь что база открыта select instance_name,status,logins from v$instance; -- если база контейнерная, то откройте все контейнеры alter pluggable database all open; -- убедитесь что все рабочие контейнеры открыты в режиме READ/WRITE show pdbs; quit # обновите базу cd $ORACLE_HOME/OPatch ./datapatch -verbose # последнем этапе выполняется автоматическая проверка логов # Validating logfiles...done # убедитесь, что напротив каждого лог-файла есть метка (no errors) # если есть ошибки, то смотрите соответствующий лог-файл. # перекомпилируйте инвалидные объекты cd $ORACLE_HOME/rdbms/admin $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -n 1 -e -b utlrp -d $ORACLE_HOME/rdbms/admin utlrp.sql
Шаг 5, обновление rman каталога
Если каталог (репозиторий) rman находится в специальной базе (не в локальных контрольных файлах), то необходимо обновить этот каталог.
rman catalog username/password@alias UPGRADE CATALOG; # выполнить повторно, необходимо для подтверждения UPGRADE CATALOG; EXIT;
Откат патча
- остановите все инстанции Oracle
- откатите патчи
cd $ORACLE_HOME/OPatch opatch rollback -id <patch_number>