5 Mars 2018
Vous souhaitez utiliser Oracle Restart mais ne voulez pas avoir à gérer une instance ASM ? Cela tombe bien cet article est fait pour vous !
En effet, pour le moment il n'est pas possible de réaliser ce type d'installation depuis le runInstaller graphique du grid Infrastructure, la seule solution est d'installer et configurer manuellement les options, ce qui sous entend que nous allons passer par une installation en mode silencieuse.
Ma configuration technique est assez simple : Une VM en oracle Linux 7.4 nommée SRVORA1, équipée de 4Go de RAM, 50Go d'espace disque, fraichement installée avec les prérequis Oracle qui vont bien (package oracle-rdbms-server-12cR1-preinstall), et le package d'installation Grid Infrastructure dezippé et prêt à être installé.
Note : Le package CVUQDISK s'installe depuis le RPM situé dans le répertoire d'installation, puis dans "CV/RPM" :
[root@srvora1 grid]$cd /oracle/product/12.2.0/grid [root@srvora1 grid]$ cd cv/rpm [root@srvora1 rpm]$ ls -al total 20 drwxr-xr-x. 2 oracle dba 4096 Jan 26 2017 . drwxrwx---. 11 oracle dba 4096 Mar 2 09:48 .. -rw-r--r--. 1 oracle dba 8860 Jan 5 2017 cvuqdisk-1.0.10-1.rpm [root@srvora1 rpm]# rpm -ivh cvuqdisk-1.0.10-1.rpm Preparing... ################################# [100%] Updating / installing... 1:cvuqdisk-1.0.10-1 ################################# [100%]
Tout d'abord, nous allons préparer le fichier de "response" qui sera utilisé durant l'installation.
Pour ce faire, se rendre dans le directory où a été dézippé le package d'installation puis dans install et response, pour y découvrir le fichier gridsetup.rsp
Dans mon cas, le répertoire d'installation de Grid Infrastructure est /oracle/product/12.2.0/grid :
[root@srvora1 ~]# cd /oracle/product/12.2.0/grid/install/response [root@srvora1 response]# ls -al total 156 drwxr-xr-x. 2 oracle dba 4096 Mar 2 09:40 . drwxr-xr-x. 10 oracle dba 4096 Mar 2 09:46 .. -rw-r-----. 1 oracle dba 35162 Mar 2 09:37 gridsetup.rsp -rw-r-----. 1 oracle dba 1541 May 20 2016 sample.ccf [root@srvora1 response]#
Avec votre éditeur préféré (un "vi" fera l'affaire pour moi), il faut adapter ce fichier en tenant compte du contexte technique d'installation notamment en ce qui concerne les différents directory (ORACLE_BASE, OraInventory ..)
Voici un extrait de mon fichier, seules 6 lignes sont à adapter pour installer Oracle Restart :
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v12.2.0 ### <== NE PAS MODIFIER INVENTORY_LOCATION=/oracle/product/12.2.0/oraInventory oracle.install.option=CRS_SWONLY ORACLE_BASE=/oracle/product/base oracle.install.asm.OSDBA=dba oracle.install.asm.OSOPER=oper oracle.install.asm.OSASM=dba
Les autres lignes après celles ci ne sont pas à modifier.
Une fois le fichier de response préparé, nous allons vérifier que le system soit prêt à réaliser l'installation, en utilisant RUNCLUVFY depuis le compte qui installera Grid infrastructure ("oracle" dans mon cas), dont le binaire est à disposition dans le répertoire d'installation :
[oracle@srvora1 ~]$ cd /oracle/product/12.2.0/grid [oracle@srvora1 grid]$ ./runcluvfy.sh stage -pre hacfg -verbose
La Log de runcluvfy avec les détails ci dessous :
On remarque qu'il y a quelques erreurs, notamment sur la mémoire de la machine (ma VM est équipée de 4Go, il en faudrait 8Go avec une swap adéquate).
Deux solutions, soit l'on adapte la configuration mémoire de la machine, soit on ne tient pas tenir compte des erreurs.
Dans mon cas je vais simplement ignorer les erreurs, ne voulant pas ajouter de la mémoire à ma VM.
Toujours en restant connecté avec le compte "oracle", je passe à l'installation silencieuse en utilisant le binaire "gridSetup.sh" du répertoire d'installation, en utilisant l'option "ignorePrereqFailure" pour ignorer les erreurs liées à la mémoire et au swap.
[oracle@srvora1 grid]$./gridSetup.sh -silent -responseFile /oracle/product/12.2.0/grid/install/response/gridsetup.rsp -ignorePrereqFailure
Une fois l'installation terminée il faut passer les 2 scripts devenus classiques, depuis le compte ROOT :
[root@srvora1 oraInventory]# pwd /oracle/product/12.2.0/oraInventory [root@srvora1 oraInventory]# ls -al total 12 drwxrwx---. 4 oracle dba 78 Mar 2 09:44 . drwxr-xr-x. 5 oracle dba 48 Mar 2 09:38 .. drwxrwx---. 2 oracle dba 60 Mar 2 09:44 ContentsXML drwxrwx---. 3 oracle dba 4096 Mar 2 09:44 logs -rw-rw----. 1 oracle dba 65 Mar 2 09:44 oraInst.loc -rwxrwx---. 1 oracle dba 1726 Mar 2 09:44 orainstRoot.sh [root@srvora1 oraInventory]# ./orainstRoot.sh Changing permissions of /oracle/product/12.2.0/oraInventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /oracle/product/12.2.0/oraInventory to dba. The execution of the script is complete. [root@srvora1 oraInventory]#
puis
[root@srvora1 grid]# ./root.sh Check /oracle/product/12.2.0/grid/install/root_srvora1.localdomain_2018-03-02_15-20-59-833897913.log for the output of root script [root@srvora1 grid]#
On vérifie la log :
Performing root user operation. The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /oracle/product/12.2.0/grid Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ... 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.
Ok, mais ce n'est pas terminé. Maintenant que nous avons fait l'installation, il faut configurer Oracle restart en utilisant une commande PERL toujours depuis le compte ROOT :
[root@srvora1 grid]#/oracle/product/12.2.0/grid/perl/bin/perl -I/oracle/product/12.2.0/grid/perl/lib -I/oracle/product/12.2.0/grid/crs/install /oracle/product/12.2.0/grid/crs/install/roothas.pl Using configuration parameter file: /oracle/product/12.2.0/grid/crs/install/crsconfig_params The log of current session can be found at: /oracle/product/base/crsdata/srvora1/crsconfig/roothas_2018-02-03_10-51-08AM.log 2018/03/02 10:51:11 CLSRSC-363: User ignored prerequisites during installation LOCAL ADD MODE Creating OCR keys for user 'oracle', privgrp 'oinstall'.. Operation successful. LOCAL ONLY MODE Successfully accumulated necessary OCR keys. Creating OCR keys for user 'root', privgrp 'root'.. Operation successful. CRS-4664: Node srvora1 successfully pinned. 2018/03/02 10:51:17 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service' CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'srvora1' CRS-2673: Attempting to stop 'ora.evmd' on 'srvora1' CRS-2677: Stop of 'ora.evmd' on 'srvora1' succeeded CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'srvora1' has completed CRS-4133: Oracle High Availability Services has been stopped. CRS-4123: Oracle High Availability Services has been started.
Une petite vérification s'impose :
Name Target State Server State details ------------------------------------------------------------------- Local Resources ------------------------------------------------------------------- ora.ons OFFLINE OFFLINE srvora1 STABLE -------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------- ora.cssd 1 OFFLINE OFFLINE STABLE ora.diskmon 1 OFFLINE OFFLINE STABLE ora.evmd 1 ONLINE ONLINE srvora1 STABLE ---------------------------------------------------------------------
Parfait, Oracle Restart est bien installé et configuré ! Essayons maintenant de créer un listener et de l'enregistrer !
Je vais utiliser NETCA en mode silencieux, en utilisant le responsefile par défaut "NETCA_TYP.rsp".
Toujours depuis mon compte "oracle" :
[oracle@srvora1 ~]$ export ORACLE_HOME=/oracle/product/12.2.0/grid [oracle@srvora1 ~]$ export PATH=$PATH:$ORACLE_HOME/bin [oracle@srvora1 ~]$ netca -silent -responseFile /oracle/product/12.2.0/grid/network/install/netca_typ.rsp Parsing command line arguments: Parameter "silent" = true Parameter "responsefile" = /oracle/product/12.2.0/grid/network/install/netca_typ.rsp Done parsing command line arguments. Oracle Net Services Configuration: Profile configuration complete. Oracle Net Listener Startup: Listener started successfully. Listener configuration complete. Oracle Net Services configuration successful. The exit code is 0
Une petite vérification :
[oracle@srvora1 ~]$ crsctl stat res -t ------------------------------------------------------------------- Name Target State Server State details ------------------------------------------------------------------- Local Resources ------------------------------------------------------------------- ora.LISTENER.lsnr ONLINE ONLINE srvora1 STABLE ora.ons OFFLINE OFFLINE srvora1 STABLE ------------------------------------------------------------------- Cluster Resources ------------------------------------------------------------------- ora.cssd 1 OFFLINE OFFLINE STABLE ora.diskmon 1 OFFLINE OFFLINE STABLE ora.evmd 1 ONLINE ONLINE srvora1 STABLE ------------------------------------------------------------------- [oracle@srvora1 ~]$ srvctl status listener Listener LISTENER is enabled Listener LISTENER is running on node(s): srvora1
Impeccable ! nous avons bien notre listener enregistré dans Oracle Restart, lequel pourra automatiquement le lancer à chaque reboot (entre autres) !
Enjoy !