Vous êtes sur la page 1sur 6

Contrôler l’état des ressources du cluster

Pour cela on utilise la commande crs_stat du clusterWare :

-- l'option -t sert à obtenir une sortie tabulée, l'option -v permet d'obtenir quelque
chose de plus verbeux
$ $CRS_HOME/bin/crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora....11.inst application 0/5 0/0 ONLINE ONLINE NODE1
ora....12.inst application 0/5 0/0 ONLINE ONLINE NODE2
ora....db1.srv application 0/0 0/0 ONLINE ONLINE NODE1
ora....db2.srv application 0/0 0/0 ONLINE ONLINE NODE2
ora....bsrv.cs application 0/0 0/1 ONLINE ONLINE NODE2
ora.clustdb.db application 0/0 0/1 ONLINE ONLINE NODE1
ora....SM1.asm application 0/5 0/0 ONLINE ONLINE NODE1
ora....E1.lsnr application 0/5 0/0 ONLINE ONLINE NODE1
ora....DE1.gsd application 0/5 0/0 ONLINE ONLINE NODE1
ora....DE1.ons application 1/10 0/0 ONLINE ONLINE NODE1
ora....DE1.vip application 0/0 0/0 ONLINE ONLINE NODE1
ora....SM2.asm application 0/5 0/0 ONLINE ONLINE NODE2
ora....E2.lsnr application 0/5 0/0 ONLINE ONLINE NODE2
ora....DE2.gsd application 0/5 0/0 ONLINE ONLINE NODE2
ora....DE2.ons application 3/10 0/0 ONLINE ONLINE NODE2
ora....DE2.vip application 0/0 0/0 ONLINE ONLINE NODE2

Si on veut obtenir le nom complet des ressources, il faut utiliser la commande crs_stat sans option.

NB : Cette commande reflète l’état des ressources dans le OCR.

Récréer une configuration complète de base en cluster ... à la main

Ces opérations consistent en plusieurs étapes :

1. L’arrêt et la suppression du service et de la base dans le cluster

$ $CRS_HOME/bin/srvctl stop service -d clustdb


$ $CRS_HOME/bin/srvctl stop database -d clustdb
$ $CRS_HOME/bin/srvctl remove service -d clustdb
$ $CRS_HOME/bin/srvctl remove database -d clustdb
Remove the database clustdb? (y/[n]) y

2. La création de la base dans le cluster (pour cela, il faut la localisation de ORACLE_HOME ainsi que du
fichier spfile)

$ $ORACLE_HOME/bin/srvctl add database -d clustdb -o


/u01/app/oracle/product/10.2.0/db_1 -p +ASM_DG/clustdb/spfileclustdb.ora

-o spécifie la localisation de l'Oracle Home


-p spécifie la localisation du spfile (Fichier binaire d'initialisation)

3. Ajouter les instances attachées à cette base

$ $ORACLE_HOME/bin/srvctl add instance -d clustdb -i clustdb1 -n NODE1


$ $ORACLE_HOME/bin/srvctl add instance -d clustdb -i clustdb2 -n NODE2

-d spécifie la base
-i spécifie le nom de l'instance
-n spécifie le noeud concerné par cette instance

4. Eventuellement, régler les variables d’environnements de la base (Voir plus haut.)

5. Démarrer la base et ses instances

$ $ORACLE_HOME/bin/srvctl start database -d clustdb

6. Créer le service Haute dispo de la base cluster (instance et base), ainsi que la politique de TAF
(Transparant Application Failover)

$ $ORACLE_HOME/bin/srvctl add service -d clustdb -s clustdbsrv -r "clustdb1,clustdb2" -


P BASIC
-d spécifie le nom de la base de données
-s spécifie le nom du service de haute dispo (Il doit être différent du nom de la base)
-r spécifie la liste des instances à intégrer dans ce service (séparés par des
virgules)
-P spécifie la politique TAF : None , BASIC, ou PRECONNECT (Plus de renseignements dans
la doc Oracle !)

Si on désire créer un service avec une instance préférée et une disponible. La commande est la suivante

$ $ORACLE_HOME/bin/srvctl add service -d clustdb -s clustdbsrv -r clustdb1 -a clustdb2


-P BASIC
-d spécifie le nom de la base de données
-s spécifie le nom du service de haute dispo (Il doit être différent du nom de la base)
-r spécifie l'instance préférée
-a spécifie l'instance ou les instances disponibles
-P spécifie la politique TAF : None , BASIC, ou PRECONNECT (Plus de renseignements dans
la doc Oracle !)

7. Démarrage du service Attention à la syntaxe, en mettant le nom de la base, comme un service correspond
à une base ... c’est le bon service qui démarrera.

$ $ORACLE_HOME/bin/srvctl start service -d clustdb

Arrêt/démarrage d’une instance dans le cluster

-- pour arréter l'instance clustdb1 de la base de cluster clustdb


$ $ORACLE_HOME/bin/srvctl stop instance -i clustdb1 -d clustdb
-- pour démarrer l'instance clustdb2 de la base de cluster clustdb
$ $ORACLE_HOME/bin/srvctl start instance -i clustdb2 -d clustdb

Arrêt/démarrage d’une resource ASM (Automatic Storage Management)

-- pour arréter la ressource ASM sur le noeud NODE1


$ $ORACLE_HOME/bin/srvctl stop asm -n NODE1
-- pour démarrer la ressource ASM sur le noeud NODE2
$ $ORACLE_HOME/bin/srvctl start asm -n NODE2

Arrêt/démarrage d’une resource listener

-- pour arréter la ressource listener sur le noeud NODE2


$ $ORACLE_HOME/bin/srvctl stop listener -n NODE2
-- pour démarrer la ressource listener sur le noeud NODE1
$ $ORACLE_HOME/bin/srvctl start listener -n NODE1

Arrêt/démarrage de toutes les ressources d’un même noeud

-- pour arréter les ressources du noeud NODE2


$ $ORACLE_HOME/bin/srvctl stop nodeapps -n NODE2
-- pour démarrer les ressources du noeud NODE1
$ $ORACLE_HOME/bin/srvctl start nodeapps -n NODE1

Arrêt/démarrage d’une ressource particulère

-- pour arréter la ressource "ora.NODE1.ons"


$CRS_HOME/bin/crs_start ora.NODE1.ons
Attempting to start `ora.NODE1.ons` on member `NODE1`
Start of `ora.NODE1.ons` on member `NODE1` succeeded.

-- pour démarrer la ressource "ora.NODE1.ons"


$CRS_HOME/bin/crs_stop ora.NODE1.ons
Attempting to stop `ora.NODE1.ons` on member `NODE1`
Stop of `ora.NODE1.ons` on member `NODE1` succeeded.

Reconfigurer les paramètres d’une ressource

Chaque ressource du cluster : instance, gsd (Global Service Daemon), ons (Oracle Notification Service),
base etc. dispose d’un certain nombre de paramètres qui lui sont propres (auto-restart, nombre de
redémarrages après erreurs etc.)

Chacune de ces ressources peut-être reconfigurée précisemment. Pour cela, il faut procéder en plusieurs
étapes (Etapes valides en 10.2 . En 10.1, : la méthode est différente).

1°) Exporter les paramètres de la ressource dans un fichier texte

2°) Modifier ce fichier

3°) Mettre à jour la configuration de la ressource ainsi modifiée.

L’exemple choisit est celui de la modification du nombre de redémarrages du service ONS du NODE1 avant
que celui-ci tombe OFFLINE.
Export des paramètres de la ressource

* Se positionner dans le répertoire de base de l’export des ressources (un autre répertoire ... ne fonctionnera
pas !)

$ cd $CRS_HOME/crs/profile

* Exporter le paramètrage de la ressource dans un fichier .cap (et pas une autre extension !)

$ $CRS_HOME/bin/crs_stat -p ora.NODE1.ons > ora.NODE1.ons.cap

Modification du paramètre en question (ici RESTART_ATTEMPTS)

$ vi ora.NODE1.ons.cap
.../...
RESTART_ATTEMPTS=10
.../...

Mise à jour de la configuration de la ressource La commande va lire le fichier .cap et mettre à jour le
Registre du cluster (OCR).

Attention à exécuter cette commande en root

# $CRS_HOME/bin/crs_register -u ora.NODE1.ons

Contrôle des ressources du cluster.

Le contrôle des ressources pour la modification des paramètres se fait par la commande crs_stat dans son
mode verbeux :

$ $CRS_HOME/bin/crs_stat -t -v

Name Type R/RA F/FT Target State Host


----------------------------------------------------------------------
.../...
ora....DE1.ons application 0/10 0/0 ONLINE ONLINE NODE1
.../...

Contrôler le clusterWare CRS (Cluster Ready Services)

Contrôler le statut des processus CRS

$CRS_HOME/bin/crsctl check crs


CSS appears healthy
CRS appears healthy
EVM appears healthy
-- Sortie typique si tout est OK

Arréter et redémarrer le CRS

Attention, ces processus appartenant à root, ils doivent être réaliser par cet utilisateur. De plus, ces
commandes sont asynchrones, veillez donc à contrôler l’état du CRS après avoir taper ces commandes.

* Pour arréter le service :

# $CRS_HOME/bin/crsctl stop crs

* Pour démarrer le service :

# $CRS_HOME/bin/crsctl start crs

Obtenir la localisation du ou des disques votant (ou voting disks)

Ceci s’effectue avec la commande suivante :

$ $CRS_HOME/bin/crsctl query css votedisk


0. 0 /dev/rdsk/emcpower0g
located 1 votedisk(s).

Contrôle de l’OCR

L’OCR (Oracle Cluster Registry) contient, comme son nom l’indique, la défition du cluster : les noeuds, les
bases, les instances, les services etc.

Il peut être décliné sous deux formes :


un simple fichier sur un système de fichiers en cluster (car il doit être accessible des deux noeuds)
une partition brute partagée (Shared Raw partition). De plus, ces fichiers/partitions peuvent être
multiplexées sur différents axes. (Si il est unique, la redondance est laissée à un système tiers : RAID,
mirroring de baies, SAN etc.

Il est donc important, dans la gestion de son cluster, de connaître les informations de l’OCR (localisation,
taille, redondance etc.), mais aussi de savoir le sécuriser en le sauvegardant, et enfin de savoir le restaurer en
cas de perte du volume/fichier.

Obtenir les infos de l’OCR

Les infos de l’OCR s’obtiennent avec la commande ocrcheck.

$ $CRS_HOME/bin/ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 2 <----- Version du registre
Total space (kbytes) : 51200 <----- Espace total alloué au
registre
Used space (kbytes) : 6220 <----- Taille du registre
Available space (kbytes) : 44980 <----- Espace disponible
ID : 507221704
Device/File Name : /dev/rdsk/emcpower1g <----- Emplacement
du registre
Device/File integrity check succeeded
^----- Vérification de
l'intégrité du périphérique

Device/File not configured


^----- Définition de la deuxième
partition (si multipléxé)
Cluster registry integrity check succeeded

Exporter et importer l’OCR

L’export et l’import de l’OCR se fait par la commande ocrconfig. Dans la mesure où l’OCR (qu’il soit
fichier ou partition brute) est détenu par root, mais qu’il reste accessible en lecture aux utilisateur du groupe
dba. Il est conseillé de réaliser l’export en tant qu’utilisateur oracle (par exemple). L’import doit, quant à lui,
être réalisé par le root.

Le but de l’opération est donc de garder une copie de l’OCR (dans un format texte certes, mais peu lisible ;)
). Cette copie peut-être réalisé en cas de perte de la partition, ou de corruption des données du registre.

Export de l’OCR

$ $CRS_HOME/bin/ocrconfig -export export_File.dmp -s online


-- l'option "-s online" permet d'effectuer cet export en ligne sans arréter le CRS.

Import de l’OCR
-- Eventuellement restaurer/recrer la partition, et ou le fichier.
# $CRS_HOME/bin/ocrconfig --import export_File.dmp

Sauvegarder à froid l’OCR

La sauvegarde à froid de l’OCR, se réalise simplement :


par une copie de fichier, si l’OCR est matérialisé dans un ou plusieurs fichiers
par un ordre unix "dd", dans le cas d’une partition partagées. Pour l’import par dd, il suffit d’inverser
l’input file (if) et l’output file (of) dans la commande dd :

* pour exporter :

$ dd if=/dev/rdsk/emcpower1g of=/HOME/ocr/backup/ocr_010507.bkp bs=1024 count=51200

* pour importer :

# dd if=/HOME/ocr/backup/ocr_010507.bkp of=/dev/rdsk/emcpower1g bs=1024 count=51200

Conclusion

L’environnement cluster Oracle est un environnement riche partagé entre différentes commandes, pilotées
par plusieurs utilisateurs systèmes. Ces commandes pilotant plusieurs ressources pouvant être sur plusieurs
noeuds. Bref, quelque chose de complèxe.

Vous aimerez peut-être aussi