Comment appliquer le correctif 19.20.0.0 dans la base de données Oracle

En esta entrada vamos a describir cómo aplicar un parche a nuestra base de datos. En este ejemplo, nuestra base de datos se encuentra en la versión 19.3.0.0 y vamos a aplicar el parche 19.20.0.0 (Patch 35320081: DATABASE RELEASE UPDATE 19.20.0.0.0), aunque el procedimiento suele ser similar recomiendo siempre leer el README de los parches para tener claro los pasos del mismo si se siguiera esta guía para aplicar un parche diferente. En nuestro caso parchearemos una base de datos en local, sin ASM y en modo «No Rolling», es decir con parada de la base de datos.

En primer lugar, cómo es lógico es conocer la versión de parcheo actual de nuestra base de datos, lo podemos hacer de varias maneras, una de ellas es la siguiente.
Con las variables de entorno de la base de datos a parchear cargadas, lanzamos el siguiente comando (opatch lspatches).

[oracle@localhost OPatch]$ ./opatch lspatches
29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)
29517242;Database Release Update : 19.3.0.0.190416 (29517242)
OPatch succeeded.

Dans notre cas, la base de données se trouve dans la version 19.3.0.0.
Nous téléchargeons le patch 19.20.0.0 depuis le site officiel d'Oracle, dans notre cas pour Linux x86-64.

Antes de poder aplicar el parche, y cómo indica el README de los prerrequisitos del parche, es necesario disponer de la versión de Opatch 12.2.0.1.37 o superior. Yo siempre aconsejo bajar la última versión de OPatch disponible.

1) Bajamos el OPatch de la siguiente dirección de Oracle.
https://updates.oracle.com/download/6880880.html

Actualmente la versión disponible es la versión 12.2.0.1.40

Para aplicar esta versión, dirígete al ORACLE_HOME de tu base de datos, renombra el directorio actual «OPatch» y descomprime el parche recién bajado.

[oracle@localhost sw]$ cd $ORACLE_HOME
[oracle@localhost sw]$ mv OPatch/ OPatch_old
[oracle@localhost sw]$ unzip p6880880_190000_Linux-x86-64.zip
Archive: p6880880_190000_Linux-x86-64.zip
creating: OPatch/
creating: OPatch/docs/
inflating: OPatch/docs/cversion.txt
inflating: OPatch/docs/Users_Guide.txt
inflating: OPatch/docs/Prereq_Users_Guide.txt
inflating: OPatch/docs/FAQ
.
.
.
.

Comprobamos que la versión del OPatch es la correcta.

[oracle@localhost OPatch]$ ./opatch version
OPatch Version: 12.2.0.1.40
OPatch succeeded.

2) Décompressez le patch
cd /tmp/patch1920/35320081
unizp p35320081_190000_Linux-x86-64.zip

ls -lrt /tmp/parche1920/35320081
drwxr-xr-x. 5 oracle oracle 4096 15 juil. 21:54 35320081
-rw-rw-r–. 1 oracle oracle 1749054 18 juil. 15:03 PatchSearch.xml
-rw-rw-r–. 1 oracle oracle 1769419773 15 nov. 17:54 p35320081_190000_Linux-x86-64.zip

3) Exécutez le Precheck pour vérifier qu'il n'y a pas de divergences.
Dans le répertoire créé par la décompression (/tmp/parche1920/35320081/35320081), exécutez la commande suivante :

opatch prereq CheckConflictAgainstOHWithDetail -ph ./

opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Installer de Parche Temporal de Oracle versión 12.2.0.1.40
Copyright (c) 2023, Oracle Corporation. Todos los Derechos Reservados.
PREREQ session
Directorio raíz de Oracle : /u01/sw
Inventario central: /u01/oraInventory
de : /u01/sw/oraInst.loc
Versión de OPatch : 12.2.0.1.40
Versión de OUI : 12.2.0.7.0
Ubicación del archivo log : /u01/sw/cfgtoollogs/opatch/opatch2023-11-15_18-17-30PM_1.log
Invoking prereq «checkconflictagainstohwithdetail»
Prereq «checkConflictAgainstOHWithDetail» passed.
OPatch succeeded.

Dans les environnements RAC, le correctif sera installé en mode rolling (sans interruption). Si nous ne sommes pas dans des environnements RAC, comme dans notre exemple, il est nécessaire d'arrêter toutes les bases de données appartenant à ORACLE_HOME à corriger, ainsi que les écouteurs associés à ces bases de données avant de pouvoir appliquer le correctif.

[oracle@localhost 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. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.3.0.0.0
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

[oracle@localhost 35320081]$ lsnrctl stop
LSNRCTL pour Linux : Version 19.0.0.0.0 – Production le 15 NOV-2023 23:40:10
Copyright (c) 1991, 2019, Oracle. Tous droits réservés.
Connexion à (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
La commande s'est exécutée avec succès.

En este momento es posible aplicar el parcheo.
La forma más sencilla es ir al directorio donde está localizado el parche que hemos descomprimido y ejecutar la utilidad OPatch de la siguiente manera:

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

Nous montrons ici la sortie :

[oracle@localhost 35320081]$ opatch apply
Installer de Parche Temporal de Oracle versión 12.2.0.1.40
Copyright (c) 2023, Oracle Corporation. Todos los Derechos Reservados.
Directorio raíz de Oracle : /u01/sw
Inventario central: /u01/oraInventory
de : /u01/sw/oraInst.loc
Versión de OPatch : 12.2.0.1.40
Versión de OUI : 12.2.0.7.0
Ubicación del archivo log : /u01/sw/cfgtoollogs/opatch/opatch2023-11-15_23-48-57PM_1.log
Verifying environment and performing prerequisite checks…
OPatch continues with these patches: 35320081
¿Desea continuar? [y|n]
y
User Responded with: Y
All checks passed.
Cierre las instancias Oracle que se estén ejecutando fuera de este ORACLE_HOME en el sistema local.
(Directorio Raíz de Oracle = ‘/u01/sw’)
¿Está el sistema local listo para aplicarle un parche? [y|n]
y
User Responded with: Y
Backing up files…

Aplicando parche a componente oracle.xdk.rsf, 19.0.0.0.0…
Aplicando parche a componente oracle.ldap.client, 19.0.0.0.0…
Aplicando parche a componente oracle.mgw.common, 19.0.0.0.0…
Aplicando parche a componente oracle.odbc, 19.0.0.0.0…
.
.
Patch 35320081 successfully applied.

À ce stade, nous pouvons ouvrir la base de données ORACLE_HOME patchée.

[oracle@localhost 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. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.20.0.0.0
SQL> startup
Database started.

4) Étapes postérieures à l'installation.

Une fois le correctif appliqué, vous devez effectuer l'action suivante (ceci n'est pas nécessaire pour Oracle Database client).

% cd $ORACLE_HOME/OPatch
% ./datapatch -verbose

Nous élevons l'auditeur.

[oracle@localhost 35320081]$ lsnrctl start

Nous vérifions que le correctif de la base de données a été correctement appliqué.

[oracle@localhost 35320081]$ opatch lspatches
35320081;Database Release Update : 19.20.0.0.230718 (35320081)

Oracle ACE Associate