Ajouter un commentaire

abel_a
Re: Base de donnée répartie sous oracle

Bonjour,

Je ne suis pas sur de bien comprendre votre problématique, mais veuillez trouver quelques éléments de réponse:

Fonctionnement d’un Listener :
A chaque fois qu’un client distant (sqlplus, emagent, … ) effectue une connexion à une instance Oracle, un listener reçoit la demande initiale. Lorsque le lien entre le client et le listener a été effectué, ce dernier va sélectionner le bon « service handler». Le listener oracle écoute sur un port défini par l’administrateur (par défaut il s’agira du port 1521). Il est tout à fait possible de modifer ce numéro de port.

Dans la plupart des cas, on va donc démarrer un listener par machine (sauf configuration particulière). Dans votre cas, un listener pour le serveur S1 (gérant toutes les instances de S1), un second listener pour le serveur S2. Le premier va permettre d’établir les connexions des clients distants sur l’instance « baseS1 » démarrée sur le serveur S1. De la même manière, le second listener assurera les connexions sur l’instance « baseS2 » sur le serveur S2.

Echange et réplication de données :
Le listener ne permet donc pas d’échange de données entre deux bases de données. Cependant, les techniques d’échanges du type "database link" vont s’appuyer sur la configuration SQLNET (listener.ora, sqlnet.ora, tnsnames.ora,…). Pour rappel, un DB Link permettra d'atteindre des données se trouvant sur la baseS2 en étant connecté sur la base baseS1 ou inversement. Dans le cas d’un échange S1-> S2 via Db link par exemple. Il est primordial d’être capable de faire un « tnsping baseS2 » depuis la machine S1 et réciproquement.

En synthèse:
Si l'objectif consiste à se connecter à la base "BaseS2" depuis le serveur S1. Il est nécessaire d'indiquer via le fichier tnsnames.ora où se trouve la base "baseS2" sur le serveur S1.

Si l'objectif est d'executer des requêtes SQL sur des tables hébergées sur BaseS1 et BaseS2 en étant connecté sur la baseS1 par exemple, il faudra créer un DB Link ("create database link ....") sur la BaseS1. Il sera alors possible d'accèder aux tables de BaseS1 mais aussi aux tables de BaseS2.

Dans tous les cas, le plus simple consiste à declarer dans tous les fichiers tnsnames.ora (des serveurs S1, S2 et des éventuels clients impactés), toutes les bases. Il faudra ensuite vérifier les différentes combinaisons de connexions.

Cdt,
Abel

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
  SSS   L     L     V     V  Y   Y 
S L L V V Y Y
SSS L L V V Y
S L L V V Y
SSSS LLLL LLLL V Y