Oracle ASM RAC

Oracle ASM RAC jpp

Plusieurs articles sur Oracle avec installation et tests de ASM et RAC.

Ces articles seront suivis de quelques tests.

Installation machine Oracle 11G (XEN)

Installation machine Oracle 11G (XEN) jpp

Ce chapitre présente l'installation sous XEN d'une machine destinée à une installation de oracle11G.

La machine virtuelle XEN est dotée de :

  • 1 CPU
  • 3072 Mo de RAM
  • 1 disque système de 16G
  • 1 disque données de 40G
  • 1 interface réseau

Le chapitre est divisé en plusieurs parties :

  • Installation du Linux Oracle
  • Installation des pré-requis
  • Installation de Oracle

 

Xen : Installation d'un Linux Oracle

Xen : Installation d'un Linux Oracle jpp

J'ai décidé d'installer une base ORACLE 11g pour ma formation personnelle et au passage de tester l'installation de la version "Oraclisée" de Linux en 64 bits. 
Après téléchargement de la version 5.4 (# 4Go) et préparation d'une machine virtuelle :

  • 2 processeurs
  • Ram 3 Go
  • Disque : un disque "système" de 16Go, un autre disque sera créé par la suite pour les données Oracle. 
    Ce disque est partitionné comme suit :

hda1 /boot 512Mo 
hda2 LVM de 16,5Go divisé comme suit : 
VOL00 / 12 Go 
VOL01 swap 4 Go

Le fichier de description de cette machine virtuelle est attaché.

Au lancement de la machine le premier écran de boot s'affiche : 
 

Dans lequel je préfère prendre l'option "linux text" pour ne pas avoir de bugs d'affichage. 
Après le lancement la procédure d'installation s'enchaine :

  • Premier écran (ECRAN_001.png) choisir l'installation en mlode texte pour ne pas avoir de surprises.
  •  "CD Found"  (vérification du CD) ressemble comme deux gouttes d'eau à  celui de RedHat : on teste le CD pour vérifier son bon chargement, cela prends un peu de temps, mais cela rassure. 
    La vérification est bonne --> OK.
  • Ecran "Media check" : on n'a pas d'autre source d'installation --> Continue
  • Ecran "Language Selection" --> French
  • Ecran "Selection de clavier" --> fr-latin1
  • Ecran "Type de partitionnement" --> Supprimer les partitions ... sur le seul disque connu "/dev/hda". 

  • Ecran "Avertissement", Oui on écrase le disque et on Continue
  • Ecran "Examiner la structure de partitionnement" --> Oui
  • Ecran "Partitionnement" l'écran propose Swap à  5Go et Data à 11 Go en LVM, je prefère un swap à  4Go seulement. Je modifie la taille du swap et automatiquement la taille des DATA passe à  12Go. 
    Je valide le tout --> OK
  • Ecran  "Configuration du chargeur de démarrage" --> on utilise GRUB --> OK
  • Ecran  "Configuration du chargeur de démarrage" --> pas de forçage de LBA32 --> OK
  • Ecran "Configuration du chargeur de démarrage" --> pas de mot de passe GRUB --> OK
  • Ecran "Configuration du chargeur de démarrage" --> on utilise le seul volume dsponible --> OK
  • Ecran "Configuration du chargeur de démarrage" --> laisser l'éiquette standard --> OK
  • - "Configuration du chargeur de démarrage" --> on installe sur "/dev/hda" (MBR) --> OK
  • Ecran "Configurer l'interface réseau" --> OUI
  • Ecran "configuration réseau de eth0" --> Activer au démarrage, IPV4 seul --> OK
  • Ecran "Configuration IPV4 pour eth0" --> Configuration adresse manuelle, fournir l'adresse/masque --> OK

  • Ecran  "Divers paramètres de réseau" --> Passerelle, DNS primaire et secondaire --> OK
  • Ecran  "Configuration du nom d'hôte" : "Manuellement" + nom machine --> OK
  • Ecran "Sélection du fuseau horaire" --> Europe/Paris --> OK
  • Ecran "Mot de passe root" --> mot de passe + confirmation --> OK

L'installation se lance et propose un premier niveau de personnalisation de la machine 
 
 --> on sélectionne "Développement Logiciel" pour disposer des compilateurs et "Personalisation de la sélection des logiciels".

  • Ecran "Package group Selection" : Sélectionner 
  1. "Bibliothèques de développement",
  2. "Environnement de bureau Gnome",
  3. "Internet Graphique",
  4. "Outils d'administration",
  5. "Outils de configuration de serveur",
  6. "Outils de développement",
  7. "Outils système",
  8. "Système X Window",
  9. "Editeurs" 
    --> OK

L'installation débute alors réellement ...  un écran de rappel vous signale que le log de l'installation sera disponible dans /root/install.log --> OK. 
Et c'est enfin parti pour formater le disque et installer les paquetages : 
 

Après une quinzaine de minutes l'instant tant attendu : 
  

On redémarre le système (c'est un noyau 2.6.18), au bout d'une dizaine de secondes un écran de post installation apparait, il faut se dépêcher de configurer les services .... 
 
Par défaut au bout de 10 secondes le login apparaît à son tour. 
Un premier test : le réseau est OK, la machine est accessible par ssh. 
Mince, aucun écran graphique n'est disponible, le serveur X n'est pas configuré ou pas lancé. 
On redémarre pour voir le premier écran de config : 
Il permet de sélectionner les services à activer/désactiver, mais toujours pas d'interface graphique ! 
Le script de lancement de "gdm" n' pas été installé (??), j'en fabrique donc un petit et le lancement de mon script est concluant, l'accès XWindow fonctionne. 
Mais seulement en 600x480, c'est un peu petit, après un petit tour dans le fichier /etc/X11/xorg.conf et un "stop/start" de mon petit script l'accès en 1024x768 est OK. C'est beaucoup plus confortable. 
Après la mise en place des gadgets indispensables dans les panels Gnome je stoppe la machine pour en sauvegarder l'état.

XEN : Oracle 11gr2 avec ASM

XEN : Oracle 11gr2 avec ASM jpp

Cet article a pour but de présenter une installation plus "perfectionnée" utilisant les dernières nouveautés (en fait ASM pour Automatic Storage Management date de la 10g) mais l'installation et la gestion en sont plus simples et mieux intégrées dans cette nouvelle version.

Pour plus de détails sur ASM voir les documentations Oracle où on peut trouver beaucoup de choses.

Le système de base sera un système Linux Oracle (image disque copiée de l'image "de base" d'installation) cf article : "installation d'un linux Oracle".

La configuration disques prévue est la suivante :

  • Disque système de 16Go
  • Disque "DATA" de 10Go
  • Disque "RECO" de 10Go

En effet Oracle propose de définir par défaut deux groupes de disques séparés :

  • Un pour les données
  • L'autre pour les éléments liés à la sécurité (double des "redo logs", fichiers "archivelog", sauvegardes de la base par RMAN.

Nous n'utiliserons pas, dans un premier temps, la possibilité offerte par ASM de gérer lui même la redondance des données, ce qui explique la présence de seulement deux disques de données. Dans une phase ultérieure on reconfigurera cette machine avec 4 disques de données pour pouvoir jouer avec la redondance et les "disk failure groups".

En ne mettant pas tous ses oeufs dans le même panier on garantit mieux la pérénité de sa base, par défaut un exemplaire du "controlfile" est créé dans chacun des groupes.

En regardant d'un peu plus près ASM donne à l'administrateur de la base de données (le "DBA") beaucoup plus de pouvoirs sur le fonctionnement gobal de la base de données en lui permettant de contrôler l'ensemble de la chaine de gestion depuis le stockage des données sur les disques jusqu'à leur délivrance aux utilisateurs.

Mais qui dit plus de pouvoirs dit aussi plus de responsabilité car il devra aussi assurer :

  • La sécurité de ces données par divers moyens dont la redondance,
  • La rapidité des traitements par le stripping des fichiers de données.
  • La résistance aux pannes par une distribution réfléchie des disques sur les contrôleurs
  • La "scalabilité" par les bases de données multi-instances (RAC chez Oracle)
  • ...

Il va falloir que le DBA assimile de nouvelles techniques, de nouvelles contraintes pour garantir l'accès aux données.

Cette installation sera divisée en cinq parties :

  • Mise en place des pré-requis.
  • Mise e place de la partie ASM (partie de "grid").
  • Chargement du logiciel base de données
  • Création de la base de données.elle même
  • Finalisation de l'installation

Oracle 11gR2 : création de la base de données

Oracle 11gR2 : création de la base de données jpp

Pour créer la base de données l'utilisation de l'assistant "dbca" est conseillée. 
La base n'étant pas encore créée le "ORACLE_HOME" n'existe pas encore il nous faut donc "forcer" l'utilisation du "bon" (/opt/oracle/product/11.2.0/dbhome_1) lors de l'appel à "oraenv" :

. oraenv ORACLE_SID = [oracle] ? 
ORACLE_HOME = [/home/oracle] ? /opt/oracle/product/11.2.0/dbhome_1 
The Oracle base for ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1 is /opt/oracle

On vérifie par :

echo $PATH 
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin:/opt/oracle/product/11.2.0/dbhome_1/bin

C'est OK, on peut lancer la commande "dbca", l'écran initial de OUI est à passer pour arriver au premier écran de l'installation :

  • Premier écran "Sélectionner le type d'opération", on coche évidemment  "Créer une base de données".

  • Deuxième écran on coche "Bd généraliste...".
  • Troisième écran "Nom de la base de données", le "nom global" sera "orcl.toto.fr", le SID sera automatiquement mis à "orcl".

  • Quatrième écran : "Options de gestion", on coche "Configurer Entreprise Manager", "Configurer Database Control pour la gestion locale". Sur l'onglet "Taches de maintenance automatique " bien cocher "Activer les tâches de maintenance automatiques".
  • Cinquième écran "Information d'identification" pour simplifier utiliser le même mot de passe pour tous les comptes

  • Sixième écran "Emplacement des fichiers", c'est là qu'il faut sélectionner le choix "Automatic Storage Management" pour le type de stockage et cocher "utiliser Oracle Managed Files (OMF) ,

cliquer ensuite "Parcourir" pour sélectionner la "zone de base de données". Comme nous avons choisi "ASM" la boite de sélection des groupes de disques s'ouvre et nous sélectionnons notre groupe "DATA" 
 
Nous pouvons ensuite passer à la suite.

  • Septième écran : on nous demande le mot de passe de ASMSNMP (ne pas l'oublier !) qu'il faut fournir avant de continuer sur la "configuration de la récupération" (Flash-recovery ou Fast-recovery). Il faut cocher "Indiquer la zone de récupération rapide" et saisir "+RECO" pour le nom de la zone (ou cliquer "Parcourir" pour ré-ouvrir la boite de choix des groupes de disques) et laisser la taille proposée. Vous pouvez dès maintenant activer l'archivage (comme sur une "vraie" base).
  • Huitième écran : cocher "exemples de schémas" pour bénéficier et SCOTT/TIGER et autres HR/HR, laisser tranquille l'onglet "Scrips personnalisés".
  • Neuvième écran "Parametres d'initialisation", Onglet "Mémoire" : 
    mettre la Taille de la SGA vers 500 Mo, 
    cochez "Utilisez la gestion automatique de la mémoire". 
    Onglet "Dimensionnement" : la taille de bloc est figée à 8192 octest (conséquence de notre choix du modèle), réduire le nombre de processus à 100. 
    Onglet "Jeu de caractères" : c'est très important en production, ici on coche "Utiliser Unicode (AL32UTF8) et on laisse tel quel le "Jeu de caractère National", on positionne la langue par défaut à "Français" et le territoie par défaut à "France" (je suis un peu chauvin !). 
    Onglet "Mode de connection" : on coche mode serveur dédié car on ne compte pas avoir 3000 utilisateurs connectés.
  • Dixième écran : "Stockage de la base de données" : on vérifie que tout est OK sur nos disques ASM, en principe rien à toucher pour nos tests.
  • Sur l'écran suivant (le dernier) on coche "Générer les scripts de création de la base de données" pour pouvoir s'instruire plus tard et on clique "Terminer".

Le récapitulatif de notre paramétrage s'affiche 
 
Il est de bon ton de le vérifier, et même de 'enregistrer au format HTML pour historique, avant de confirmer. 
La création de la base démarre ensuite et est assez longue car il y a

  1. du boulot
  2. pas mal d'IO).

Selon l'heure un café ou une tisane peuvent être bienvenus. 
Pour finir un petit "Recap" des actions s'affiche, il rappelle notament l'adresse et le port à utiliser pour l'accès à la console d'admin (en https maintenant). 

on peut depuis cet écran aller "activer" certains utilisateurs (SCOTT/TIGER par exemple en confirmant ce mot de passe qui ne répond pas aux normes !), mais on pourra le faire plus tard par l'intérmédiaire de la consle d'administration.

Remarques : - pour la gestion des autorisations il faudrait, sur une base réelle, être beaucoup plus "fins" et créer différents groupes au niveau du système afin de pouvoir déléguer un certain nombre de tâches "administratives" (stop/start des instances par exemple, à des personnes n'ayant pas à disposer d'autres droits d'administrateur. 
Ceci est particulièrement vrai pour les privilèges "oper" destinés aux opérateurs qui doivent au moins pouvoir arrêter et démarrer la base.

. - La version 11gR2 intègre "Oracle restart" qui permet de démarrer et de stopper les éléments en respectant l'ordre des dépendances :  
- Asm doit avoir un "listener" pour fonctionner, 
- la base a besoin d'Asm pour démarrer ...

Oracle restart se commande en ligne de commande par "srvctrl (start|stop|status) (database|asm...) ..... 
Pour finir vérifions que tout est OK :

. oraenv 
ORACLE_SID = [orcl] ? orcl  
The Oracle base for ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1 is /opt/oracle

et on lance le test final

sqlplus scott/tiger 
SQL*Plus: Release 11.2.0.1.0 Production on Wed Feb 17 02:36:07 2010 
Copyright (c) 1982, 2009, Oracle. All rights reserved. 
Connecte a : Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options 
SQL> select table_name from user_tables; 
TABLE_NAME ------------------------------ 
SALGRADE 
BONUS 
EMP 
DEPT

SQL> exit

Deconnecte de Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options

Tout baigne ... on va pouvoir lancer la console https:127.0.0.1:1158/em et après un "echec de la connexion sécurisée" et l'ajout d'une exception dans Firefox pour accepter le certificat voici la merveilleuse console d'administration : 

Xen : finalisation installation Oracle 11g

Xen : finalisation installation Oracle 11g jpp

Pour finaliser l'installation de Oracle 11G il faut effectuer quelques ajustements :

  • Modifier le fichier "/etc/oratab"
  • Mettre en place les bonnes variables lors du login.
  • Corriger deux scripts (dbstart et dbshut)

Le fichier /etc/oratab doit être légèrement modifié, il s'agit juste de déclarer notre base de données fonctionnelle en remplaçant un "N" par un "Y" :

# Multiple entries with the same $ORACLE_SID are not allowed. 
# 
# 
ORA11G64:/home/oracle/app/oracle/product/11.2.0/dbhome_1:Y

Mettre en place les "bonnes" variables lors du login :

Pour réaliser cette opération nous allons créer un petit fichier "/etc/default/oracle" contenant les déclarations de variables, celui-ci pourra être déclenché lors du login des utilisateurs ayant besoin d'un accès à Oracle par un appel dans le fichier ".bashrc". Ce petit fichier contiendra pour nous :

ORACLE_BASE=/home/oracle/app/oracle 
ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1 
export ORACLE_BASE ORACLE_HOME 

PATH=$PATH':'$ORACLE_HOME'/bin' 
ORACLE_SID=ORA11G64 
export ORACLE_SID 

ORACLE_TERM=xterm 
LD_LIBRARY_PATH=$ORACLE_HOME/lib':/lib:/usr/lib' 
CLASSPATH=$ORACLE_HOME'/JRE:'$ORACLE_HOME'/jlib:'$ORACLE_HOME'/rdbms/jlib' 
ORATAB=/etc/oratab 
export ORACLE_TERM LD_LIBRARY_PATH ORATAB CLASSPATH

Le fichier ".bashrc" de "oracle" sera modifié comme suit :

# .bashrc 
# Source global definitions 
if [ -f /etc/bashrc ]; then 
. /etc/bashrc 
fi 
. /etc/default/oracle 

# User specific aliases and functions

La ligne en rouge est à ajouter. Il faut ensuite se déconnecter, se reconnecter et vérifier que les variables "ORACLE_..." sont bien en place, ici : 

env | grep ORACLE 
ORACLE_SID=ORA11G64 
ORACLE_BASE=/home/oracle/app/oracle 
ORACLE_TERM=xterm 
ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1 
Aller modifier les scripts "dbshut" et "dbstart" situés dans $ORACLE_HOME/bin pour y ajouter une ligne qui permettra au "listener" de démarrer tranquillement sans besoin 'avoir recours à "lsnrctl start" systématiquement ou à " dbstart|dbshut $ORACLE_HOME ".

  • dbstart. 
    79 # First argument is used to bring up Oracle Net Listener 
    80 ORACLE_HOME_LISTNER=$1 
    81 ORACLE_HOME_LISTNER=$ORACLE_HOME 
    Ajouter la ligne en rouge et supprimer la précédente si vous voulez ...
  • dbshut 
    49 # The this to bring down Oracle Net Listener 
    50 ORACLE_HOME_LISTNER=$1 
    51 ORACLE_HOME_LISTNER=$ORACLE_HOME 
    Ajouter la ligne en rouge et supprimer la précédente si vous voulez ...

Les numéros de lignes sont valables pour ma version seulement .... 
On peut alors utiliser la commande qui lance la base de données :

dbstart 
Processing Database instance "ORA11G64": log file /home/oracle/app/oracle/product/11.2.0/dbhome_1/startup.log 
Et c'est parti, la base de données est activée, la preuve :

sqlplus system 

SQL*Plus: Release 11.2.0.1.0 Production on Fri Feb 12 16:15:14 2010 

Copyright (c) 1982, 2009, Oracle. All rights reserved. 

Enter password: 

Connected to: 
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production 
With the Partitioning, OLAP, Data Mining and Real Application Testing options 

SQL>exit

Si vous voulez, en plus, l'accès par le web à la console Oracle il faudra lancer la commande :

emctl start dbconsole

Qui devrait vous renvoyer quelque chose comme : 
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0 
Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved. 
https://k2000-ora64.jpp.fr:1158/em/console/aboutApplication 
Starting Oracle Enterprise Manager 11g Database Control .......... started. 
------------------------------------------------------------------ 
Logs are generated in directory /home/oracle/app/oracle/product/11.2.0/dbhome_1/k2000-ora64.jpp.fr_ORA11G64/sysman/log

Et vous permettre d'accéder au nirvana des DBA, grâce à un "https://serveur:1158/em" : 

That's all folk.