# Oracle 11gR2 sur RedHat 7 64 bits

#### <span class="mw-headline" id="bkmrk-installation-redhat--0">Installation RedHat 7</span>

1\. Télécharger la dernière image ISO RedHat sur [https://access.redhat.com](https://access.redhat.com/)

2\. Créer une VM

- ressources : 16G RAM, 300G disque format dynamique
- Faire pointer le lecteur cd vers l'ISO RedHat

3\. Activer (booter) la VM

4\. IMPORTANT : L'installateur graphique de RedHat ne s'affiche pas correctement par défaut dans la console VMWare. Au lancement :

- Aller dans « Troubleshooting » / « install in basic graphic mode »
- Touche TABULATION
- remplacer "xdriver=vesa" par "vga=794", valider.

*Note :* on a pas ce problème sur une VM KVM.

5\. Sur l'écran « Installation summary », choisir la langue et le clavier

6\. Paramétrer le réseau dans « Network &amp; hostname » (sélectionner la carte et cliquer sur « Configure »)

7\. Paramétrer les partitions dans « Installation destination »

8\. Sélectionner le disque de destination, demander la création des partitions automatiquement, puis supprimer /home (l'assistant crée une partition /home distincte sur le reste du disque. On veut garder cette place pour un "/u01" qui contiendra Oracle)

9\. Revenir sur l'écran d’accueil et cliquer sur « Begin installation »

10\. Pendant l'installation, créer le mot de passe root, ne pas créer d'autre utilisateur.

Une fois le système installé et la VM redémarrée, s'y connecter en SSH.

11\. Vérifier que la VM a accès à internet

12\. Enregistrer le système auprèsde Redhat :

```shell
subscription-manager register 
  Le système a été enregistré avec l'ID : xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
```

13\. Lister les souscriptions disponibles et noter le numéro « ID du pool »,

```shell
subscription-manager list --available 
```

14\. Souscrire à ce pool (ID ci-dessus sans les tirets)

```shell
subscription-manager subscribe --pool=xxxxxxxxxxxxxxxxxxxxxxxxxx 
```

15\. Vérification :

```shell
subscription-manager list --consumed
```

16\. Vérifier les dépôts activés

```shell
yum repolist all
```

le dépôt « rhel-7-server-rpms/7Server/x86\_64 » doit être actif 17. Mettre le système à jour

```
yum update
```

#### <span class="mw-headline" id="bkmrk-pr%C3%A9paration-de-l%27ins-0">Préparation de l'installation d'Oracle 11gR2 par YUM</span>

Selon [http://www.snapdba.com/2014/01/oracle-database-11gr2-11-2-0-4-installation-on-oracle-linux-6-4/](http://www.snapdba.com/2014/01/oracle-database-11gr2-11-2-0-4-installation-on-oracle-linux-6-4/) et [http://www.snapdba.com/2013/03/oracle-linux-6-4-installation-64-bit](http://www.snapdba.com/2013/03/oracle-linux-6-4-installation-64-bit) : en activant les dépôt d'Oracle linux (ou en installant directement Oracle linux), les pré-requis peuvent être automatisés par

```shell
yum install oracle-rdbms-server-11gR2-preinstall
```

A valider ! Et voir ce que ça automatise par rapport au chapitre ci-dessous.

#### <span class="mw-headline" id="bkmrk-installation-d%27oracl-0">Installation d'Oracle 11gR2 manuellement</span>

1\. Télécharger les fichiers sur [https://support.oracle.com](https://support.oracle.com/) (au minimum : fichiers 1 et 2 (database), 4 (client), et 7 (uninstall))

2\. Installer les pré-requis (le dépôt additionnel « server-optional-rpms est nécessaire pour le paquet compat-libstdc++-33)

```shell
yum install yum-utils xauth unzip psmisc
yum-config-manager --enable rhel-7-server-optional-rpms 
yum install ksh binutils glibc compat-libstdc++-33 compat-libcap1 glibc-common glibc-devel glibc-headers elfutils-libelf elfutils-libelf-devel elfutils gcc gcc-c++ ksh libaio libaio-devel libgcc libstdc++-devel make libXi libXtst numactl-devel sysstat mksh unixODBC unixODBC-devel 
```

3\. Formater et monter une partition LVM /u01 à partir de l'espace libre restant sur le disque.

4\. Initialiser l'arborescence Oracle

```shell
mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1 
```

5\. Créer groupes et utilisateur

```shell
groupadd -g 502 oinstall 
groupadd -g 503 dba 
groupadd -g 504 oper 
groupadd -g 505 asmadmin # UTILE ?? 
useradd -u 502 -g oinstall -G dba,oper -d /u01 -s /bin/bash oracle11 
passwd oracle11 	
```

6\. Changer les droits de /u01

```shell
chown -R oracle11:oinstall /u01 
chmod -R 775 /u01
```

7\. Adapter les paramètres système pour Oracle

```shell
vi /etc/sysctl.d/99-sysctl.conf
```

ajouter :

```
#### Oracle 11g Kernel Parameters #### 
fs.suid_dumpable = 1 
fs.aio-max-nr = 1048576 
fs.file-max = 6815744 
kernel.shmall = 2097152 
kernel.shmmax = 4294967296 
kernel.shmmni = 4096 
# semaphores: semmsl, semmns, semopm, semmni 
kernel.sem = 250 32000 100 128 
net.ipv4.ip_local_port_range = 9000 65500 
net.core.rmem_default=4194304 
net.core.rmem_max=4194304 
net.core.wmem_default=262144 
net.core.wmem_max=1048586 
```

```shell
vi /etc/security/limits.conf
```

ajouter :

```
#### oracle User Settings 4 Oracle 11g #### 
oracle11              soft    nproc   2047 
oracle11              hard    nproc   16384 
oracle11              soft    nofile  4096 
oracle11              hard    nofile  65536 
oracle11              soft    stack   10240 
oracle11              hard    stack   32768 
```

appliquer les paramètres :

```shell
/sbin/sysctl -p 
```

8\. Désactiver SELINUX et le firewall local

```shell
systemctl stop firewalld
systemctl disable firewalld
vi /etc/selinux/config
```

modifier :

```
SELINUX=disabled 
```

9\. Se connecter sous l'utilisateur Oracle (attention aux espaces autour du « - »)

```shell
su - oracle11 
vi .bashrc
```

ajouter :

```
# Oracle Settings 
TMP=/tmp; export TMP 
TMPDIR=$TMP; export TMPDIR 
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE 
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME 
PATH=$ORACLE_HOME/bin:$PATH; export PATH 
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH 
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
```

9.1. Sur RH7 et bash, c'est .bash\_profile qui est lancé en interactif. Créer .bash\_profile :

```shell
vi .bash_profile
```

```
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
```

**NOTE** : Sur linux, en interactif (connexion à une console ou ssh), c'est .bash\_profile qui est exécuté. En non-interactif (cron, su -c, etc.) c'est .bashrc qui est exécuté.

**IMPORTANT** : charger ces configurations avant de lancer l'installation !

```shell
source .bash_profile
```

10\. dézipper les archives oracle (par exemple dans /u01/install), donner les droits à oracle11

```shell
chown -R oracle11.oinstall  /u01/install/database 
```

11\. Lancer l'installation

```shell
cd /u01/install/database 
./runInstaller
```

**NOTE** : l'installation est graphique. Ne pas oublier « xhost + » et « ssh -X » si client linux, ou Xming si client Windows.

Répondre Y si l'avertissement suivant s'affiche :

```
Vérification de l'écran : doit être configuré pour afficher au moins 256 couleurs 
   >>> Impossible d'exécuter la vérification automatique des couleurs d'affichage à l'aide de la commande /usr/bin/xdpyinfo. Vérifiez que la variable DISPLAY est définie.    Echec <<<< 
Echec de la vérification de certaines exigences. Vous devez répondre à ces exigences pour pouvoir poursuivre l'installation, Voulez-vous poursuivre ? (o/n) [n]
```

12\. Passer les différents écrans graphiques avec le bouton « suivant » :

- ne pas donner d'adresse électronique, décocher "recevoir les mises à jour..." &gt; suivant (valider l'avertissement)
- ignorer les mises à jour &gt; suivant (valider "ne pas être averti....")
- installer le logiciel uniquement &gt; suivant (les bases de données seront créées individuellement plus tard)
- bases mono-instance (« single instance ») &gt; suivant
- langues anglais+français &gt; suivant
- Standard Edition &gt; suivant
- vérifier les chemins ORACLE\_BASE et ORACLE\_HOME &gt; suivant
- vérifier chemin oraInventory (créé automatiquement) et groupe &gt; suivant
- vérifier groupes dba,oper &gt; suivant

13\. A la validation, le message indiquant un swap trop petite (&lt; RAM) peut être ignoré; de même le message indiquant « pdksh » manquant peut être ignoré aussi (le package « ksh » le remplace).

S'il n'y a que ces 2 avertissements, cocher "ignorer tout" et valider.

**NOTE** RedHat7 : en cas d'erreur

```
"Erreur lors de l'appel de la cible 'agent nmhs' du fichier Make"
```

- laisser l'installateur en attente
- aller en console dans le répertoire /u01/app/oracle/product/11.2.0.4/sysman/lib
- éditer ins\_emagent.mk avec vi
- chercher MK\_EMAGENT\_NMECTL, remplacer la ligne :

```
$(MK_EMAGENT_NMECTL)
```

par

```
$(MK_EMAGENT_NMECTL) -lnnz11
```

- sauver, revenir à l'installateur et cliquer « réessayer »

14\. A la fin de l'installation, exécuter en "root" les 2 scripts indiqués

#### <span class="mw-headline" id="bkmrk-installation-du-patc-0">Installation du patch 11.2.0.4.1</span>

1\. Le patch « DATABASE\_PATCH\_SET\_11.2.0.4.1 » est disponible sur support.oracle.com sous le nom « p17478514\_112040\_Linux-x86-64.zip ».

2.Télécharger aussi la dernière version d'Opatch (11.2.0.3.5 = p6880880\_112000\_Linux-x86-64.zip).

```shell
cd $ORACLE_HOME
unzip /ora11ginst/OPatch/Patch\ 6880880/p6880880_112000_Linux-x86-64.zip
```

et répondre « A » (« All »)

3\. Décompresser le patch et lancer la vérification

```shell
unzip p17478514_112040_Linux-x86-64.zip
cd 17478514
opatch prereq CheckConflictAgainstOHWithDetail -ph ./
```

4\. Si la vérification répond « Prereq "checkConflictAgainstOHWithDetail" passed. », lancer la mise à jour

```shell
opatch apply
```

« Entrée » sur « Adresse électronique/nom utilisateur : », et « O » sur « Voulez-vous ne pas être informé des problèmes de sécurité (\[O\]ui, \[N\]on) \[N\] ? »

#### <span class="mw-headline" id="bkmrk-clone-de-la-machine--0">Clone de la machine virtuelle RH7 (si nécessaire)</span>

Stopper la VM, la cloner. Lancer la VM clonée, modifier l'adresse IP et /etc/hostname. Vérifier la souscription :

```shell
subscription-manager refresh
```

En cas de problème, la refaire :

```shell
subscription-manager clean 
subscription-manager unregister 
subscription-manager register
```

#### <span class="mw-headline" id="bkmrk-cr%C3%A9ation-des-bases-d-0">Création des bases de données</span>

Le programme Oracle ayant été installé seul (sans création de base), lancer d'abord "netca" pour créer un LISTENER, puis "dbca" pour créer les bases.

Suivre les écrans de création de la base (les options dépendent des besoins de la base, à voir individuellement).

Après création d'une base, si la console DBCONSOLE a été installée (par défaut), on y accède par :

```
https://176.100.3.145:1158/em
```

L'initialisation de l'environnement Oracle en console se fait par :

```shell
. /usr/local/bin/oraenv
ou
. oraenv
si le PATH est correct
```

Démarrage-arrêt automatique du listener et des bases :

- modifier /etc/oratab, mettre "Y" (en bout de ligne) pour les bases à lancer/arrêter automatiquement
- créer un fichier /etc/systemd/system/dboracle.service contenant :

```
[Unit] 
Description=Oracle Autostart Service 
After=syslog.target network.target 

[Service] 
Type=simple 
RemainAfterExit=yes 
User=oracle11 
Group=oinstall 
ExecStart=/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart /u01/app/oracle/product/11.2.0/dbhome_1 
ExecStop=/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbshut /u01/app/oracle/product/11.2.0/dbhome_1 

[Install] 
WantedBy=multi-user.target
```

Activer le démarrage automatique des bases Oracle :

```shell
systemctl enable dboracle.service
```

Si nécessaire, le démarrage manuel de bases est possible par :

```
$ORACLE_HOME/bin/dbstart $ORACLE_HOME
```

Et l'arrêt des bases:

```
$ORACLE_HOME/bin/dbshut $ORACLE_HOME
```

#### <span class="mw-headline" id="bkmrk-ressources-0">Ressources</span>

[http://linux-tutorial-for-beginners.blogspot.fr/2013/04/linux-fedora-18-gnome3-howto-install-gettingstarted-oracle-11g-r2-database.html](http://linux-tutorial-for-beginners.blogspot.fr/2013/04/linux-fedora-18-gnome3-howto-install-gettingstarted-oracle-11g-r2-database.html)

[http://docs.oracle.com/cd/E11882\_01/install.112/e24326/toc.htm#BHCHBHDB](http://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm#BHCHBHDB)