I. Procédure▲
I-A. Oracle Installer▲
Oracle Installer, l'outil qui - comme son nom l'indique - permet d'installer Oracle, permet aussi - en théorie - de le désinstaller. Son action est cependant très limitée, car il ne nettoie pas complètement la base de registre.
Commençons cependant par l'utiliser tel qu'il devrait être.
Vous avez la possibilité de visionner la procédure :
- via une présentation Flash ;
- via un exécutable téléchargeable.
Démarrons-le via la barre de menu Windows :
La fenêtre Dos permettant l'exécution Java de l'Installer s'ouvre comme lors de l'installation. À l'apparition de la fenêtre d'accueil, choisissions le bouton désinstaller
Cliquons maintenant sur tous les produits disponibles afin que la désinstallation soit la plus propre. Notons que si nous avions installé au préalable d'anciennes versions d'Oracle, on peut les faire apparaître - et donc les désinstaller - via la case à cocher Show empty homes.
L'écran suivant nous affiche tous les produits qui vont être désinstallés. Confirmons.
La désinstallation débute… et va prendre cinq à dix minutes (selon votre PC et les modules à désinstaller).
Il n'est pas rare, selon les distributions, qu'un message d'erreur apparaisse. Si tel est le cas, validons via OK et continuons.
Encore un détail qui a son importance : Oracle stocke tous les chemins et noms ayant été une fois utilisés dans ses installations de manière à ne plus pouvoir les réaffecter à d'autres emplacements. Il nous faut donc supprimer manuellement l'entrée créée sous Windows sous c:\Program files\oracle (et son fameux sous-répertoire Inventory, source de notre problème).
Lorsque la désinstallation est terminée, l'écran suivant apparaît.
Quittons alors l'Installer via un Close et un Cancel/Ok.
I-B. Nettoyage sous Unix▲
- Suppression du répertoire $ORACLE_BASE.
- Suppression du répertoire $TNS_NAME.
- Suppression des variables d'environnement $ORACLE_BASE, $ORACLE_HOME, $ORACLE_OWNER,$ORACLE_TERM, $TNS_ADMIN, via nettoyage du .profile ou .login (selon le shell utilisé).
- Nettoyage des références Oracle dans les variables d'environnement $LD_LIBRARY_PATH, $PATH, via nettoyage du .profile ou .login (selon le shell utilisé).
I-C. Nettoyage sous Windows▲
Via Regedit, et avec les droits nécessaires, il va nous falloir supprimer toute référence à Oracle, ou en tout cas, à ses services.
Pour rappel, Oracle avait installé :
Catégorie | Clef | Valeur |
Variable d'environnement | PATH | C:\oracle\10g\perl\lib\5.6.1; C:\oracle\10g\perl\5.6.1\lib\MSWin32-x86; C:\oracle\10g\perl\site\5.6.1; C:\oracle\10g\perl\site\5.6.1\lib; C:\oracle\10g\sysman\admin\scripts |
PERL5LIB | C:\oracle\10g\perl\lib\5.6.1\MSWin32-x86; C:\oracle\10g\perl\lib\5.6.1; C:\oracle\10g\perl\5.6.1\lib\MSWin32-x86; C:\oracle\10g\perl\site\5.6.1; C:\oracle\10g\perl\site\5.6.1\lib; C:\oracle\10g\sysman\admin\scripts |
|
Services | ||
Répertoires | c :\oracle\10g c:\oracle\admin c:\oracle\flash_recovery_area c:\oracle\oradata |
Malgré notre désinstallation, il nous reste des services encore actifs :
Nous allons donc détruire avant tout les entrées suivantes de la base de registre :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraDb10g_home1TNSListener
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleServiceORA10DB
… puis les clefs
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\TNS_ADMIN
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu\Programs\Oracle Installation Products
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU\ORA
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu\Programs\Oracle -
ORA10
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu\Programs\Oracle -
OraDb10g_home1
HKEY_CLASSES_ROOT\Installer\Assemblies\Global
\System.Data.OracleClient,Version
Le reste du nettoyage dépend de vos compétences concernant la base de registre. Il va sans dire que la suppression d'une clef importante risque de déstabiliser votre système d'exploitation. Faites cependant attention de ne pas laisser des clefs pointant sur un répertoire qui n'existerait plus (par exemple un HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment pointant sur un répertoire Oracle inexistant).
En usant de la même prudence, vous pouvez supprimer toutes les clefs contenant du Oracle des sous-répertoires de
HKEY_CLASSES_ROOT\AppID\
HKEY_CLASSES_ROOT\CLSID\
HKEY_CLASSES_ROOT\ORA...
HKEY_CLASSES_ROOT\Typelib\...
Pour ce faire, utilisez à bon escient la recherche (via F3) de Regedit.
Il ne nous reste plus alors qu'à supprimer le répertoire Oracle et redémarrer notre machine afin de nous affranchir de toutes les anciennes valeurs de la base de registre.