ORACLE pré-requis pour ASM

L'installation de la machine Linux étant terminée (et une image sauvegardée) on va pouvoir s'attaquer au plus gros : l'installation de Oracle avec ASM. 
Il y a d'abord un certain nombre de pré-requis pour que l'installation se passe sans anicroches (les pré-requis et l'image Linux de base ont été "pompés" d'un autre article !). 
Rappel : ceci n'est pas une installation destinée à la production mais une installation de test dont la sécurité n'est pas assurée correctement ! 

Ajouter les lignes suivantes dans le fichier "/etc/sysctl.conf" : 
------------------------------------------ 
# add for Oracle GRID 
fs.file-max = 6815744 
fs.aio-max-nr = 1048576 
kernel.shmmni = 4096 
kernel.shmall = 2097152 
kernel.shmmax = 536870912 
kernel.sem = 250 32000 100 128 
net.ipv4.ip_local_port_range = 9000 65500 
net.core.rmem_default = 262144 
net.core.rmem_max = 4194304 
net.core.wmem_default = 262144 
net.core.wmem_max = 1048576 
------------------------------------------ 
Ne pas oublier ensuite un "systcl -p" pour valider les modifiations. 

A modifier le fichier "/etc/security/limit.conf" et y ajouter : 
----------------------------------------- 
# for oracle 
@dba            soft    nproc   2047 
@dba            hard    nproc   16384 
@dba            soft    nofile  65536 
@dba            hard    nofile  131072 
-----------------------------------------

Nous sommes en test et nous n'allons pas séparer les privilèges entre "oracle" et "grid", nous installerons le tout par l'utilisateur "oracle" afin de simplifier l'installation.

Créer quelques groupes :

  1. dba ( réservé à l'utilisation)
  2. oinstall  (réservé à l'installation, sera "owner" du logiciel).

Créer l'utilisateur "oracle" membre des groupes : "oracle" en groupe primaire + "oinstall" et "dba". 
Mettre à jour la version Linux et initialiser "yum" : 
cd /etc/yum.repo.d 
wget http://public-yum.oracle.com/public-yum-el5.repo 

Lancer l'éditeur sur le fichier repo et passer à "enabled = 1" les repositories à utiliser (el5_ga_bas, el5_u4-base) 
Lancer un "yum repolist" qui déclenche le chargement des données de catalogue. 
Vous pouvez ensuite utiliser les commandes "yum" pour installer les paquets manquants :

  1. libaio-devel
  2. sysstat
  3. unixODBC
  4. unixODBC-devel

Un grand coup de "yum install ...." et c'est torché (presque aussi bien que aptitude). 
Installer les "bons" drivers pour ASMLIB, ceux ci dépendent du système, comme nous avons un Linux made by Oracle un petit coup de : 
yum search asm 
vous donnera la liste des candidats, ici je choisit (en fonction du noyau installé (uname -a)) : 
oracleasm-support.x86_64 : The Oracle Automatic Storage Management support programs. 
puis donc : 
yum install oracleasm-2.6.18-164.el5.x86_64 oracleasm-support.x86_64 
Comme il y a un driver au niveau du noyau un redémarrage est prudent pour véfifier. 
Après un reboot il reste encore des "choses" à faire pour ne pas tomber en rade lors de l'installation. 
Lancer la commande suivante pour vérifier l'espace partagé : 
df -h /dev/shm/ 
Chez moi elle donne : 
df -h /dev/shm/ 
Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur 
tmpfs                 1,5G     0  1,5G   0% /dev/shm 
Ce qui devrait nous permettre d'utiliser un "MEMORY_TARGET" <= 1,5Go 
Beaucoup d'autres pré-requis sur l'espace nécessaire dans les différents filesystems, le swap, il faut aussi disposer d'un écran X de 1024x768 mini. Mais comme la partition unique destinée au système et au logiciel est dimensionnée généreusement cela ne devrait pas poser de problèmes. L'installation de Oracle Linux est normalement compatible si vous avez installé le système de développement car Oracle a besoin de compilateurs. 

Mise en place des chemins "qui vont bien" et des variables d'environnement communes à toute l'installation. J'ai créé un répertoire ORACLE dans /etc/default pour contenir ces infos communes. Ce fichier est exécuté (. /etc/default/ORACLE ) dans le fichier profile des utilisateurs concernés.

  • ORACLE_BASE pointe ici vers notre répertoire "/opt/oracle"
  • export ORACLE_BASE

Le tout placé dans le fichier "/home/oracle/.bashrc". 
Créer ensuite un fichier "99-oracle-rules" de règles dans "/etc/udev/rules.d" qui contiendra pour nous : 
# Regles pour ASM 
KERNEL=="hdb[1-9]", OWNER="oracle", GROUP="dba", MODE="0660" 
KERNEL=="hdc[1-9]", OWNER="oracle", GROUP="dba", MODE="0660"

Nous allons ensuite affecter 2 "disques" à la machine virtuelle en /dev/hdb et /dev/hdc. Ici il s'agira de deux partitions LVM sur deux disques physiques différents pour avoir de meilleures performances. Ces "disques" seront créés avec chacun une seule partition. 
Ces deux disques seront utilisés pour "imiter" une base de produtcion où, en dehors de toute option de performance, il ne faut pas oublier de séparer la base des fichiers permettant de la reconstituer (archives, double des "redologs", sauvegarde RMAN, zone de "flash-back"), ne serait-ce que pour assurer un minimum de sécurité :si on perd les données on aura les sauvegardes (RMAN), le double des redologs et la zone Flash. 
Ceci réalisé il sera possible de passer à l'opération suivante : Installation des éléments du "grid" où se trouve ASM et préparation des zones ASM destinées à recevoir notre BDD.