IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Oracle Discussion :

Load balancing - Comment savoir sur quelle "machine" ou "instance" on est connecté ?


Sujet :

Administration Oracle

  1. #1
    Membre à l'essai
    Développeur SAGE X3 SQL SERVER
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations professionnelles :
    Activité : Développeur SAGE X3 SQL SERVER

    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 16
    Points
    16
    Par défaut Load balancing - Comment savoir sur quelle "machine" ou "instance" on est connecté ?
    Bonjour à tous,

    -le contexte:
    ma société développe et installe des applications avec des bases de données ORACLE (8i ou 10g).
    Quelques-fois la base de données est "installée" sur 2 machines avec un LOAD-BALANCING.
    Ainsi le tnsmames.ora client est du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    MADB =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = machine01)(PORT = 1521))
        (ADDRESS = (PROTOCOL = TCP)(HOST = machine02)(PORT = 1521))
        (LOAD_BALANCE = yes)
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = LaBD.Clientdb.CLIENT)
        )
      )


    -la problématique:
    Quelquefois une des 2 machines tombe en panne, ou bien un conflit d'adresse IP entraine le fait que la connexion ORACLE ne marche plus - listener KO-, et personne ne s'en apercoit... jusqu'à ce qu'un problème intervienne sur la 2ème machine, et là c'est la catastrophe puisqu'aucune des 2 instances de la BD ne répond plus...

    -la solution envisagée, mais comment faire ?
    la solution envisagée, c'est, après s'être connecté à la base de données (pour info: soit sous WINDEV, soit sous SQLPLUS), de tester si toutes les autres instances (auxquelles on aurait pu éventuellement se connecter si le load-balancing en avait décidé autrement, et qui doivent être opérationnelles !) sont OK...

    -les résultats de mes recherches:
    sont bien maigres...
    j'ai trouvé la table DBA_RESOURCE_INCARNATIONS qui me semble intéressante
    ainsi je pourrais peut-être pour chaque ligne de DBA_RESOURCE_INCARNATIONS tester la commande connect user/pwd@//HostNameDeDBA_RESOURCE_INCARNATIONS/ServiceNameRenvoyeParLaCommandeGlobalName

    Bon j'avoue que je galère pas mal...

    Merci d'avance de votre aide.
    Patrick.

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    et pourquoi pas v$instance pour identifier la machine (host_name) ?

  3. #3
    Membre à l'essai
    Développeur SAGE X3 SQL SERVER
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations professionnelles :
    Activité : Développeur SAGE X3 SQL SERVER

    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 16
    Points
    16
    Par défaut LOAD-BALANCING - comment vérifier que toutes les instances sont OK ?
    -préambule:
    le titre de mon topic ne devrait pas être "LOAD-BALANCING - comment savoir sur quelle "machine" ou "instance" on est connecté ?" mais plutot "LOAD-BALANCING - comment vérifier que toutes les instances sont OK ?"

    -en réponse à OraFrance:
    oui v$instance m'est utile.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select  instance_name,host_name from v$instance;
    INSTANCE_NAME    HOST_NAME
    ---------------- ---------------------------------------------------------
    Ladb2           Machine2
    -de plus j'ai l'impression que DBA_RESOURCE_INCARNATIONS peut être la solution à mon pb:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SQL> select * from DBA_RESOURCE_INCARNATIONS;
     
    RESOURCE_TYPE                  RESOURCE_NAME      DB_UNIQUE_NAME                 DB_DOMAIN       INSTANCE_NAME                  HOST_NAME             STARTUP_TIME
    ------------------------------ ------------------ ----- 
    INSTANCE                       Ladb1             Ladb                          Ladb.XXXX    Ladb1                         Machine1              05-AUG-08 02.46.14.000000000 PM +02:00
    INSTANCE                       Ladb2             Ladb                          Ladb.XXXX    Ladb2                          Machine2              14-AUG-08 01.30.45.000000000 PM +02:00
    -Ainsi j'ai l'impression qu'il me "suffit", une fois connecté à la BD, de chercher dans DBA_RESOURCE_INCARNATIONS quelles sont les autres connexions par lesquelles j'aurais pu me connecter, et de les "tester"...
    Mais je me mélange un peu les pinceaux entre les noms d'instances, de services. Et puis je ne sais pas DU TOUT de ce que veut dire DBA_RESOURCE_INCARNATIONS et je ne suis donc pas certain que son contenu est ce que je cherche.
    De plus, comment "tester" une connexion à une instance quand on est connecté sur une BD ?

    J'espère avoir été + clair dans la présentation de mon objectif et de mes tests.

    Merci d'avance pour toute aide ou petit renseignement.
    Amicalement. Patrick.

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    pour tester la connexion tu peux créer un db_link entre les bases et tester le db_links.

    DBA_RESOURCE_INCARNARTION a l'air de répondre au besoin : http://download-west.oracle.com/docs...views_4060.htm

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/11/2009, 19h40
  2. [VisualSVN] Comment savoir sur quelle branche on travaille ?
    Par WebPac dans le forum Subversion
    Réponses: 23
    Dernier message: 01/07/2009, 19h37
  3. Réponses: 2
    Dernier message: 16/07/2007, 09h37
  4. Comment savoir de quelle table un trigger dépend
    Par fluec-wa dans le forum Oracle
    Réponses: 8
    Dernier message: 19/01/2006, 19h41
  5. [C#] Comment savoir sur quel onglet on est ds 1 TabControl ?
    Par Gonat dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/10/2005, 23h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo