Hello, après l’installation d’Oracle Linux Server sous VirtualBox, mon projet Oracle continue et nous allons voir dans cet article l’installation et la configuration d’Oracle Database 19c sous OEL7.
Ce qu’il vous faut :
- Oracle Linux Server 7 (Oracle sera installé dessus) : oracle-linux-server-7-sous-virtualbox/
- Oracle Database pour Linux (il vous faut un compte, c’est gratuit) : /edelivery.oracle.com/osdc/faces/Home.jspx
Remarque : Oracle Linux est basé sur Red Hat. Cette distribution est fortement recommandée pour l’installation de la base de données Oracle, car, il y a un package qui permet d’installer tous les prérequis sans prise de tête. Mais, vous pouvez tenter de réaliser ce projet sur une distribution de la famille Red Hat (CentOS, Fedora…).
Installation des prérequis
Je pars sur le fait que vous avez installé Oracle Linux 7 comme sur mon tuto (voir lien ci-dessus). J’utilise la même machine virtuelle sans rien installer de plus à part la mise à jour du système :
[root@sysadmin ~]# yum update -y
Voici ma configuration réseau :
[root@sysadmin ~]# ifconfig enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.22 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::a00:27ff:fe14:1783 prefixlen 64 scopeid 0x20<link> inet6 2001:861:4001:bbf0:a00:27ff:fe14:1783 prefixlen 64 scopeid 0x0<global> ether 08:00:27:14:17:83 txqueuelen 1000 (Ethernet) RX packets 127256 bytes 103422611 (98.6 MiB) RX errors 0 dropped 2492 overruns 0 frame 0 TX packets 32981 bytes 2206634 (2.1 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Boucle locale) RX packets 64 bytes 5152 (5.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 64 bytes 5152 (5.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [...] [root@sysadmin ~]#
Fichier hostname : (très important)
[root@sysadmin ~]# tac /etc/hostname sysadmin.pixelabs.lan [root@sysadmin ~]#
Fichier hosts : (très important)
[root@sysadmin ~]# tac /etc/hosts 192.168.1.22 sysadmin.pixelabs.lan sysadmin ::1 sysadmin.pixelabs.lan sysadmin localhost localhost.localdomain localhost6 localhost6.localdomain6 127.0.0.1 sysadmin.pixelabs.lan sysadmin localhost localhost.localdomain localhost4 localhost4.localdomain4 [root@sysadmin ~]#
Installer le package de pré-installation Oracle :
[root@sysadmin ~]# yum search oracle-database-preinstall [...] ========================= N/S matched: oracle-database-preinstall =============================== oracle-database-preinstall-18c.x86_64 : Sets the system for Oracle Database single instance and Real Application Cluster install for Oracle Linux 7 oracle-database-preinstall-19c.x86_64 : Sets the system for Oracle Database single instance and Real Application Cluster install for Oracle Linux 7 [root@sysadmin ~]#
Ici, j’installe la version oracle-database-preinstall-19c :
[root@sysadmin ~]# yum install oracle-database-preinstall-19c Modules complémentaires chargés : langpacks, ulninfo Résolution des dépendances --> Lancement de la transaction de test ---> Le paquet oracle-database-preinstall-19c.x86_64 0:1.0-1.el7 sera installé --> Traitement de la dépendance : ksh pour le paquet : oracle-database-preinstall-19c-1.0-1.el7.x86_64 --> Traitement de la dépendance : libaio-devel pour le paquet : oracle-database-preinstall-19c-1.0-1.el7.x86_64 --> Lancement de la transaction de test ---> Le paquet ksh.x86_64 0:20120801-139.0.1.el7 sera installé ---> Le paquet libaio-devel.x86_64 0:0.3.109-13.el7 sera installé --> Résolution des dépendances terminée Dépendances résolues ========================================================================================================= Package Architecture Version Dépôt Taille ========================================================================================================= Installation : oracle-database-preinstall-19c x86_64 1.0-1.el7 ol7_latest 18 k Installation pour dépendances : ksh x86_64 20120801-139.0.1.el7 ol7_latest 883 k libaio-devel x86_64 0.3.109-13.el7 ol7_latest 12 k Résumé de la transaction ========================================================================================================== Installation 1 Paquet (+2 Paquets en dépendance) Taille totale des téléchargements : 913 k Taille d'installation : 3.2 M Is this ok [y/d/N]: y
Et la partie la plus importante. Il faut définir l’emplacement pour l’installation Oracle :
[root@sysadmin ~]# mkdir -p /u01/app/oraInventory [root@sysadmin ~]# [root@sysadmin ~]# mkdir -p /u01/app/oracle/product/19.2.0/dbhome_1 [root@sysadmin ~]#
Changer le propriétaire : user : oracle / group : oinstall
[root@sysadmin ~]# chown -R oracle: /u01/app/oracle [root@sysadmin ~]# [root@sysadmin ~]# chown -R oracle: /u01/app/oraInventory [root@sysadmin ~]# [root@sysadmin ~]# ll /u01/app/ total 0 drwxr-xr-x. 3 oracle oinstall 21 15 juin 16:29 oracle drwxr-xr-x. 2 oracle oinstall 6 15 juin 16:29 oraInventory [root@sysadmin ~]#
On y est presque.
Transférer l’archive zip (V982063-01.zip) que vous avez téléchargé (voir le lien plus haut) dans /tmp (via FTP ou dossier partagé…etc). Je recommande (encore une fois) le client SSH MobaXterm.
Une fois le transfère terminé, dé-zipper l’archive dans le répertoire Oracle : /u01/app/oracle/product/19.2.0/dbhome_1/
[root@sysadmin]# cd /tmp [root@sysadmin tmp]# chmod 775 V982063-01.zip
Passez sous l’utilisateur ORACLE et dé-zipper l’archive :
[root@sysadmin ~]# su - oracle [oracle@sysadmin ~]$
Dé-zipper :
[oracle@sysadmin ~]# cd /tmp [oracle@sysadmin tmp]# [oracle@sysadmin tmp]# unzip -q V982063-01.zip -d /u01/app/oracle/product/19.2.0/dbhome_1/
Et pour finir, il faut définir la variable d’environnement ORACLE_HOME :
[oracle@sysadmin ~]# export ORACLE_HOME=/u01/app/oracle/product/19.2.0/dbhome_1 [oracle@sysadmin ~]#
L’installation peut commencer. Let’s Go !
Installation Oracle Database
Lancez l’installation directement à la suite depuis le Shell :
[oracle@sysadmin ~]# cd /u01/app/oracle/product/19.2.0/dbhome_1 [oracle@sysadmin dbhome_1]# ./runInstaller ERROR: Unable to verify the graphical display setup. This application requires X display. Make sure that xdpyinfo exist under PATH variable. No X11 DISPLAY variable was set, but this program performed an operation which requires it. [oracle@sysadmin dbhome_1]#
Solution :
Passer sous l’utilisateur ROOT et ajouter un mot de passe pour l’utilisateur Oracle :
[oracle@sysadmin ~]# su - root [...] [root@sysadmin ~]# passwd oracle Changement de mot de passe pour l'utilisateur oracle. Nouveau mot de passe : Retapez le nouveau mot de passe : passwd : mise à jour réussie de tous les jetons d'authentification. [root@sysadmin ~]#
Installer les packages suivants :
yum install perl-DBI libdbi-perl automake gbd libtool xdpyinfo libXext.i686 libXrender.i686 libXtst.i686 libX11-common.noarch libX11-devel.i686 libgcc.i686 xorg-x11-xauth xorg-x11-fonts-* xorg-x11-font-utils xorg-x11-fonts-Type1 xclock compat-libcap1 sysstat ksh libaio-devel compat-libstdc++-33
Redémarrer la machine virtuelle et connectez-vous directement avec l’utilisateur ORACLE :
Une fois connecté, lancer les deux commandes ci-dessous :
[oracle@sysadmin ~]# DISPLAY=192.168.1.22:0.0 [oracle@sysadmin ~]# export $DISPLAY
Remarque : 192.168.1.22 est l’adresse IP de mon serveur Oracle Linux.
Relancer l’installation :
[oracle@sysadmin ~]# cd /u01/app/oracle/product/19.2.0/dbhome_1 [oracle@sysadmin dbhome_1]# ./runInstaller
Le programme d’installation se lance après quelques secondes :
- Laissez l’option par défaut et cliquer sur Suivant >
- Cochez l’option Classe serveur
- Cliquer sur Suivant >
- Laisser l’option par défaut : Enterprise Edition
- Cliquer sur Suivant >
- Laisser par défaut et cliquer sur Suivant >
- Laisser également par défaut et cliquer sur Suivant >
- Laisser par défaut et cliquer sur Suivant >
- Modifier le nom de la base de données par défaut à votre guise ou laisser par défaut.
- Cliquer sur Suivant >
- Laisser les options de configuration par défaut et cliquer sur Suivant >
Remarque : si vous n’avez pas beaucoup de RAM baisser la taille allouée.
- Etape 09/18 : Laisser l’emplacement des datafiles par défaut : /u01/app/oracle/oradata
- Cliquer sur Suivant >
- Etape 10/18 : laisser par défaut
- Etape 11/18 : laisser par défaut
- Etape 12/18 : cocher l’option : Utiliser le même mot de passe pour tous les comptes
- SYS
- SYSTEM
- PDBADMIN
- Cliquer sur Suivant >
- Etape 13/18 : Laisser les groupes par défaut :
- Cliquer sur Suivant >
- Etape 14/18 : Laisser par défaut
- Etape 15/18 : attendez la fin des vérifications des pré-requis
- Cliquer sur Installer
- Pendant l’installation, ouvrir un nouveau Terminal
- Exécuter les scripts (en tant que ROOT) afficher dans la petite fenêtre l’un après l’autre :
Passer sous ROOT :
[oracle@sysadmin ~]# su - root Mot de passe : Dernière connexion : samedi 15 juin 2019 à 19:19:24 CEST sur pts/1 [root@sysadmin ~]#
Lancer le premier script :
[root@sysadmin ~]# /u01/app/oraInventory/orainstRoot.sh Modification des droits d'accès de /u01/app/oraInventory. Ajout de droits d'accès en lecture/écriture pour le groupe. Suppression des droits d'accès en lecture/écriture/exécution pour le monde. Modification du nom de groupe de /u01/app/oraInventory en oinstall. L'exécution du script est terminée. [root@sysadmin ~]#
Lancer le deuxième script :
[root@sysadmin ~]# /u01/app/oraInventory/orainstRoot.sh Modification des droits d'accès de /u01/app/oraInventory. Ajout de droits d'accès en lecture/écriture pour le groupe. Suppression des droits d'accès en lecture/écriture/exécution pour le monde. Modification du nom de groupe de /u01/app/oraInventory en oinstall. L'exécution du script est terminée. [root@sysadmin ~]# [root@sysadmin ~]# /u01/app/oracle/product/19.2.0/dbhome_1/root.sh Performing root user operation. The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/19.2.0/dbhome_1 Enter the full pathname of the local bin directory: [/usr/local/bin]: Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ... Creating /etc/oratab file... Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root script. Now product-specific root actions will be performed. Oracle Trace File Analyzer (TFA - Standalone Mode) is available at : /u01/app/oracle/product/19.2.0/dbhome_1/bin/tfactl Note : 1. tfactl will use TFA Service if that service is running and user has been granted access 2. tfactl will configure TFA Standalone Mode only if user has no access to TFA Service or TFA is not installed [root@sysadmin ~]#
- Retourner dans la petite fenêtre et cliquez sur OK
- L’installation se poursuit (cela risque de prendre un peu de temps, allez prendre un café 🙂 )
- Si vous souhaitez suivre l’installation, voir le log dans le dossier /tmp :
[root@sysadmin ~]# tail -f /tmp/InstallActions2019-06-15_07-26-04PM/installActions2019-06-15_07-26-04PM.log INFO: [15 juin 2019 21:28:28] Préparation à l'opération de base de données INFO: [15 juin 2019 21:28:28] Skipping line: Préparation à l'opération de base de données INFO: [15 juin 2019 21:28:28] Skipping line: Exécuté à 8 % INFO: [15 juin 2019 21:28:28] Copie des fichiers de base de données INFO: [15 juin 2019 21:28:28] Skipping line: Copie des fichiers de base de données INFO: [15 juin 2019 21:31:02] Skipping line: Exécuté à 31 % INFO: [15 juin 2019 21:31:02] Création et démarrage d'une instance Oracle INFO: [15 juin 2019 21:31:02] Skipping line: Création et démarrage d'une instance Oracle INFO: [15 juin 2019 21:31:40] Skipping line: Exécuté à 32 % INFO: [15 juin 2019 21:32:18] Skipping line: Exécuté à 36 % INFO: [15 juin 2019 21:48:10] Skipping line: Exécuté à 40 % INFO: [15 juin 2019 21:48:13] Skipping line: Exécuté à 43 %
- Une fois l’installation terminée, cliquez sur Fermer.
C’est terminé, vous venez d’installer une base de données Oracle sous Linux.
Connexion à une base de données
Testons notre installation si tout fonctionne bien. Nous allons tenter de nous connecter sur la base de données PIXEL.
Toujours sous l’utilisateur Oracle, se positionner sur la base de données PIXEL :
[oracle@sysadmin ~]# . oraenv ORACLE_SID = [oracle] ? PIXEL The Oracle base has been set to /u01/app/oracle [oracle@sysadmin ~]#
Remarque: il y a un espace entre le POINT et ORAENV
Et maintenant, on se connecte à la base de données :
[oracle@sysadmin ~]# sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Sat Jun 15 22:20:28 2019 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connecte a : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL>
C’est…perfect !
Afficher les PDBS :
SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PIXELDB READ WRITE NO SQL>
Création d’une base de données
Pour créer une base de données, lancez (sous l’utilisateur oracle) la commande suivante :
[oracle@sysadmin ~]$ dbca
L’assistance graphique de configuration de base de données se lance :
Démarrage automatiquement des bases
Si vous redémarrez votre serveur OEL, aucune base de données ne démarrera automatiquement. Il faut activer le démarrage automatique des bases.
Ici, j’ai une seule base de données c’est la base PIXEL. Éditer le fichier suivant pour activer le démarrage auto :
[oracle@sysadmin ~]# nano /etc/oratab
Editer la fin de la ligne de votre base de données et remplacer N par Y
PIXEL:/u01/app/oracle/product/19.2.0/dbhome_1:Y
- Y = démarrage automatiquement de la base.
- N = La base ne démarre pas auto après reboot du serveur.
Démarrage manuellement des bases
Pour démarrer une base de données manuellement. Sous l’utilisateur oracle, tapez les commandes suivantes :
[oracle@sysadmin ~]# . oraenv ORACLE_SID = [PIXEL] ? PIXEL The Oracle base remains unchanged with value /u01/app/oracle [oracle@sysadmin ~]# [oracle@sysadmin ~]# sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Sat Jun 15 22:49:29 2019 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connecte a : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL>
Démarrer la base :
SQL> startup ORACLE instance started. Total System Global Area 1543500832 bytes Fixed Size 9135136 bytes Variable Size 922746880 bytes Database Buffers 603979776 bytes Redo Buffers 7639040 bytes Base de donnees montee. Base de donnees ouverte. SQL>
Démarrer le Listener oracle :
[oracle@sysadmin ~]# $ORACLE_HOME/bin/lsnrctl start LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 16-JUN-2019 00:21:10 Copyright (c) 1991, 2019, Oracle. All rights reserved. Starting /u01/app/oracle/product/19.2.0/dbhome_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 19.0.0.0.0 - Production System parameter file is /u01/app/oracle/product/19.2.0/dbhome_1/network/admin/listener.ora Log messages written to /u01/app/oracle/diag/tnslsnr/sysadmin/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sysadmin.pixelabs.lan)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sysadmin.pixelabs.lan)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date 16-JUN-2019 00:21:10 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/19.2.0/dbhome_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/sysadmin/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sysadmin.pixelabs.lan)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) The listener supports no services The command completed successfully [oracle@sysadmin ~]#
Upgrade Oracle Database
Pour mettre à jour Oracle, tapez la commande suivante sous l’utilisateur oracle :
[oracle@sysadmin ~]$ dbua
Attention : vérifier la compatibilité de vos bases de données avant la migration…
Vous pouvez également installer Oracle Enterprise Manager (sur un autre serveur Linux ou Windows) pour gérer les bases de données, les utilisateurs…etc. Il est possible également de gérer vos BDD à l’aide de l’outil gratuit Oracle SQL Developer.
C’est terminé les amis. Amusez-vous bien 🙂
Bonne journée et à bientôt.