16 апреля 2026 года

В этой статье опишем, как применить патч к нашей базе данных. В этом примере наша база данных находится в версии 19.3.0.0, и мы собираемся применить патч 19.20.0.0 (Patch 35320081: DATABASE RELEASE UPDATE 19.20.0.0.0), хотя процедура обычно аналогична, я всегда рекомендую читать README патчей, чтобы четко понимать шаги, если вы следуете этому руководству для применения другого патча. В нашем случае мы будем патчить локальную базу данных без ASM в режиме «No Rolling», то есть с остановкой базы данных.

Прежде всего, как логично узнать текущую версию патча нашей базы данных, мы можем сделать это несколькими способами, один из которых следующий.


После загрузки переменных среды базы данных, на которую будет установлен патч, мы запускаем следующую команду (opatch lspatches).

[oracle OPatch]$ .opatch lspatches
29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)
29517242;Обновление версии базы данных:19.3.0.0.190416 (29517242)
OPatch .

В нашем случае база данных находится в версии 19.3.0.0.
Мы загружаем патч 19.20.0.0 с официального сайта Oracle, в нашем случае для Linux .



Прежде чем применять патч, как указано в файле README с перечнем предварительных требований, необходимо установить версию Opatch .2.0.1.37 или выше. Я всегда рекомендую загрузить последнюю OPatch версию OPatch

1) Загрузите OPatch следующему адресу Oracle.

oracle

В настоящее время доступна версия 12.2.0.1.40

Чтобы установить эту версию, перейдите в ORACLE вашей базы данных, переименуйте текущий каталогOPatchи распакуйте только что загруженный патч.

[oracle sw]$ cdORACLE
[oracle sw]$ mv OPatch OPatch
[oracle sw]$ unzip p6880880_190000_Linux-x86-64.zip
Архив: p6880880_190000_Linux-x86-64.zip
creating: OPatch
creating: OPatch
inflating: OPatch.txt
inflating: OPatch.txt
inflating: OPatch.txt
inflating: OPatch
.
.

Мы проверяем, что версия OPatch .

[oracle OPatch]$ .opatch
OPatch : 12.2.0.1.40
OPatch .

2) Разархивировать патч

cd /tmp/patch1920/35320081
unizp p35320081_190000_Linux-x86-64.zip

ls -lrt /tmp/parche1920/35320081
drwxr-xr-x. 5 oracle oracle 15 июля 21:54 35320081
-rw-rw-r–. 1 oracle oracle 18 июля 15:03 PatchSearch.xml
-rw-rw-r–. 1 oracle oracle 15 ноября 17:54 p35320081_190000_Linux-x86-64.zip

3) Запустите Precheck, чтобы убедиться в отсутствии несоответствий.
В каталоге, созданном при разархивировании (/tmp/parche1920/35320081/35320081), выполните следующую команду:

opatch CheckConflictAgainstOHWithDetail -ph ./

opatch CheckConflictAgainstOHWithDetail -ph ./
Установщик временного патча Oracle 12.2.0.1.40
Copyright (c) 2023, Oracle . Все права защищены.
PREREQ session
Корневой каталог Oracle /u01/sw
Центральный инвентарь: /u01/oraInventory
из: /u01/sw/oraInst.loc
Версия OPatch 12.2.0.1.40
Версия OUI: 12.2.0.7.0
Расположение файла журнала :opatch.log
Вызов предварительного условия «checkconflictagainstohwithdetail»
Предварительное условие «checkConflictAgainstOHWithDetail» выполнено.
OPatch .

В средах RAC патч будет установлен в режиме rolling (без простоев). Если мы не находимся в средах RAC, как в нашем примере, необходимо выполнить выключение всех баз данных, принадлежащих ORACLE, которые необходимо исправить, а также слушателей, связанных с этими базами данных, прежде чем можно будет применить патч.

[oracle 35320081]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 – Production on Wed Nov 15 23:39:23 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. Все права защищены.
Подключено к:
Oracle 19c Enterprise Edition Release 19.0.0.0.0 – Production
Версия 19.3.0.0.0
SQL> shutdown immediate;
База данных закрыта.
База данных отключена.
ORACLE закрыт.

[oracle 35320081]$ lsnrctl stop
LSNRCTL для Linux: Версия 19.0.0.0.0 – Производство 15-NOV-2023 23:40:10
Copyright (c) 1991, 2019, Oracle. Все права защищены.
Подключение к (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
Команда выполнена успешно.

Теперь можно применить патч.
Самый простой способ — перейти в каталог, в котором находится распакованный патч, и запустить утилиту OPatch :

unzip -d <PATCH_TOP_DIR> p35320081_<version>_<platform>.zip
cd <PATCH_TOP_DIR> 35320081
opatch apply

Здесь мы показываем выход:

[oracle 35320081]$opatch
Программа установки временного патча Oracle 12.2.0.1.40
Copyright (c) 2023, Oracle . Все права защищены.
Корневой каталог Oracle /u01/sw
Центральный инвентарь: /u01/oraInventory
: /u01/sw/oraInst.loc
Версия OPatch 12.2.0.1.40
Версия OUI: 12.2.0.7.0
Расположение файла журнала:opatch.log
Проверка среды и выполнение проверок предварительных условий…
OPatch установку следующих патчей: 35320081
Хотите продолжить? [y|n]
y
Пользователь ответил: Y
Все проверки пройдено.
Закройте все запущенные экземпляры Oracle работают вне этого ORACLE в локальной системе.
(Корневой каталог Oracle ‘/u01/sw’)
Готова ли локальная система к установке патча? [y|n]
y
Пользователь ответил: Y
Резервное копирование файлов…

Применение патча к компоненту oracle.xdk.rsf, 19.0.0.0.0…
Применение патча к компоненту oracle.ldap.client, 19.0.0.0.0…
Применение патча к компоненту oracle.mgw.common, 19.0.0.0.0…
Применение патча к компоненту oracle.odbc, 19.0.0.0.0…
.
.
Патч 35320081 успешно применен.

Применение патча к компоненту oracle.xdk.rsf, 19.0.0.0.0…
Применение патча к компоненту oracle.ldap.client, 19.0.0.0.0…
Применение патча к компоненту oracle.mgw.common, 19.0.0.0.0…
Применение патча к компоненту oracle.odbc, 19.0.0.0.0…
.
.
Патч 35320081 успешно применен.

На этом этапе мы можем открыть исправленную базу данных ORACLE.

[oracle 35320081]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 – Production on Wed Nov 15 23:39:23 2023
Version 19.20.0.0.0
Copyright (c) 1982, 2019, Oracle. Все права защищены.
Подключено к:
Oracle 19c Enterprise Edition Release 19.0.0.0.0 – Production
Версия 19.20.0.0.0
SQL> startup
База данных запущена.

4) Послеустановочные действия.

После установки патча необходимо выполнить следующее действие (не требуется для Oracle client).

% cdOPatch
%./datapatch -verbose

Мы поднимаем слушателя.

[oracle 35320081]$ lsnrctl start

Мы убедились, что патч базы данных был успешно установлен, проверив это с помощью команды opath lspatches.

[oracle 35320081]$ opatch lspatches
35320081;Обновление версии базы данных: 19.20.0.0.230718 (35320081)

YouTube
LinkedIn