Dans cet article, nous allons décrire comment appliquer un correctif à notre base de données. Dans cet exemple, notre base de données est en version 19.3.0.0.0 et nous allons appliquer le patch 19.20.0.0(Patch 35320081 : DATABASE RELEASE UPDATE 19.20.0.0.0.0), bien que la procédure soit généralement similaire, je recommande toujours de lire le README des patchs pour être clair sur les étapes si vous suivez ce guide pour appliquer un patch différent. Dans notre cas, nous allons patcher une base de données locale, sans ASM et en mode "No Rolling", c'est-à-dire avec arrêt de la base de données.
Tout d'abord, comment est-il logique de connaître la version actuelle du correctif de notre base de données, nous pouvons le faire de plusieurs façons, l'une d'entre elles étant la suivante.
Les variables d'environnement de la base de données à patcher étant chargées, nous lançons la commande suivante (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 a réussi.
Dans notre cas, la base de données est sur la version 19.3.0.0.0.
Nous téléchargeons le patch 19.20.0.0.0 sur le site officiel d'Oracle, dans notre cas pour Linux x86-64.

Avant de pouvoir appliquer le patch, et comme l'indique le README des prérequis du patch, il est nécessaire d'avoir Opatch version 12.2.0.1.37 ou supérieure. Je conseille toujours de télécharger la dernière version d'OPatch disponible.
1) Téléchargez l'OPatch à partir de l'adresse Oracle suivante.
https://updates.oracle.com/download/6880880.html

La version actuellement disponible est la version 12.2.0.1.40.
Pour appliquer cette version, allez dans le ORACLE_HOME de votre base de données, renommez le répertoire actuel "OPatch" et décompressez le patch nouvellement téléchargé.
[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
création : OPatch/
création : OPatch/docs/
ajout : OPatch/docs/cversion.txt
ajout : OPatch/docs/Users_Guide.txt
ajout : OPatch/docs/Prereq_Users_Guide.txt
ajout : OPatch/docs/FAQ
.
.
Nous vérifions que la version d'OPatch est correcte.
[oracle@localhost OPatch]$ ./opatch version
Version OPatch : 12.2.0.1.40
OPatch a réussi.
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 Jul 15 21:54 35320081
-rw-rw-rw-r-. 1 oracle oracle 1749054 Jul 18 15:03 PatchSearch.xml
-rw-rw-rw-r-. 1 oracle oracle 1769419773 Nov 15 17:54 p35320081_190000_Linux-x86-64.zip
3) Exécutez le Precheck pour vérifier qu'il n'y a pas d'anomalie.
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 ./
Oracle Temporary Patch Installer version 12.2.0.1.40
Copyright (c) 2023, Oracle Corporation. Tous droits réservés.
PREREQ session
Oracle Root Directory : /u01/sw
Central Inventory : /u01/oraInventory
de : /u01/sw/oraInst.loc
OPatch Version : 12.2.0.1.40
OUI Version : 12.2.0.7.0
Emplacement du fichier journal : /u01/sw/cfgtoollogs/opatch/opatch2023-11-15_18-17-30PM_1.log
Invoking prereq "checkconflicttagainstohwithdetail"
Prereq "checkConflictAgainstOHWithDetail" passed.
OPatch succeeded.
Dans les environnements RAC, le patch sera installé en mode rolling (pas de downtime). Si nous ne sommes pas en environnement RAC, comme dans notre exemple, il est nécessaire d'arrêter toutes les bases de données appartenant à l'ORACLE_HOME à patcher, ainsi que le listener associé à ces bases de données avant de pouvoir appliquer le patch.
[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.0
Copyright (c) 1982, 2019, Oracle. Tous droits réservés.
Connecté à :
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0.0
SQL> shutdown immediate ;
Base de données fermée.
Base de données démontée.
ORACLE instance shut down.
[oracle@localhost 35320081]$ lsnrctl stop
LSNRCTL pour Linux : Version 19.0.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 a été exécutée avec succès.
À ce stade, il est possible d'appliquer le correctif.
La méthode la plus simple consiste à se rendre dans le répertoire où se trouve le correctif décompressé et à exécuter l'utilitaire OPatch comme suit :
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
Oracle Temporary Patch Installer Release 12.2.0.1.40
Copyright (c) 2023, Oracle Corporation. Tous droits réservés.
Oracle Root Directory : /u01/sw
Central Inventory : /u01/oraInventory
from : /u01/sw/oraInst.loc
OPatch Version : 12.2.0.1.40
OUI Version : 12.2.0.7.0
Emplacement du fichier journal : /u01/sw/cfgtoollogs/opatch/opatch2023-11-15_23-48-57PM_1.log
Vérification de l'environnement et contrôle des prérequis...
OPatch continue avec ces correctifs : 35320081
Voulez-vous continuer ? [y|n]
y
User Responded with : Y
All checks passed.
Shut down any Oracle instances running outside this ORACLE_HOME on the local system.
(Oracle Root Directory = '/u01/sw')
Is the local system ready to be patched ? [y|n]
et
L'utilisateur a répondu par : Y
Sauvegarde des fichiers...
Application du correctif au composant oracle.xdk.rsf, 19.0.0.0.0.0...
Application du correctif au composant oracle.ldap.client, 19.0.0.0.0.0...
Application du correctif au composant oracle.mgw.common, 19.0.0.0.0...
Application du correctif au composant oracle.odbc, 19.0.0.0.0...
.
.
Le correctif 35320081 a été appliqué avec succès.
Application d'un correctif au composant oracle.xdk.rsf, 19.0.0.0.0...
Application d'un correctif au composant oracle.ldap.client, 19.0.0.0.0.0...
Application d'un correctif au composant oracle.mgw.common, 19.0.0.0.0.0...
Application du correctif au composant oracle.odbc, 19.0.0.0.0.0...
.
.
Le correctif 35320081 a été appliqué avec succès.
À ce stade, nous pouvons ouvrir la base de données ORACLE_HOME corrigé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. Tous droits réservés.
Connecté à :
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.0.0.0
SQL> startup
Base de données démarrée.
4) Étapes postérieures à l'installation.
Une fois le correctif appliqué, l'action suivante doit être effectuée (non requise pour le client Oracle Database).
% 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é à l'aide de la commande opath lspatches.
[oracle@localhost 35320081]$ opatch lspatches
35320081;Mise à jour de la version de la base de données : 19.20.0.0.230718 (35320081)




