Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUM ORACLE F.A.Q ORACLE TUTORIELS ORACLE TUTORIELS SQL SCRIPTS SQL LIVRES ORACLE QUIZ

Quitte ou double : passer d'une instance simple à une base en cluster

Avancé

Date de publication : 18.03.2007 , Date de mise à jour : 19.10.2007

Par fadace (Fabien Celaia)
 

Transformez votre instance en une base en cluster, en utilisant uniquement la ligne de commande

I. Introduction
II. Préparer l'instance à sa transformation
III. Préparer les fichiers
IV. Cataloguer la base dans le référentiel de l'ocr
V. Activer la base en cluster


I. Introduction

Cet article a pour but de vous présenter la manière de créer une base de données Oracle en cluster, et ce uniquement en passant par les lignes de commandes.

Oracle livre un utilitaire nommé rconfig pour faire de même. Il n'est ma foi pas si simple à utiliser, et n'enlève rien à l'aspect pédagogique de cet article qui vous permettra de mieux appréhender ce qui se trame en interne.

Oracle publie des assistants pour ce type d'installation, mais parfois dans ces environnements ma foi complexes, ces outils ne se comportent pas de la façon que l'on souhaite.

Le retour à la ligne de commande a ceci de sympathique qu'il A) permet de comprendre plus à fond les concepts et B) fonctionne dans la quasi totalité des cas.

Pour cet article, nous nous baserons sur les hypothèses suivantes:

  • Le cluster Oracle 10gR2 est installé et configuré correctement
  • Nous avons à disposition 2 machines linux (dvpora01 et dvpora02), en Korn linux
  • Nous travaillons avec des bases Oracle 10gR2 minimums dont le Oracle Home se situe, sur chacune des machines, sous /opt/oracle/db10gr2
  • Nous avons un point de montage partagé entre ces deux instances : /oradata/dbMaBase
  • La base en stand-alone actuelle est déjà installée et se nomme MaBase; ses tablespaces sont déjà situés sur la partie partagée du cluster

II. Préparer l'instance à sa transformation

Les 2 instances vont quasiment tout se partager, hormis 3 composants

  • Le nom de l'instance
  • Le UNDO tablespace
  • Les fichiers de journaux
Pour le premier élément, nous l'avons vu, il s'agit d'un des paramètres du spfile (ou, c'est selon, du init.ora)

Pour le undo tablespace, il nous faut en créer un deuxième sur l'instance existante. C'est ensuite au niveau du spfile que la distribution s'effectuera
create undo tablespace "UNDOTBS2" datafile size 100M autoextend on next 10M maxsize unlimited
En ce qui concerne les fichiers de journaux, il va nous falloir créer un second groupe de journaux, dédié au thread 2, les 2 existants étant par défaut dédiés au thread 1.
alter database add logfile thread 2 group 3 ('/oradata/redo/redo_03_02.rdo','/oradata/redom/redo_03_02.rdo') ;
alter database add logfile thread 2 group 4 ('/oradata/redo/redo_04_02.rdo','/oradata/redom/redo_04_02.rdo') ;
Il faut encore créer les bases catalogues du cluster dans la base
sqlplus / as sysdba @$ORACLE_HOME/rdbms/admin/catclust

III. Préparer les fichiers

Le fichier pfile (éventuellement spfile) se trouvant dans $ORACLE_HOME/dbs va devoir subir quelques transformations et être déplacé sur une partie de disque partagé
*.cluster_database_instances=2
*.cluster_database=true
*.remote_listener='LISTENERS_MaBase'
MaBase1.thread=1
MaBase2.thread=2
MaBase1.instance_number=1
MaBase2.instance_number=2
MaBase1.instance_name=MaBase1
MaBase2.instance_name=MaBase2
MaBase1.undo_tablespace='UNDOTBS1'
MaBase2.undo_tablespace='UNDOTBS2'

IV. Cataloguer la base dans le référentiel de l'ocr

Ajouter la base
srvctl add database -d MaBase -o /opt/oracle/db10gr2 -p /oradata/admin/spfileMaBase.ora
Ajouter les 2 instances
oracle> srvctl add instance -d MaBase -i MaBase1 -n dvpora01
oracle> srvctl add instance -d MaBase -i MaBase2 -n dvpora02
Ajouter les 2 services
oracle> srvctl add service -d MaBase -s MaBase -r "MaBase1,MaBase2"  -P basic
Démarrer le tout
oracle> srvctl start database -d MaBase
oracle> srvctl start service -d MaBase
A ce stade, la base devrait passer ONLINE, ainsi que l'instance MaBase1 et le service éponyme. L'instance MaBase2 et son service devraient avoir une cible (TARGET) à ONLINE mais un statut à OFFLINE... ce qui est normal pour l'instant.


V. Activer la base en cluster

Se connecter sur la base principale et activer la 2ème instance : c'est généralement l'oubli qui fait que seule la première des deux instances peut démarrer.
ALTER DATABASE ENABLE THREAD 2 ;
A ce niveau, soit l'instance MaBase2 démarre, suivie de son service, soit il est pafois nécessaire de l'arrêter et de la redémarrer explicitement
srvctl stop instance -d MaBase -i MaBase2
oracle> srvctl start instance -d MaBase -i MaBase2
oracle> srvctl stop service -d MaBase 
oracle> srvctl start service -d MaBase 

oracle> crs_stat -t

Name           Type           Target    State     Host        
------------------------------------------------------------
ora....SE1.srv application    ONLINE    ONLINE    dvpora01   
ora....SE2.srv application    ONLINE    ONLINE    dvpora02   
ora....ASE1.cs application    ONLINE    ONLINE    dvpora02   
ora....E1.inst application    ONLINE    ONLINE    dvpora01   
ora....E2.inst application    ONLINE    ONLINE    dvpora02   
ora.MABASE.db  application    ONLINE    ONLINE    dvpora02   
ora....E1.lsnr application    ONLINE    ONLINE    dvpora01   
ora....SE1.gsd application    ONLINE    ONLINE    dvpora01   
ora....SE1.ons application    ONLINE    ONLINE    dvpora01   
ora....SE1.vip application    ONLINE    ONLINE    dvpora01   
ora....E2.lsnr application    ONLINE    ONLINE    dvpora02   
ora....SE2.gsd application    ONLINE    ONLINE    dvpora02   
ora....SE2.ons application    ONLINE    ONLINE    dvpora02   
ora....SE2.vip application    ONLINE    ONLINE    dvpora02
Si tout se passe bien (= si le crs_stat -t vous retourne tous les éléments ONLINE), félicitations, vous devriez avoir maintenant une base en RAC à 2 noeuds.



Valid XHTML 1.1!Valid CSS!

Copyright © 2007 fadace. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Responsable bénévole de la rubrique Oracle : Xavier Vlieghe - Contacter par EMail :
Vos questions techniques : forum d'entraide Oracle - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.