testbed : 12cR1 RAC ASM
- Détails
- Catégorie : TestBed
- Publié le mercredi 10 février 2016 21:21
- Écrit par Administrator
- Affichages : 12266
Cet article décrit comment installer un RAC 12cR1 (12.1.0.2) sous Oracle Linux 6.7 virtualisé avec VirtualBox.
1- Pré-requis
2- Montage virtuel du hardware
3- Installation OS
4- Tuning et prérequis Oracle
5- Les disques partagés, les disques ASM
6- Clonage serveur
7- Installation du clusterware Grid Infrastructure
8- Installation du moteur Oracle Database RAC
Pré-requis
L’installation décrite ci-dessous a été faite à partir d’une machine hôte Windows 10 64bit, la procédure restera identique pour un windows 7,8 et 8.1 64 bit, et pratiquement identique si l’hôte est un Linux.
En revanche au niveau hardware de la machine hôtes il est important d’activer dans le BIOS la virtualisation, sinon VirtualBox ne pourra générer de machine virtuelle 64bit mais uniquement des 32bit. Reportez-vous donc à la documentation constructeur de votre carte mère. Exemple dans le BIOS de ma carte mère dans Advanced Menu à CPU Configuration, j’ai activé Intel Virtualization Technology.
Il faut prévoir 8 Go de RAM physique à allouer au 2 serveurs virtuels du cluster RAC. Si vous êtes limite niveau mémoire vous pouvez essayer 6Go (3Go par serveur). Dans la procédure ci-dessous 4Go seront alloués aux serveurs.
Niveau disque dur, il faut prévoir 50Go (extensible à 100Go) pour les OS et l’installation des binaires Oracle mais aussi 84Go fixe pour configurer ASM telle que décrit dans cet article. On pourrait prendre moins pour ASM, mais le banc monté ici servira à un futur article.
La version de VirtualBox utilisé ici est la 5.0.12. La version 4.x devrait être compatible. Vous pouvez télécharger gratuitement VirtualBox ici : https://www.virtualbox.org/wiki/Downloads. Une fois téléchargé, installez VirtualBox, rien de bien compliqué : suivant, suivant.
La version de l’OS invité est Oracle Linux 6.7 64bit. Vous pouvez la télécharger ici : http://edelivery.oracle.com/linux mais il faut avoir un compte chez oracle. Vous pouvez prendre une RedHat 6.7 (si vous avez un compte chez RedHat) ou une CentOS 6.7 (pas besoin de compte : https://www.centos.org/download). La procédure devrait changer légèrement sur certains points comme par exemple pour l’installation d’ASMLib. (J’essaierai d’expliquer les différences).
La version d’Oracle Database est la 12.1.0.2 Entreprise Edition que vous pouvez télécharger ici :http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html (choix linux x86-64). En revanche il vous faudra absolument un compte chez Oracle pour la partie Grid Infrastructure (clustering+ASM) ou alors vous procurer les sources pour une connaissance.
Montage virtuel du hardware
Pour monter un RAC, il faut au minimum 2 serveurs. Nous allons commencer par "fabriquer" le premier, que nous nommerons 12cR1-RAC1.
Pour cela lancez VirtualBox et cliquez sur le bouton "nouvelle". Le fenêtre ci-dessous s'ouvre alors :
Cliquez alors sur Mode Expert puis renseignez le nom, le type (Linux), la version du linux (Oracle 64bit), la taille mémoire (4 Go min conseillé), puis cliquez sur Créer :
Pour la création du disque dur virtuel de l’OS, cliquez sur l’icône Répertoire avec le chevron vert, comme dans la capture d’écran ci-dessous :
Choisissez l’emplacement du fichier qui servira de disque dur. Par défaut il se trouve dans votre profil windows ce qui n’est pas forcément optimal. Puis pensez aussi à nommer le fichier avec un nom parlant, par exemple 12cR1-RAC1-OS.vdi :
Par défaut la taille est à 12Go, montez-la à 15Go. Laissez les autres options par défaut et cliquez sur Créer :
Maintenant rajoutez le deuxième disque dur virtuel, pour cela cliquez sur Stockage :
Cliquez sur ajouter un disque dur à droite du contrôleur SATA :
Cliquez sur Créer un nouveau disque et choisissez VDI puis cliquez sur Suivant :
Dynamiquement alloué (le fichier disque dur croitra au fur et à mesure que le disque se remplira) :
Comme précédemment choisissez l’emplacement du fichier ainsi que son nom (12cR1-RAC1-oracle.vdi):
Cette fois-ci il faut prévoir un peu plus de place (moteur clusterware + database + les traces/log), mettez 35Go :
Occupez-vous maintenant des cartes réseaux. L’ajout de 2 cartes réseaux est suffisant: une pour l’interface dite public et une pour l’interface dite privé,cependant il est intéressant de configurer 3 cartes, pour en dédier une à internet ce qui facilite les mises à jours (nous ne sommes pas en prod !) Carte 1 en NAT : ce sera celle qui communiquera avec internet Carte 2 en Accès par pont : ce sera l’interface public Carte 3 en Réseau interne : ce sera l’interface privé |
|
Réglez enfin l’ordre de boot comme ci-dessous :
La machine virtuelle est virtuellement montée, tout le hardware virtuel est assemblé.
Installation OS
Le serveur est prêt, il faut maintenant installer l'operating system. Pour cela comme sur un "vrai" serveur, nous allons booter sur le lecteur DVD-ROM, après avoir inséré le DVD de la distribution Oracle Linux 6.7.
Avant de commencer, choisissez les adresses IP. Il en faut 7, répartis sur 2 plages réseaux distinct : réseau publique et privé.
Sur mes bancs le réseau public est sur le 10.10.0.x, donc je réserve:
10.10.0.121 pour rac12db1, 10.10.0.131 pour ra12db1-vip
10.10.0.122 pour rac12db2, 10.10.0.132 pour ra12db2-vip
10.10.0.120 pour l’adresse de SCAN (normalement c’est trois ou plus pour les adresses de SCAN, mais il faut un DNS ou bien configurer le GNS du clusterware, ce qui ne sera pas le cas ici)
Pour les privées :
10.10.2.11 pour rac12db1-priv
10.10.2.12 pour rac12db2-priv
Les privées ne doivent pas voir un autre réseau.
Pour insérer le DVD, cliquez sur Stockage :
Puis cliquer sur le « CD-ROM » vide (pour ouvrir le lecteur):
Et chercher l’ISO comme dans la capture d’écran ci-dessous :
Une fois le DVD dans le lecteur, démarrez le serveur :
Le pingouin en armure s’affiche, l'installation de l'OS peut commencer :
Skip et Next :
Choisissez le langage que vous souhaitez, mais je conseille de prendre English. Par contre pour le clavier la question ne se pose pas :
Basic Storage Devices et Next puis Yes, discard any data :
Avant de cliquer sur Configure Network, mettez le nom du hostname :
Pour la configuration des interfaces : ne changez rien pour l’eth0, c’est celle qui servira pour accéder à internet ; elle est en DHCP par défaut (si vous fixer les adresses dans votre réseau domestique, alors modifier la configuration). Modifiez l’interface eth1 et eth2 comme dans les captures d’écran ci-dessous :
Pour le fuseau horaire, je ne peux pas choisir pour vous, même si je suppose que vous êtes francophone, et c’est grand la francophonie . Renseignez ensuite le mot de passe root:
Choisissez Use all Space, décochez Encrypt system et cochez Review and modify partitionning layout :
Sélectionnez le disque de 15Go (celui dédié OS) dans la fenêtre Target puis Next :
Attention à ne pas faire Next tout de suite. En premier sélectionnez la partition sda2, faire edit et diminuez sa taille à 14859Mo, puis validez et sélectionnez lv_swap pour l’augmenter à 4096Mo (le but est de mettre minimum 4Go de swap). Et enfin faire Next :
Format et Write changes to disk :
Bien vérifiez boot loader on /dev/sda :
Choisissez Basic Server et cochez Customize Now et Next :
Les captures d’écran cela serait trop laborieux, un tableau pour résumer les choix:
Base System |
Base |
Servers |
Server platform |
Desktops |
Desktop |
Applications | Internet Browser |
Developement |
Additional Development Developement tool |
Validez puis attendez l'installation s’opère:
Une fois l'installation terminé, cliquez sur le bouton Reboot :
La machine reboote et démarre sur la partition de boot de /dev/sda. Au premier boot, une GUI s'ouvre pour finir de renseigner 2 ou 3 parmètres :
Welcome : Forward
License Information : Yes, I agree to the License Agreement
Forward
Set Up Software Updates : No, I prefere to register at a later time
No thanks, I'll connect later
Forward
Create User : ben... vous mettez qui vous voulez cela vous regarde
Date and Time : cela dépend de quand vous arrivez sur cette fenêtre
Kdump : Décochez "Enable kdump"
Tuning et prérequis Oracle
A chaque installation d'un OS dans VirtualBox, il faut le plus rapidement installer les "Additions invité" (Des fois c'est mieux de ne pas traduire en français ).
Cet addon, améliore les interactions entre l'hôte et l'invité comme entre autre le montage sous l'invité de répertoires de l'hôte, la possibilité de faire du copier/coller entre l'hôte et l'invité, la modification automatique de la résolution suivant la taille de la fenêtre et plein d'autres choses...
Ensuite réglons « aux petits oignons » les iptables :
[root@rac12db1 ~]# chkconfig |grep iptable
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@rac12db1 ~]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
[root@rac12db1 ~]# chkconfig iptables off
[root@rac12db1 ~]# chkconfig |grep iptable
iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
Ne vous embêtez pas avec SELINUX et ses règles, mettez-le en permissive, ce n’est qu’un banc de test:
[root@rac12db1 ~]# vi /etc/selinux/config
SELINUX=permissive
Editez le fichier /etc/grub.conf en tant que root, et à la fin de la ligne de qui contient le kernel actif, rajouter divider=10:
Pensez aussi à configurer un dossier partagé entre l’hôte et l’invité, il servira de zone d’échange pour entre autre les sources Oracle:
Un reboot:
[root@rac12db1 ~]# init 6
Un dernier réglage SELINUX:
[root@rac12db1 ~]# setenforce Permissive
Ensuite il faut penser à mettre l' /etc/hosts à jour sinon vous aurez des problèmes au moment de l’installation Oracle :
[root@rac12db1 ~]# vi /etc/hosts
10.10.0.121 rac12db1 rac12db1.localdomain
10.10.0.122 rac12db2 rac12db2.localdomain
10.10.0.131 rac12db1-vip rac12db1-vip.localdomain
10.10.0.132 rac12db2-vip rac12db2-vip.localdomain
10.10.0.120 rac12db-scan rac12db-scan.localdomain
10.10.2.11 rac12db1-priv
10.10.2.12 rac12db2-priv
Il y a ensuite pas mal de prérequis à vérifier et à installer/configurer le cas échéant. Vous pouvez trouver la liste dans la documentation Oracle (https://docs.oracle.com/database/121/CWLIN/toc.htm). Sinon un peu plus rapide, il existe un rpm qui le fait pour vous. Si vous êtes sous Oracle Linux comme ici il suffit d’activer internet pour lancer un yum install, sinon si vous êtes sur une ReadHat ou CentOS vous pouvez aller télécharger (ou configurer yum) sur http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/index.html
Pour activer internet temporairement, il faut activez la carte réseau eth0 que vous avez précédemment dédié à internet et lancer l'installation avec yum:
[root@rac12db1 ~]# yum install oracle-rdbms-server-12cR1-preinstall -y
Le package a installé les librairies éventuellement manquantes, réglé des valeurs de kernel et aussi créé le compte oracle et le groupe dba. Je n'apprécie pas trop les id choisit mais nous allons faire avec.
Il n’est pas obligatoire de créer les groupes ci-dessous et le user grid. Cependant je conseille de le faire et de toujours le faire. Il est important de s’habituer à la ségrégation des rôles, c’est une question de sécurité. Rajouter des groupes OS après l’installation et re-paramétrer les liens c’est faisable et amusant… quand ce n’est pas de la production.
[root@rac12db1 ~]# groupadd -g 54323 oper
[root@rac12db1 ~]# groupadd -g 54324 backupdba
[root@rac12db1 ~]# groupadd -g 54325 dgdba
[root@rac12db1 ~]# groupadd -g 54326 kmdba
[root@rac12db1 ~]# groupadd -g 54327 asmdba
[root@rac12db1 ~]# groupadd -g 54328 asmoper
[root@rac12db1 ~]# groupadd -g 54329 asmadmin
[root@rac12db1 ~]# usermod -g oinstall -G dba,oper,dgdba,kmdba,backupdba,asmdba oracle
[root@rac12db1 ~]# useradd -u 54322 -g oinstall -G asmdba,asmadmin,asmoper grid
Pensez à changer/initialiser les mots de passe de oracle et grid.
Si le package a bien modifié les paramètres kernel dans /etc/sysctl.conf, en revanche il n’a pas ajouté les limit soft et hard pour oracle, à vous de le faire :
[root@rac12db1 ~]# vi /etc/security/limits.conf
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 3145728
Pour finir la configuration des comptes oracle et grid, customisez leur .bash_profile :
[grid@rac12db1 ~]$ vi .bash_profile
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
export ORACLE_BASE=/oracle/oraBase
export ORACLE_HOME=/oracle/12.1.0.2/grid
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
[oracle@rac12db1 ~]$ vi .bash_profile
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
export ORACLE_BASE=/oracle/oraBase
export ORACLE_HOME=/oracle/12.1.0.2/database
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
Il faut aussi partitionner et formater le disque dur « virtuel » dédié à l’installation des moteur clusterware et database.
Avant de partitionner, vérifiez le device. Il ne faudrait pas se tromper maintenant:
[root@rac12db1 etc]# fdisk -l /dev/sdb
Disk /dev/sdb: 37.6 GB, 37580963840 bytes
[...]
La taille correspond et il n'est pas partitionner, alors :
[root@rac12db1 etc]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-4568, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-4568, default 4568):
Using default value 4568
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac12db1 etc]# vgcreate orabin_vg /dev/sdb1
[root@rac12db1 etc]# lvcreate -L 35000M -n lv_orabin orabin_vg
[root@rac12db1 etc]# mkfs.ext4 -m 0 /dev/orabin_vg/lv_orabin
[root@rac12db1 etc]# mkdir /oracle
[root@rac12db1 etc]# vi /etc/fstab
/dev/orabin_vg/lv_orabin /oracle ext4 defaults 0 2
[root@rac12db1 etc]# mount -a
[root@rac12db1 etc]# df -h /oracle
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/orabin_vg-lv_orabin
34G 48M 34G 1% /oracle
[root@rac12db1 etc]# mkdir -p /oracle/12.1.0.2/grid
[root@rac12db1 etc]# mkdir -p /oracle/12.1.0.2/database
[root@rac12db1 etc]# mkdir -p /oracle/oraBase
[root@rac12db1 etc]# mkdir -p /oracle/oraInventory
[root@rac12db1 etc]# chown -R grid:oinstall /oracle
[root@rac12db1 etc]# chown -R oracle:oinstall /oracle/12.1.0.2/database
Les disques partagés, les disques ASM
Ultime dernière étape avant le clonage, il faut présenter les disques qui seront partagés par les deux nœuds du RAC. Ce sont les disques qui seront utilisé par ASM pour stocker entre autre la base de données, mais aussi les voting disk et l’OCR (OLR/OCR/VOTING, kesako?).
Avant de les présenter, il faut les créer. Pour cela arrêtez la VM. Puis sous invite de commande Windows, placez-vous dans le répertoire où vous voulez que vos disques soient puis :
K:\VitualBOX\HardDisk\12cR1-RAC>
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename ocrvot1.vdi --size 8192 --format VDI --variant Fixed
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename ocrvot2.vdi --size 8192 --format VDI --variant Fixed
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename ocrvot3.vdi --size 8192 --format VDI --variant Fixed
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename data1_1.vdi --size 10240 --format VDI --variant Fixed
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename data1_2.vdi --size 10240 --format VDI --variant Fixed
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename data2_1.vdi --size 10240 --format VDI --variant Fixed
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename data2_2.vdi --size 10240 --format VDI --variant Fixed
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename fra_1.vdi --size 10240 --format VDI --variant Fixed
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename fra_2.vdi --size 10240 --format VDI --variant Fixed
Dans les commandes ci-dessus 3 disques de 8Go ont été créés. Ce sont les disques pour les OCR/Voting. Si jamais ne vous êtes en manque de place vous pouvez créer uniquement un seul disque mais de 11Go alors (je traiterai le cas lors de l’installation du clusterware). Et pour les disques DATA et FRA vous pouvez créer 1 seul disque de minimum 10-15Go.
Ensuite rattachez les disques la VM :
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC1 --storagectl "SATA" --port 2 --device 0 --type hdd --medium ocrvot1.vdi --mtype shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC1 --storagectl "SATA" --port 3 --device 0 --type hdd --medium ocrvot2.vdi --mtype shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC1 --storagectl "SATA" --port 4 --device 0 --type hdd --medium ocrvot3.vdi --mtype shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC1 --storagectl "SATA" --port 5 --device 0 --type hdd --medium data1_1.vdi --mtype shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC1 --storagectl "SATA" --port 6 --device 0 --type hdd --medium data1_2.vdi --mtype shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC1 --storagectl "SATA" --port 7 --device 0 --type hdd --medium data2_1.vdi --mtype shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC1 --storagectl "SATA" --port 8 --device 0 --type hdd --medium data2_2.vdi --mtype shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC1 --storagectl "SATA" --port 9 --device 0 --type hdd --medium fra_1.vdi --mtype shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC1 --storagectl "SATA" --port 10 --device 0 --type hdd --medium fra_2.vdi --mtype shareable
Rendez les disques partageables :
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd ocrvot1.vdi --type shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd ocrvot2.vdi --type shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd ocrvot3.vdi --type shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd data1_1.vdi --type shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd data1_2.vdi --type shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd data2_1.vdi --type shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd data2_2.vdi --type shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd fra_1.vdi --type shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd fra_2.vdi --type shareable
Démarrez alors la VM. Les nouveaux disques apparaissent alors dans le système. Identifiez-les. Ce sont tous les /dev/sd* qui n’ont pas de partition :
[root@rac12db1 dev]# ls sd*
sda sda1 sda2 sdb sdb1 sdc sdd sde sdf sdg sdh sdi sdj sdk
Partitionnez les un par un, une seule partition primaire sur les disques. C’est un peu fastidieux, alors si vous êtes confiant exécutez :
[root@rac12db1 dev]# ls /dev/sd* |grep -v sda |grep -v sdb | while read sdisk
do
echo "n
p
1
w
"|fdisk $sdisk
done
Les disques sont prêts pour ASMLib. Il faut donc maintenant installer et configurer ASMLib. ASMLib nécessite 3 packages : oracleasmlib, oracleasm-support et kmod-oracleasm.
Le problème en général est de trouver ces 3 rpm, tout est expliqué ici : http://www.oracle.com/technetwork/server-storage/linux/asmlib/ol6-1709075.html
Mais je vais vous expliquez comment les trouver et les installer :
kmod-oracleasm :
Si vous êtes sous Oracle Linux et que vous avez suivi pas à pas la procédure d’installation précédente alors kmod-oracleasm n’a pas besoin d’être installé, il est déjà installé, car vous avez booter sur le noyau Oracle Unbreakable Entreprise Kernel qui l’inclut.
Donc pour ceux qui sont en Oracle Linux 6.7 (non unbreakable), en RedHat 6.7 ou bien en CentOS 6.7, téléchargez le fichier kmod-oracleasm-2.0.8-6.el6_7.x86_64.rpm. Et si vous êtes en 6.6 : kmod-oracleasm-2.0.8-4.el6_6.x86_64.rpm et version antérieur kmod-oracleasm-2.0.6.rh1-2.el6.x86_64.rpm devrait faire l’affaire.
Ensuite l’installation avec rpm :
[root@rac12db1 ~]# rpm -Uvh kmod-oracleasm-2.0.8-6.el6_7.x86_64.rpm
oracleasmlib :
Si vous n'êtes pas sur Oracle Entreprise Linux il est accessible sur la page http://www.oracle.com/technetwork/server-storage/linux/asmlib/ol6-1709075.html, à l’heure de l’écriture de l’article c’est : oracleasmlib-2.0.12-1.el6.x86_64.rpm.
Sinon il est dans la distribution sur le DVD :
[root@rac12db1 UnbreakableEntrepriseKernel6.6]# pwd
/media/sf_Sources/ASMlib/UnbreakableEntrepriseKernel6.6
[root@rac12db1 UnbreakableEntrepriseKernel6.6]# rpm -Uvh oracleasmlib-2.0.12-1.el6.x86_64.rpm
Preparing... ########################################### [100%]
1:oracleasmlib ########################################### [100%]
oracleasm-support:
Si vous êtes sous Oracle Entrpise Linux, il suffit d’activer eth0 (internet) et lancer :
[root@rac12db1 ~]# yum install oracleasm-support.x86_64
Sinon si ce n’est pas le cas vous pouvez le trouver ici : http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/index.html. Puis avec rpm à vous de l’installer.
Remarque : Si vous êtes sous OL 7 ou RedHat 7 ou CentOS 7, vous sortez du cadre de l’article mais normalement pas de soucis la procédure devrait être la même pour ASMLib, le repository est alors http://public-yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/index.html
ASMLib est installé, il reste à le configurer :
[root@rac12db1 ~]# oracleasm configure -i
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting <ENTER> without typing an
answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
ASMLib est prêt pour s’approprier les disques et en faire des disques ASM.
[root@rac12db1 dev]#cd /dev
[root@rac12db1 dev]# fdisk -l |grep /dev/sd|grep -v sda |grep -v sdb|grep Disk
Disk /dev/sdc: 8589 MB, 8589934592 bytes
Disk /dev/sdd: 8589 MB, 8589934592 bytes
Disk /dev/sde: 8589 MB, 8589934592 bytes
Disk /dev/sdf: 10.7 GB, 10737418240 bytes
Disk /dev/sdg: 10.7 GB, 10737418240 bytes
Disk /dev/sdh: 10.7 GB, 10737418240 bytes
Disk /dev/sdi: 10.7 GB, 10737418240 bytes
Disk /dev/sdj: 10.7 GB, 10737418240 bytes
Disk /dev/sdk: 10.7 GB, 10737418240 bytes
Avant de labéliser les disques avec ASMLib, il faut retrouver quel disque et quel disque. Avec le résultat ci-dessus, on peut dire les 8Go sont ceux pour OCR/Voting et les 10Go pour DATA et FRA… et c’est tout.
Un peu laborieux mais pour vérifier que chaque disk sd* correspond bien au disk « physique virtuel » généré avec VirtualBox, voici une méthode :
[root@rac12db1 dev]# cd disk/by-id
[root@rac12db1 by-id]# ls -l |grep sd|grep -v sda|grep -v sdb|grep scsi |grep -v dm|grep part1
lrwxrwxrwx. 1 root root 10 Jan 31 17:17 scsi-SATA_VBOX_HARDDISK_VB34814a7e-1bbe6820-part1 -> ../../sdk1
lrwxrwxrwx. 1 root root 10 Jan 31 17:17 scsi-SATA_VBOX_HARDDISK_VB45fbb492-13c6e7d7-part1 -> ../../sde1
lrwxrwxrwx. 1 root root 10 Jan 31 17:17 scsi-SATA_VBOX_HARDDISK_VB73ea9bca-106a9114-part1 -> ../../sdd1
lrwxrwxrwx. 1 root root 10 Jan 31 17:17 scsi-SATA_VBOX_HARDDISK_VB7b373972-90349ce1-part1 -> ../../sdh1
lrwxrwxrwx. 1 root root 10 Jan 31 17:17 scsi-SATA_VBOX_HARDDISK_VB809432a6-80485107-part1 -> ../../sdj1
lrwxrwxrwx. 1 root root 10 Jan 31 17:17 scsi-SATA_VBOX_HARDDISK_VBaf8f7e52-fd6c5800-part1 -> ../../sdi1
lrwxrwxrwx. 1 root root 10 Jan 31 17:17 scsi-SATA_VBOX_HARDDISK_VBd9eed3f6-2298e9fc-part1 -> ../../sdc1
lrwxrwxrwx. 1 root root 10 Jan 31 17:17 scsi-SATA_VBOX_HARDDISK_VBfb912517-e582de48-part1 -> ../../sdf1
lrwxrwxrwx. 1 root root 10 Jan 31 17:17 scsi-SATA_VBOX_HARDDISK_VBff774b81-a7db9998-part1 -> ../../sdg1
Ensuite on compare avec le gestionnaire de média de VirtualBox :
Le disque /dev/sdj de correspond au disque fra_1.vdi.
Une fois les disques identifiés, démarrez oracleasm (il redémarrera seul au prochain reboot) et labelisez les disques :
[root@rac12db1 usr]# service oracleasm start
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
[root@rac12db1 usr]# oracleasm createdisk ocrvot1 /dev/sdc1
[root@rac12db1 usr]# oracleasm createdisk ocrvot2 /dev/sdd1
[root@rac12db1 usr]# oracleasm createdisk ocrvot3 /dev/sde1
[root@rac12db1 usr]# oracleasm createdisk data1_1 /dev/sdf1
[root@rac12db1 usr]# oracleasm createdisk data1_2 /dev/sdg1
[root@rac12db1 usr]# oracleasm createdisk data2_1 /dev/sdh1
[root@rac12db1 usr]# oracleasm createdisk data2_2 /dev/sdi1
[root@rac12db1 usr]# oracleasm createdisk fra_1 /dev/sdj1
[root@rac12db1 usr]# oracleasm createdisk fra_2 /dev/sdk1
Vérification:
[root@rac12db1 usr]# oracleasm listdisks
DATA1_1
DATA1_2
DATA2_1
DATA2_2
FRA_1
FRA_2
OCRVOT1
OCRVOT2
OCRVOT3
parfait! Le serveur est prêt pour le clonage.
Clonage serveur
Si vous n’avez pas envie de recommencer depuis le début pour créer le 2ème serveur du RAC alors clonez le !
Commencez par arrêter le premier serveur. Puis sous invite de commande Windows, placez-vous dans le répertoire où vous voulez que vos disques clonés soient générés :
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonehd 12cR1-RAC1-OS.vdi 12cR1-RAC2-OS.vdi
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonehd 12cR1-RAC1-oracle.vdi 12cR1-RAC2-oracle.vdi
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC2 --storagectl "SATA" --port 2 --device 0 --type hdd --medium ocrvot1.vdi --mtype shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC2 --storagectl "SATA" --port 3 --device 0 --type hdd --medium ocrvot2.vdi --mtype shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC2 --storagectl "SATA" --port 4 --device 0 --type hdd --medium ocrvot3.vdi --mtype shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC2 --storagectl "SATA" --port 5 --device 0 --type hdd --medium data1_1.vdi --mtype shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC2 --storagectl "SATA" --port 6 --device 0 --type hdd --medium data1_2.vdi --mtype shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC2 --storagectl "SATA" --port 7 --device 0 --type hdd --medium data2_1.vdi --mtype shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC2 --storagectl "SATA" --port 8 --device 0 --type hdd --medium data2_2.vdi --mtype shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC2 --storagectl "SATA" --port 9 --device 0 --type hdd --medium fra_1.vdi --mtype shareable
"K:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach 12cR1-RAC2 --storagectl "SATA" --port 10 --device 0 --type hdd --medium fra_2.vdi --mtype shareable
Dans la GUI de VirtualBox, il y a maintenant une nouvelle machine : 12cR1-RAC2. Elle est identique à 12cR1-RAC1 ce qui est bien sauf pour la configuration réseau. Démarrez 12cR1-RAC2 (12cR1-RAC1 ne doit pas être démarrée).
Première chose à faire, changer le hostname :
[root@rac12db1 ~]# cd /etc/sysconfig
[root@rac12db1 sysconfig]# vi network
HOSTNAME=rac12db2.localdomain
Les adresses MAC sur la nouvelle machine ne sont pas les mêmes que sur la première. Les fichiers de configuration des interfaces eth0, eth1 et eth2 sont erronés. Il faut les remettre d’aplomb.
[root@rac12db1 sysconfig]# ifconfig -a|grep HWadd
eth3 Link encap:Ethernet HWaddr 08:00:27:5C:F4:90
eth4 Link encap:Ethernet HWaddr 08:00:27:5E:38:10
eth5 Link encap:Ethernet HWaddr 08:00:27:47:5E:86
Normalement eth3 correspond à eth0, eth4 à eth1 et eth5 à eth2. Mais vérifiez dans la GUI de VirtualBox, dans l’exemple ci-dessous eth0 de la machine 12cR1-RAC2 a pour Adresse MAC 08:00:27:5C:F4:90 et donc eth3 correspond bien à eth0.
L'interface internet en NAT:
[root@rac12db1 sysconfig]# cd /etc/sysconfig/network-scripts
[root@rac12db1 network-scripts]# vi ifcfg-eth0
DEVICE=eth0
HWADDR=08:00:27:43:5D:77
TYPE=Ethernet
UUID=49b6a08d-32a9-4d11-bd80-a7b89776ec79
ONBOOT=no
NM_CONTROLLED=yes
BOOTPROTO=dhcp
devient
DEVICE=eth0
HWADDR=08:00:27:5C:F4:90
TYPE=Ethernet
ONBOOT=no
NM_CONTROLLED=yes
BOOTPROTO=dhcp
L'interface public:
[root@rac12db1 network-scripts]# vi ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
UUID=52bc5ffe-af1b-424e-adc1-c57611b1d8b8
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=08:00:27:63:63:5D
IPADDR=10.10.0.121
PREFIX=24
GATEWAY=10.10.0.1
DOMAIN=localdomain
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
devient
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=08:00:27:47:5E:86
IPADDR=10.10.0.122
PREFIX=24
GATEWAY=10.10.0.1
DOMAIN=localdomain
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
L'interface privé:
[root@rac12db1 network-scripts]# vi ifcfg-eth2
DEVICE=eth2
TYPE=Ethernet
UUID=8efc309f-c29b-4b9b-aae8-3fa69f755756
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=08:00:27:78:4B:EA
IPADDR=10.10.2.11
PREFIX=24
GATEWAY=10.10.2.1
DOMAIN=localdomain
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth2"
devient
DEVICE=eth2
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=08:00:27:5E:38:10
IPADDR=10.10.2.12
PREFIX=24
GATEWAY=10.10.2.1
DOMAIN=localdomain
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth2"
Rebootez rac12db2 qui s’appelle encore rac12db1 jusqu’à son prochain démarrage:
[root@rac12db1 usr]# init 6
Et démarrez la machine 12cR1-RAC1.
Sur les 2 machines faites un "ifconfig -a" pour vérifier que les interfaces eth1 sur les 2 serveurs correspondent bien à l’interface public et eth2 à l’interface privée. Il ne faut pas que par exemple : eth1 soit la public sur le premier nœud et eth1 soit l’interface privée sur le deuxième nœud.
Désactiver alors eth0 sur rac12db2 et sur rac12db1 si ce n’est pas déjà le cas.
Vérifiez que des 2 serveurs vous pouvez pinger toutes les adresses :
ping rac12db1-priv
ping rac12db2-priv
ping rac12db2
ping rac12db1
Installation du clusterware Grid Infrastructure
Déposez les sources grid dans le répertoire partagé sur votre machine hôte (windows ou linux) précédemment définit. Puis à partir du serveur invité rac12db1 décompressez directement le fichier vers lui-même dans /oracle/tmp par exemple.
[root@rac12db1 12cgrid]# pwd
/media/sf_Sources/12c/12cgrid
[root@rac12db1 12cgrid]# unzip p21419221_121020_Linux-x86-64_5of10.zip -d /oracle/tmp_install
[root@rac12db1 12cgrid]# unzip p21419221_121020_Linux-x86-64_6of10.zip -d /oracle/tmp_install
Installez le package cvuqdisk fournit dans la distribution en tant que root et cela sur les 2 serveurs:
[root@rac12db1 rpm]# pwd
/oracle/tmp_install/grid/rpm
[root@rac12db1 rpm]# scp cvuqdisk-1.0.9-1.rpm rac12db2:/tmp
[root@rac12db1 rpm]# rpm -Uvh cvuqdisk-1.0.9-1.rpm
[root@rac12db1 rpm]# ssh rac12db2
[root@rac12db2 rpm]# cd /tmp
[root@rac12db2 tmp]# rpm -Uvh cvuqdisk-1.0.9-1.rpm
L’installateur peut être lancé :
[root@rac12db1 ~]$ cd /oracle/tmp_install
[root@rac12db1 tmp_install]$ chown -R oracle.oinstall grid
[root@rac12db1 tmp_install]$ su - grid
[grid@rac12db1 ~]$ cd /oracle/tmp_install/grid
[grid@rac12db1 grid]$ ./runInstaller
Choisissez Install and Configure Oracle Grid Infrastructure for Cluster
puis Next |
|
Choisissez Configure a Standard cluster
puis Next |
|
Choisissez Advanced Installation
puis Next |
|
Je conseille de laisser par défaut, la langue de Shakespeare uniquement. Si vous y tenez, vous pouvez rajouter la langue de Molière ou tout autre langue comme celle de Goethe.
puis Next |
|
Remplissez comme dans la capture d’écran les 3 premiers champs. Décochez Configure GNS.
puis Next |
|
1- cliquez sur Add 2- remplissez le public et virtual hostname correspndant au deuxième noeud 3- cliquez sur OK |
|
1- cliquez sur SSH connectivity 2- renseignez le mot de passe du compte grid 3- cliquez sur Setup 4- la GUI paramètre alors le ssh equivalence entre les 2 comptes grid, et cliquez sur ok quand cela est finit. |
|
Next | |
1- Choisissez Public pour l'interface eth1 2- Choisissez Private pour l'interface eth2 remarque : à adapter si vous n'avez pas suivi à la lettre l'article lors de l'installation.
puis Next |
|
Use Standard ASM for storage
puis Next |
|
1- Choisissez un nom parlant pour le diskgroup qui va contenir les OCR/Voting 2- Si vous avez suivi à la lettre la création des disques ASM, laissez Redundacy sur Normal et cochez les 3 disques ORCL :OCRVOT*. 2bis- Si vous n’avez créé qu’un seul disque pour les OCR/Voting, cochez External et cochez le disque en question.
puis Nect |
|
Choisissez le mot de passe pour SYS et ASMSNMP
puis Next |
|
Do not use....
Puis Next |
|
Ne cochez pas Register.... sauf si vous avez déjà un OEM dans votre réseau et que vous voulez enregisrté le cluster dessus.
puis Next |
|
Next | |
Oracle base et Software location sont pré-remplit avec les bons path (variable environnement de grid).
puis Next L’installateur vous avertit alors que le path Oracle base est à l’extérieur du path de Oracle home. Validez.
|
|
Next | |
Déchochez Automatatically run configuration scripts
Puis Next |
|
4 prérequis sont non remplis. Physical Memory: Oracle veut 4Go de mémoire physique de libre, or il y a 4Go de mémoire physique totale moins ce qui est pris par l’OS. Oracle fera avec !
NTP: Il est très très important que les 2 nœuds du cluster soient synchronisés. Ici NTP n’est pas configuré car les 2 serveurs sont forcément synchronisés ils prennent l’heure de la machine hôte.
Resolv.conf: oui normal. Pas de DNS
DNS /NIS: oui normal. Pas de DNS tout est static ici
Donc cochez Ignore All Puis Next |
|
Next | |
Patience... | |
Alors cette fenêtre signifie d'exécuter dans l'ordre les commandes ci-dessous et de les exécuter uniquement quand la précédente est fini. [root@rac12db1 ]# /oracle/oraInventory/orainstRoot.sh [root@rac12db2 ]# /oracle/oraInventory/orainstRoot.sh [root@rac12db1 ~]$ /oracle/12.1.0.2/grid/root.sh La commande doit se finir par :CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded C'est normal qu'elle mette du temps à s'exécuter. [root@rac12db2 ~]$ /oracle/12.1.0.2/grid/root.sh La commande doit se finir par :CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded
Alors maintenant vous pouvez cliquez sur OK |
|
Patience... | |
Erreur sur le Verify Cluster... pas de soucis. L'analyse du log indique des choses que l'on sait déjà ... INFO: All nodes have same "hosts" entry defined in file "/etc/nsswitch.conf" |
|
Next | |
Close |
Vérifiez que tout est dans est STABLE :
[grid@rac12db1 ~]$ crsctl status res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DG_OCRVOT.dg
ONLINE ONLINE rac12db1 STABLE
ONLINE ONLINE rac12db2 STABLE
ora.LISTENER.lsnr
ONLINE ONLINE rac12db1 STABLE
ONLINE ONLINE rac12db2 STABLE
ora.asm
ONLINE ONLINE rac12db1 STABLE
ONLINE ONLINE rac12db2 Started,STABLE
ora.net1.network
ONLINE ONLINE rac12db1 STABLE
ONLINE ONLINE rac12db2 STABLE
ora.ons
ONLINE ONLINE rac12db1 STABLE
ONLINE ONLINE rac12db2 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE rac12db1 STABLE
ora.MGMTLSNR
1 ONLINE ONLINE rac12db1 169.254.168.172 10.10.2.11,STABLE
ora.cvu
1 ONLINE ONLINE rac12db1 STABLE
ora.mgmtdb
1 ONLINE ONLINE rac12db1 Open,STABLE
ora.oc4j
1 ONLINE ONLINE rac12db1 STABLE
ora.rac12db1.vip
1 ONLINE ONLINE rac12db1 STABLE
ora.rac12db2.vip
1 ONLINE ONLINE rac12db2 STABLE
ora.scan1.vip
1 ONLINE ONLINE rac12db1 STABLE
--------------------------------------------------------------------------------
Remarque : Grosse nouveauté par rapport à la 11gR2, il y a une base de donnée en plus des instances +ASM1 et +ASM2. La base de données se nomme -MGMTDB, cela explique les 11Go nécessaire pour les diskgroup OCT/Voting au lieu des 1Go en 11gR2.
[winroc@rac12db1 ~]$ ps -ef |grep pmon
grid 7877 1 0 20:13 ? 00:00:00 mdb_pmon_-MGMTDB
grid 30347 1 0 19:59 ? 00:00:00 asm_pmon_+ASM1
Maintenant vous pouvez créer les diskgroups ASM :
[grid@rac12db1 grid]$ asmca
Remarque : Dans la capture d’écran animé ci-dessus les diskgroups DG_DATA1 et DG_DATA2 sont créés en redundancy NORMAL (miroring) alors que le diskgroup DG_FRA en redundacy EXTERNAL. Donc DG_DATA1 et DG_DATA2 font 10Go chacun pour 20Go de disque ASM alors que DG_FRA fait 20Go pour 20Go de disque. DG_DATA1 et DG_DATA2 peuvent perdre un disque chacun sans que des données soient perdues alors que DG_FRA est entièrement perdu dès qu’un de ses disques est perdu.
Installation du moteur Oracle Database RAC
Déposez les sources oracle dans le répertoire partagé sur votre machine hôte (windows ou linux) précédemment définit. Puis à partir du serveur invité rac12db1 décompressez directement le fichier vers lui-même dans /oracle/tmp par exemple et lancez l'installation:
[root@rac12db1 12cEE]# unzip p21419221_121020_Linux-x86-64_1of10.zip -d /oracle/tmp_install/
[root@rac12db1 12cEE]# unzip p21419221_121020_Linux-x86-64_2of10.zip -d /oracle/tmp_install/
[root@rac12db1 12cEE]# cd /oracle/tmp_install/
[root@rac12db1 tmp_install]# chown -R oracle.oinstall database
[root@rac12db1 tmp_install]# chmod g+w /oracle/oraBase/
[root@rac12db2 tmp_install]# chmod g+w /oracle/oraBase/ ### sur le 2eme noeud
[root@rac12db1 tmp_install]# cd /oracle/tmp_install/database
[root@rac12db1 tmp_install]# ./runInstaller
Décochez "I wish to receive..." puis Next Apparait alors la fenêtre ci-dessus, cliquez sur Yes |
|
Sélectionnez "Install database software only"
puis Next |
|
1- Cliquez sur "SSH connectivity" 2- Renseignez le mot de passe de oracle 3- Cliquez sur "Setup" 4- Attendez le message "Successfully..." 5- OK et Next |
|
Je conseille de laisser par défaut, la langue de Shakespeare uniquement. Si vous y tenez, vous pouvez rajouter la langue de Molière ou tout autre langue comme celle de Goethe. (je radote)
puis Next |
|
Next | |
Next
Oui vous êtes sûr (YES) |
|
Si vous avez suivi mes conseils de création de groupe alors tout par défaut
Next |
|
Même remarque que pour l'installation du grid précédemment fait.
Next |
|
Next | |
[root@rac12db1 oracle]# /oracle/12.1.0.2/database/root.sh [root@rac12db2 oracle]# /oracle/12.1.0.2/database/root.sh |
|
Close |
Vous pouvez maintenant créer votre base de données en RAC avec dbca :
[oracle@rac12db1 ~]$ dbca
Je vous laisse là, votre banc de test est prêt.
{jcomments on}