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 :
- dba ( réservé à l'utilisation)
- 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 :
- libaio-devel
- sysstat
- unixODBC
- 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.