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

Oracle Discussion :

rédirection vers une standby


Sujet :

Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Points : 6
    Points
    6
    Par défaut rédirection vers une standby
    Salut à tous,

    J'ai un problème: je travaille dans une structure qui a un serveur principal pour ses opérations. Sur chaque poste client, il exite un raccourci vers l'application se trouvant sur le serveur. Cette appli est réliée à une bd oracle 8i. J'ai implémenté une standby database sur un autre serveur pour pallier un éventuel crash du serveur principal.

    Problème: je voudrais, automatiquement, en cas de crash du serveur principal, rediriger tous les postes clients vers le serveur de sécours. J'ai pensé à modifier la cible des raccourcis, mais j'arrive pas à le faire.

    Merci de m'aider sur ce coup.

  2. #2
    Membre habitué
    Inscrit en
    Septembre 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 142
    Points : 170
    Points
    170
    Par défaut
    Il est possible pour une même entrée du tnsnames de configurer 2 adresses de base de données si la première adresse ne répond la seconde est testée.

    Example de la doc ORACLE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    net_service_name= 
     (description= 
      (address_list= 
       (load_balance=on)
       (failover=off)
       (address= (protocol_address_information))
       (address= (protocol_address_information)))
      (address_list= 
       (load_balance=off)
       (failover=on)
       (address= (protocol_address_information))
       (address= (protocol_address_information)))
      (connect_data=
       (service_name=service_name)))

  3. #3
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Points : 1 294
    Points
    1 294
    Par défaut
    Le mode FAILOVER au niveau du client Oracle fonctionne très bien, par contre il ne faut pas activer le load_balance parceque sinon ton client va tenter un coup sur 2 de se connecter sur une base fermée. Voici un exemble que j'ai mis en place:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    BASE_PROD.WORLD =
      (DESCRIPTION =
        (address_list =
          (LOAD_BALANCE = OFF)
          (FAILOVER = ON)
          (ADDRESS = (PROTOCOL = tcp)(port = 1520)(host = serveurA))
          (ADDRESS = (PROTOCOL = tcp)(port = 1520)(host = serveurB))
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SID = BASE)
          (FAILOVER_MODE =
            (TYPE = session)
            (METHOD = basic)
            (retries = 30000)
            (delay = 5)
          )
        )
      )
    Attention !
    Pour que ce mode fonctionne et qu'il bascule automatiquement sur le 2ieme serveur, il faut eteindre le listerner sur le 1ier serveur. Cette contrainte a un très gros inconvéniant, c'est que sans listener, tu va avoir du mal à re-travailler sur ton 1ier serveur. Autre inconveniant encore pire, c'est que si tu veut transformer ta 1iere base en standby, tu aura aussi besoin du listener pour accueillir les archives de la primaire...

    Donc pour gérer ça de manière souple, tu devras faire 2 listener par serveur:
    - Un listener permanant privé sur lequel tu pourra travailler et sur lequel s'appuieront les communication entre la standby et la primaire
    - Un listener public dédié sur lequel tu branchera tes client oracle en mode failover (listener sur le port 1520 dans mon exemple).

    en cas de crash de ta primaire voici le scénario:
    - arret du listener public du premier serveur.
    - activation de la base standby
    - lancement du listener public du 2ieme serveur.

    Pendant la phase de bascule, les clients oracle vont etre en attente et reprendront leur activité comme si de rien était dés la fin du processus.

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Points : 6
    Points
    6
    Par défaut rédirection vers une standby
    Merci pour le tuyau. Je vais essayer et je te communique le résultat.

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Points : 6
    Points
    6
    Par défaut rédirection vers une standby
    Merci pour les tuyaux. Je vais essayer et je vous communique le résultat.

  6. #6
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Stp Rémi,

    Je savais pas trop pour les listener public ou privé, alors j'ai foncé vers la doc oracle; seulement le doc me dit qu'on ne peut avoir qu'un seul listener pour un serveur. Je suppose que tu en sais quelque chose, donc si tu peux mieux me situer sur le caractère public ou privé d'un listener et sur la différence de leur mise en oeuvre j'avancerai d'un grand pas. Merci encore

  7. #7
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Points : 8 079
    Points
    8 079
    Par défaut
    Citation Envoyé par laforet
    ... seulement le doc me dit qu'on ne peut avoir qu'un seul listener pour un serveur.
    Bonjour

    Vous pouvez nous donner le lien exact vers cette information, ou nous coller le paragraphe en question ?
    Parce que c'est en pratique absolument faux, et je ne peux guère qu'imaginer une mauvaise compréhension de cette doc...

  8. #8
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Pomalaix
    Bonjour

    Vous pouvez nous donner le lien exact vers cette information, ou nous coller le paragraphe en question ?
    Parce que c'est en pratique absolument faux, et je ne peux guère qu'imaginer une mauvaise compréhension de cette doc...

    Voici les références. J'ai peut-être mal compris ce qu'on voulais dire, stp expliques-moi comment configurer le public et le privé du listener. Merci

    http://www.supinfo-projects.com/fr/2006/oraclenet/2/
    Présentation d'Oracle Net

    2.2 Le listener Oracle
    Le listener Oracle a pour rôle d’être à l’écoute des demandes de connexions à la machine cible. Il doit être paramétré et lancé sur cette machine. Un seul listener peut être mis en place par serveur, pour permettre la connexion à toutes les bases hébergées par ce serveur. En effet, le listener reconnaît automatiquement toutes les instances démarrées sur le serveur.



    Deux grandes fonctions sont assurées par le listener :



    · Ecouter les différents réseaux (TCP/IP, IPC, etc)

    · Router les communications vers l’instance cible.

  9. #9
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Points : 1 294
    Points
    1 294
    Par défaut
    Non ce qui est dit dans ton lien n'est pas exact, on peut avoir autant de listener qu'on veut sur une meme base, il faut simplement que ce soit sur des ports différents. La solution que je t'ai décrite, je l'ai déja mis en production et ça fonctionne très bien. voici un exemple de listener en lien avec mon exemple plus haut:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    BASE_PUBLIC =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST =serveurA)(PORT = 1520))
          )
        )
      )
     
    SID_LIST_BASE_PUBLIC =
      (SID_LIST =
            (SID_DESC =
                    (SID_NAME = BASE)
                    (ORACLE_HOME = ...)
            )
      )
     
    BASE_PRIVE =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST =serveurA)(PORT = 1530))
          )
        )
      )
     
    SID_LIST_BASE_PRIVE =
      (SID_LIST =
            (SID_DESC =
                    (SID_NAME = BASE)
                    (ORACLE_HOME = ...)
            )
      )
    2 listener sont ici défini, par exemple, pour lancer le listener public il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lsnrctl start BASE_PUBLIC

  10. #10
    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
    c'est en effet totalement faux

  11. #11
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Merci, effectivement c'est possible.

    J'ai testé et ça marche. Merci encore pour tout et à plus.

Discussions similaires

  1. Rédirection d'une page JSP vers une autre page JSP
    Par demcoul dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 13/03/2014, 15h26
  2. Utilité d'un pointeur vers une fonction ?
    Par Nasky dans le forum C
    Réponses: 10
    Dernier message: 20/03/2010, 20h54
  3. [Tomcat] migration vers une version plus récente
    Par butcher dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 31/10/2003, 22h46
  4. Réponses: 11
    Dernier message: 24/07/2003, 10h24
  5. Passer de la zone d'édition vers une instruction sql
    Par tripper.dim dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/11/2002, 15h44

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