ASM : plus loin vers RAC
ASM : plus loin vers RAC jppPour aller plus loin avec ASM la machine "simple" créée précédemment permet de se familiariser avec ASM mais ne permet pas d'essayer des choses que l'on pourrait faire avec une "grosse" machine, ni de tester les possibilités de RAC. Pour réaliser cet essai Xen va me permettre de simuler une machine d'enfer :
- 10 disques dont 9 de données
- 2 processeurs ( seulement sniff...)
- 3 Go de RAM ( seulement re sniff ...)
L'installation sera faite progressivement en partant des pré-requis, tout ceci sera simplifié par la ré-utilisation de l'image du Linux d'Oracle déjà utilisée. Le tout présenté en cinq phases :
- Mise en place des pré-requis
- Installation de ASM complet pour RAC
- Finalisation ASM + cluster
- Installation de la base de données
- Tests
Note : il existe des différences avec l'installation de ASM "simple", elle ne sont que faibles et dues à la gestion supplémentaire d'un "cluster".
Rappel : voir la doc Oracle ici et pour le détail des commandes de "asmcmd" allez voir là, ces docs sont, bien sûr, en anglais, la langue de ceux qui ignorent qu'il existe d'étranges individus dont la langue maternelle n'est pas l'anglais.
ORACLE pré-requis pour ASM
ORACLE pré-requis pour ASM jppL'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.
ASM RAC : installation ASM et cluster
ASM RAC : installation ASM et cluster jppComme d'habitude se rendre dans le répertoire où le logiciel a été décompressé, ici sur un montage Samba et lancer la commande "./runInstaller.sh" qui démarre l'installeur "OUI". Après quelques contrôles et un certain temps la fenêtre de "OUI" s'ouvre.
Ouvrir un terminal "root" en ssh sur la machine, cela va servir !
Ecran 1 "Option d'installation", cocher "Installer ... pour un cluster, comme cela on pourra plus tard tenter le RAC puisque un "cluster" d'une seule machine ne mérite guère son nom !
Ecran 2 "Type d'installation", cocher "Installation Standard"
Ecran 3 : "Configuration du cluster", garder les noms proposés (toute la partie réseau a été préparée pour cela).
a) Il faut identifier les interfaces réseau, "eth0" en "public" et "eth1" en "privé".
b) paramétrer la connexion ssh en la configurant puis en testant
Ecran 4 : "Emplacement d'installation", Il faut (terminal "root" que vous avez déjà ouvert) créer le répertoire "11.2.0" dans /opt et faire un "chown oracle:dba 11.2.0", le rouge de la zone disparait alors par miracle.
Il faut sélectionner "Automatic Storage Management" pour le "type de stockage...". Il faut aussi donner le mot de passe de "SYSASM" (c'est "dieu le père", l'équivalent du user "SYS" pour la base de données), ne pas perdre ce mot de passe ! Je sélectionne "dba" pour le groupe "OSASM".
Mon mot de passe n'entre pas dans les règles il me faut donc confirmer, on voit d'ailleurs la zone en jaune sur l'écran.
Ecran 5 : "Groupes de disque ASM", on ne crée ici que le groupe initial, on l'appelera "DATA" pour rester dans le standard. Cocher la redondance "externe" car un seul disque est réservé (je m'en fous c'est un RAID0 !à. Après avoir "modifié l chemin de repérage"
on voit apparaître notre premier disque, rappelez vous celui réservé sur /dev/hdb1 en dehors de notre future "batterie" de disques. On sélectionne le disque "candidat".
Ecran 6 : "Créer un inventaire", créer (terminal "root") le répertoire "/opt/oraInventory" et executer "chown oracle:dba oraInventory" et faire immédiatement "Suivant".
Ecran 7 : "Vérification des pré-requis", si rien ne cloche il ne devrait pas y avoir de problèmes et l'écran "Récapitulatif" s'affiche :
Et on clique "Fin" pour que cette N...! de machine se mette sérieusement à bosser et que je puisse aller déguster mon café :
Enfin arrive le moment des scripts "root" (dans le beau terminal que vous avez ouvert) :
- /opt/oraInventory/orainstRoot.sh
- /opt/11.2.0/grid/root.sh
Le premier est une simple formalité, le deuxième est beaucoup plus importat (et long) car il configure réellement le "cluster".
./orainstRoot.sh
Modification des droits d'accès de /opt/oraInventory.
Ajout de droits d'accès en lecture/écriture pour le groupe.
Suppression des droits d'accès en lecture/écriture/exécution pour le monde.
Modification du nom de groupe de /opt/oraInventory en oracle.
L'exécution du script est terminée. Pas bavard et court ! Il n'en pas de même pour le suivant :
/root.sh 2>&1 | tee ROOT.LOG
Running Oracle 11g root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /opt/11.2.0/grid
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Après l'appui sur "Entrée" il se passe des choses (prévoir un deuxième café ou une petite promenade) ... la suite du listing en fichier attaché pour information.
Après appui sur OK c'est reparti :
pour le final (une minute!).Et c'est l'instant tant attendu :
Après fermeture de la session X "oracle" il y a 41 processes qui tournent sous le user "oracle" !
L'étape suivante est : une bonne sauvegarde avant d'aller plus loin suivi d'un redémarrage pour vérifier que tout est toujours en place.
Au redémarrage, les disques sont toujjours là (et attribués à "oracle"), et nous pouvons remarquer que la machine est dotée de deux pseudo interfaces réseau supplémentaires et qu'elle répond bien aux noms supplémentaires préparés :
- k2000-ora65-vip
ping -c1 k2000-ora65-vip
PING k2000-ora65-vip.jpp.fr (192.168.1.150) 56(84) bytes of data.
64 bytes from k2000-ora65-vip.jpp.fr (192.168.1.150): icmp_seq=1 ttl=64 time=0.038 ms
--- k2000-ora65-vip.jpp.fr ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.038/0.038/0.038/0.000 ms - k2000-o-cluster
ping -c1 k2000-o-cluster
PING k2000-o-cluster.jpp.fr (192.168.1.151) 56(84) bytes of data.
64 bytes from k2000-o-cluster.jpp.fr (192.168.1.151): icmp_seq=1 ttl=64 time=0.041 ms
--- k2000-o-cluster.jpp.fr ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.041/0.041/0.041/0.000 ms
Si l'on regarde les interfaces deux pseudo interfaces ont ét créés :
# ifconfig eth0:1
eth0:1 Link encap:Ethernet HWaddr 00:16:3E:30:07:01
inet adr:192.168.1.151 Bcast:192.168.1.255 Masque:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interruption:177 Adresse de base:0x2000
# ifconfig eth0:2
eth0:2 Link encap:Ethernet HWaddr 00:16:3E:30:07:01
inet adr:192.168.1.150 Bcast:192.168.1.255 Masque:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interruption:177 Adresse de base:0x2000
..
Tout semble OK pour passer à l'étape suivante : configurer notre jeu de disques ASM pour accueillir en toute sécurité nos bases de données.
ASM RAC : Installation logiciel base de données
ASM RAC : Installation logiciel base de données jppAprès quelques vacances il va enfin être possible de se lancer dans l'installation de la base de données sur notre machine. Toutefois un incident de dernière minute (crash disque) retarde un peu la publication de cette partie.
Bonne nouvelle (29/03/2010) le disque est changé, un système "propre" réinstallé. Il me reste juste à compiler et installer la dernière version (3.4.3-rc...) de XEN.
Mais il me faut restaurer la machine virtuelle "RAC" car elle avait souffert lors du crash du serveur (elle était en pleine installation) et il me faut ré-installer la partie grid (excellent test du petit tutorial précédent) avant de pouvoir installer le logiciel et la base de données.Quelques soucis dans la nouvelle installation avec le SSD (il faut le "trimmer" pour améliorer les performances, et ce n'est pas évident, probablement un sujet à traiter), décidemment celà n'avance pas !
Le nouveau noyau linux/xen que je teste ne supporte que très mal Xwindows, il me faut donc me résoudre à installer "libvirt" et "virt-manager" sur une autre machine, à configurer le tout pour pouvoir me passer de X sur le serveur principal. Enfin, tout est prêt, la partie "grid" s'est installée sans problèmes (je pourrais maintenant l'installer quasiment les yeux fermés !), après une petite sauvegarde l'installation de la partie Base de Données peut commencer.
En ce qui concerne l'installation du logiciel et de la base de données il vaut mieux séparer les deux opérations car il me semble que l'assistant de création de base (dbca) ne présente pas toutes les options lorsqu'il est lancé depuis l'installeur.
Cette partie est assez simple, l'article sera court et avec peu de copies d'écran.
Lancer l'installeur dans le répertoire d'installation : ./runInstaller.sh
- Premier écran "Configurer les mises à jour" :
Tout décocher (il faudra confirmer après le clic sur suivant).
- Deuxième écran "Options d'installation" :
Cocher "Installer le logiciel de base de données uniquement". Copie écran avec la petite boîte explicative pour exemple.
- Troisième écran "Options de grille" :
Vérifier la connexion SSH.
- Quatrième écran "Langues du produit" : ajouter les langues désirées, pour moi anglais + français cela me suffit !
- Cinquième écran "Edition de base de données" :
Cocher "Entreprise Edition", on est là pour tout voir !
Le bouton "Sélectionner des options" peut permettre d'installer ou non certaines options, on n'y touche pas par principe.
- Sixième écran "Emplacement d'installation" :
Laisser les valeurs présentes ... pas de surprises, sauf un "dbhome_2" pour moi car j'ai du annuler (en cours) une installation précédente, et je n'ai pas détruit ce répertoire résiduel.
- Septième écran "Groupes de système d'exploitation" : et hop "dba" pour tout le monde. L'enchainement sur la vérification ne devrait pas nous poser de problèmes ... et c'est bien le cas.
Il est bon de passer tout cela en revue avant de cliquer "Fin".
Et c'est parti ...
le voyant du disque (physique) clignote frénétiquement pendant la copie des fichiers. Ce n'est pas super rapide et en plus le répertoire d'installation est sur un partage Samba.
Le link des fichiers binaires est nettement plus rapide et arrive enfin le moment de passer le script "root.sh", je ne résiste pas à la prise d'une petite image !
./root.sh
Running Oracle 11g root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /opt/oracle/product/11.2.0/dbhome_2
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: n
The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: n
The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: n
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
Ensuite après le "OK" final un magnifique écran nous indiquant que l'installation a réussi, on n'en doutais pas !
Oracle 11g R2 : installation "grid"
Oracle 11g R2 : installation "grid" jppUne fois la machine démarrée créer les partitions sur les disques "hdb" et "hdc" avec fdisk, une partiton par disque. Ne pas monter les nouvelles partitions et lancer la commande "partprobe" pour valider ces nouvelles partitions auprès du noyau :
partprobe /dev/hdb
partprobe /dev/hdc
Un reboot peut permettre de s'assurer que les disques sont bien "chownés" par le système au démarrage :
ls -al /dev/hdb*
brw-r----- 1 root disk 3, 64 fév 21 2010 /dev/hdb
brw-rw---- 1 oracle dba 3, 65 fév 21 14:01 /dev/hdb1
Les partitions seront alors reconnues par le kernel. On peut ensuite quitter le user "root" et lancer l'interface graphique et se connecter avec le user "oracle".
Vérifier que le répertoire d'installation (pour nous "/opt/oracle" est bien pointé par la variable "ORACLE_BASE" et que le répertoire est bien "chowné" "dba".
Dans le répertoire d'installation, oui, celui où l'archive "zip"' a été décompressée, on trouve un sous-répertoire "grid" qui contient l'habituel "runInstaller.sh" qui permet le lancement de l'installer ("OUI" de son petit nom).
drwxr-xr-x 9 1000 root 0 aoû 16 2009 doc
drwxr-xr-x 4 1000 root 0 aoû 15 2009 install
drwxrwxr-x 2 1000 root 0 aoû 15 2009 response
drwxrwxr-x 2 1000 root 0 aoû 15 2009 rpm
-rwxrwxr-x 1 1000 root 3795 jan 8 01:03 runcluvfy.sh
-rwxr-xr-x 1 1000 root 3227 jan 8 01:03 runInstaller
drwxrwxr-x 2 1000 root 0 aoû 15 2009 sshsetup
drwxr-xr-x 14 1000 root 0 aoû 15 2009 stage
-rw-r--r-- 1 1000 root 4228 jan 8 01:04 welcome.html
Un "./runInstaller.sh" lance le tout et on se retrouve après quelques vérifications devant l'écran :
Premier écran "Option d'installation" : On remarque sur cet écran (partie gauche) une échelle de suivi des différentes phases. Ici on choisira une installation pour un "...serveur autonome". Pas de RAC pour cette fois.
Deuxième écran : "Langues du produit" : ajouter la ou les langues désirées.
Troisième écran "Créer un groupe de disques", on ne créera ici qu'un groupe de disque sur les deux que nous avons définis. Nous ne sommes pas en production et je n'ai pas "plein" de disques. Je fais le chois de redondance externe pour le groupe par défaut "DATA" dans lequel nous allons intégrer notre partition "hdb1". Le disque n'étant pas reconnu par défaut par ASM il nous faut lui "forcer" un peu la main en passant par l'option "Modifier le chemin de repérage" où nous indiquerons "/dev/hdb1". Cocher ensuite ce disque "candidat".
Quatrième écran "Mot de passe ASM", je sélectionne un seul mot de passe pour les deux users "ASM" : SYS et ASMSNMP (ne pas confondre avec le user SYS de la base de données !). Si le mot de passe est "trop simple", il faudra confirmer notre "volonté" d'utiliser un mot de passe si simple !
Cinquième écran "Groupes de système d'exploitation" : on choisit "dba" pour les trois groupes. Encore une fois, en production il serait "sage" d'utiliser un groupe par catégorie d'activité. C'est déconseillé par Oracle --> il faut confirmer cette volonté délibéreé de faire simple (et pas très sécurisé).
Sixième écran "Emplacement d'installation" : je laisse les emplacements par défaut dérivés de "ORACLE_BASE".
Septième écran " : corriger l'emplacement de l'inventaire par défaut en "/home/oracle/oraInventory".
Huitième écran "Vérification de prérequis" : normalement pas de problème ici l'installer passe ensuite à l'écran suivant.
Neuvième écran "Récapitulatif" (ORAGRI_004.png) on peut ici enregistrer les réponses pour les "rejouer" plus tard sur un autre serveur.
L'installation est ensuite lancée ...
Et le miracle s'accomplit ...
C'est bon, on ferme avec soulagement.
Pour le deuxième groupe de disques on commence par vérifier que nos disques seront bien accessibles par :
ls -al /dev/hdc1
brw-rw---- 1 oracle dba 22, 1 fév 16 03:12 /dev/hdc1
C'est OK, on commute dans le "bon" environnement par :
. oraenv
ORACLE_SID = [oracle] ?+ASM
The Oracle base for ORACLE_HOME=/opt/oracle/product/11.2.0/grid is /opt/oracle
Suivi de (pour montrer le travail de "oraenv" :
echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin:/opt/oracle/product/11.2.0/grid/bin
Suivi de la commande :
asmca
Qui lance l'écran principal de l'assistant asm
On va ensuite créer notre deuxième groupe de disques par le bouton intelligement appelé "Créer"
on modifie le chemin de repérage en "/dev/hd*" et on coche notre disque "/dev/hdc1" et on clique "OK". Le groupe de disque "RECO" est alors créé
.
Ne croyant que ce que je vois je tente le reboot. Après le reboot, voyons si notre "disque" ASM est bien là en utilisant un autre type de commande (asmcmd fait partie du paquet, c'est une sorte de shell permettant d'explorer les disques ASM) :
. oraenv
ORACLE_SID = [oracle] ? +ASM
...
asmcmd
ASMCMD> ls -al
State Type Rebal Name
MOUNTED EXTERN N DATA/
MOUNTED EXTERN N RECO/
ASMCMD> exit
Nos deux disques sont bien là ... tout à l'air OK on va pouvoir prendre une image de notre machine et lancer l'opération suivante.
ASM RAC : première base de données
ASM RAC : première base de données jppDans ce chapitre nous allons créer notre première base de données grâce à l'assistant de création de bases de données, j'ai nommé "dbca". Plus besoin de recourir aux CD d'installation, tout fonctionne maintenant "en local", nous avons pris notre indépendance.
Le but de cet article est de présenter l'installation d'une base de données à la fois performante et sécurisée.
L'installation sera faite sur deux groupes de disques, un pour les données, un pour la zone de sécurité (Fast Recovery Area). Cette zone de sécurité doit permettre de redémarrer une base saine même en cas de perte (ou de corruption) des disques principaux.
Un petit schéma valant mieux qu'un long discours ...
Cette configuration ne se prête pas au "vrai" RAC car les disques internes ne seront pas partageables entre deux instances. On verra cela un peu plus tard.
Après cette petite mise en bouche connectons nous un terminal sous X et dans le bon environnement :
. oraenv
ORACLE_SID = [oracle] ?
ORACLE_HOME = [/home/oracle] ? /opt/oracle/product/11.2.0/dbhome_2
The Oracle base for ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_2 is /opt/oracle
Lançons l'assistant de création "dbca" qui nous accueille après avoir murement réfléchi i
"Etape 0 ?" : Premier écran "Bienvenue"
Cocher "Base de données RAC".
- "Etape 1" : cocher "Créer une base de données".
- "Etape 2" : cocher "BD généraliste... Sur cet écran on peut déjà avoir un avant-goût de ce que sera notre base ("Afficher les détails"), au détail près de ASM qui n'est pas pris en compte dans le modèle.
- "Etape 3" : je coche "Configuration gérée par un administrateur",
je coche "Configuration gérée par un administrateur".
je choisis le nom "rac001"
Un seul cluster étant présent pas d'angoisse de choix.
"Etape 4 " :
Premier onglet :
- Cocher "Configurer Entreprise Manager"
- Cocher "Configurer Database control", "Activer les notifications d'alerte"
- Fournir l'adresse d'un serveur mail valide (c'est vérifié !) et une adresse non moins valide.
- Cocher "Activer la sauvegarde....", on pourra la gérer "à la main ensuite"
Donner le user et le password d'un utilisateur autorisé à effectuer les sauvegardes. Pour nous un utilisateur avec les droits "dba".
Deuxième onglet : vérifier que les "taches de maintenance automatique" sont bien cochées.
"Etape 5" : par simplification je coche "Utiliser le même mot de passe pour tous les comptes" et donne un mot de passe (trop simple qu'il faudra confirmer par la suite).
"Etape 6" :
. Pour "Type de stockage" choisir ASM
. cocher "Utiliser OMF"
. "Zone base de données", choisir "DONNEES" qui affichera +DONNEES dans la boite.
Cliquer "Multplexer les fichiers ..." :
Indiquer ici le groupe principal +DONNEES et le groupe de sécurité +SAUVE
Rappel le "+" pour ASM correspond au "/" pour un filesystem Unix.
Inutile de cliquer "Variables d'emplacement de fichier" :
Lors du clic sur "Suivant" une boite demandant le mot de passe ASM s'ouvre.
"Etape 7" :
Ici les choses importantes, on sépare les données de sécurité des données de la base, il faut donc cocher "Indiquer la zone de récupération rapide" et la faire pointer sur "+SAUVE", augmentons un peu la taille à 5120M. Cette zone est fonction de la taille de la base hébergée. Au passage quelqu'un aurait-il une base de 4 à 6 G à prêter ? ...
Cocher "Activer l'archivage", c'est indispensable (et je ne parle même pas d'une base de production OLTP).
Inutile de cliquer "Variables d'emplacement de fichier".
"Etape 8" :
. Premier onglet, je coche "Exemples de schémas" car je suis un addict de scott/tiger et du schéma HR.
. Deuxième onglet, je n'ai pas de scrpts personnalisés.
Etape 9 :
. Premier onglet "Mémoire" :
pour des tests je limite la taille mémoire à 640M et je coche "Utiliser gestion auto"
Deuxième onglet "Dimensionnement" : la taille de bocs n'est pas modifiable ... et 150 processus est un bon chiffre ... on ne touche rien.
Troisième onglet "Jeu de caractères" :
Je sélectionne "Utiliser Unicode" et laisse les autres valeurs par défaut.
. Quatrième onglet : je coche "Mode serveur dédié"
Je ne touche pas à "Tous les paramètres d'initialisation", mais je vais y jeter un oeil.
"Etape 10 " :
On peut ici vérifier (et éventuellement modifier les éléments de stockage).
"Etape 11" : cocher "Créer une base de données" et "Générer les scripts", stocker les scripts où vous voulez !
Et on arrive au moment fatidique de cliquer sur le bouton "Terminer" ce qu'il est fortement conseillé de faire.
Un écran récapitulatif s'affiche et permet de vérifier toute la configuration qui peut même être enregistrée en fichier HTML pour historique.
On clique "OK" et c'est parti .... d'abord la création du script ... "OK" ...
et je n'ai pas besoin cette fois de cliquer "Arrêter".
Le voyant disques clignote frénétiquememt .. tout semble se dérouler correctement, largement le temps de prendre un café.
Enfin la base est créée ...
je ne touche pas à la gestion des mots de passe ... et clique sur "Quitter".
Le fichier "/etc/oratab" comporte bien une nouvelle ligne "rac001......" et un "ps -ef | grep rac001" montre une belle liste de process.
Une connexion https montre (après avoir accepté le certificat SSL) une belle image :
Enfin on va pouvoir s'amuser ... mais auparavant il nous faudra initialiser quelques variables permettant de discuter avec cette instance (rac0011) de la base de données (rac001).
ASM RAC : finalisation
ASM RAC : finalisation jppComme indiqué en fin du chapitre précédent il reste un certain nombre de manipulations à effectuer avant de pouvoir accéder "normalement" à la base. En effet ce n'est pas une base "normale" mais l'instance numéro un d'une base RAC.
Pour simplifier les choses j'ai préparé un script ( à lancer en début de connexion par ". mon_script" ) :
# My Oracle Settings
export ORACLE_SID=rac001
export ORAENV_ASK=NO
. oraenv
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=k2000-ora65
export ORACLE_UNQNAME=rac001
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_2
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
# 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
ORAENV_ASK=''
Une fois le script de lancement exécuté notre environnement est "propre" et nous pouvons utiliser les commandes classiques.
D'abord démarrer l'instance :
srvctl start instance -d rac001 -i rac0011
on peut ensuite se connecter avec sqlplus :
sqlplus sys@rac001 as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Sat Apr 10 11:23:14 2010
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Enter password:
Connecte a :
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SQL>
Et c'est parti ... tout est OK.
Toutes ces opérations sont faites "en manuel" il faudra automatiser tout cela dès que possible.
Premier essai : connectons nous avec sqlplus et créons un premier tablespace :
CREATE TABLESPACE "TEST_SPACE" DATAFILE
SIZE 512M
AUTOEXTEND ON NEXT 32M MAXSIZE 1024M;
Avec "OMF" et "ASM" pas la peine de nommer le datafile, le pied pour les paresseux.
Ensuite n'oubliez pas de lancer la console Web par :
emctl start dbconsole
Après un temps certain vous pourrez découvrir (en https maintenant) la console Web qui n'a pas fini de vous occuper car on peut tout faire depuis cet outil :
- Gérer la base de données :
- instance par instance (database instance)
- globalement (cluster database)
- Gérer le "cluster"
- Gérer ASM, pour y aller passer par l'onglet "cluster" (en haut à droite) puis dans le nouvel écran l'onglet "target" qui donne accès à une liste des objets gérables, y compris notre console ASM.
- Gérer les listener
Il y a beaucoup à découvrir, y compris du coté des backups ou RMAN est particulièrement bien "empaqueté" et si facilement utilisable : backups compressés, backups incrémentaux, backups "online" ...
Allez aussi voir du coté des "advisors" en passant pas "Advisor central" (lien disponible entre autres endroits en bas à droite de la page "Home").
La surveillance des performances n'est pas en reste et permet de surveiller la performance :
- au niveau du cluster
- au niveau d'une instance
- au niveau de ASM.
En bref cette console est un monde à part entière a découvrir et offre réellement un très grand nombre de possibilités.
Si vous cherchez les fichiers de trace (donr le célèbre alert...log) rendez vous dans :
$ORACLE_BASE/diag
où une arborescence fournie vous attends, allez voir dans "rdbms/nom_base/nom_instance" pour voir.