Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/06/2007, 17h15   #1
Invité de passage
 
Inscription : mai 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 8
Points : 1
Points : 1
Par défaut DBLink - erreur ORA12154

Bonjour, je tente de mettre en place un DB Link entre 2 bases.

Source (base distante) = baseS
Destination (base locale) = baseL

Pour se faire, j'ai créé le DBLink suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CREATE DATABASE LINK sourceID connect TO login IDENTIFIED BY pwd USING 'alias1';
 
Extrait du TNS_NAMES.ora :
 
alias1.world= 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
        (ADDRESS = 
          (COMMUNITY = tcp.world)
          (PROTOCOL = TCP)
          (Host = oratoto1)
          (Port = 1521)
        )
 
    )
    (CONNECT_DATA = (SID = sourceID)
    )
  )
Cet alias est utilisé par ailleurs pour se connecter à la base distante, ca fonctionne sans aucun souci donc les infos du TNS_NAMES sont valides.

Et pourtant lorsque je lance une requête sur une table via le DB_Link:

select * from table1@sourceID;

Toad me remonte la traditionelle erreur :
Citation:
ORA-12154 TNS : could not resolve service name
A l'aide…………..
michael.mazuk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 17h17   #2
Invité de passage
 
Inscription : mai 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 8
Points : 1
Points : 1
En complément, sur ma base de création du DBLink, mon Global_Name est positionné à : NomDB

et non à NomDB.Nomdomain

comme cela est prêché dans quelques post de ce forum. Malheureusement je n'ai pas les droits pour modifier cette variable.

Est ce que cela peut jouer ?
michael.mazuk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 18h29   #3
Membre Expert
 
Inscription : avril 2006
Messages : 1 024
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 1 024
Points : 1 175
Points : 1 175
L'erreur liée au global-name viendra peut etre plus tard mais pour l'instant ça plante avant.

Quand on crée un DB-LINK, il faut bien avoir en tete que la base devient un client d'une autre base. C'est à dire qu'il faut que les paramètres client tels que les fichiers tnsnames.ora et sqlnet.ora soient corrects sur la machine contenant la premiere base (base locale). Il faut aussi faire attention à la valeurs des variables d'environnement ORACLE_HOME et TNS_ADMIN au moment ou la base est démarrée, car c'est d'elles dont dépend le chemin ou oralce va chercher les 2 fichiers de paramétrages cités plus haut.

D'autre part, étant donné que l'alias du DBLINK est sans suffixe et que l'alias du tnsnames.ora est suffixé par ".world", il faut vérifier que le fichier sqlnet.ora contient bien la ligne:

Code :
NAMES.DEFAULT_DOMAIN = world
Si tel n'est pas le cas, alors il faut créer le DBLINK en utilisant 'alias1.world'
remi4444 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 20h38   #4
Invité de passage
 
Inscription : mai 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 8
Points : 1
Points : 1
merci Remi mais apres differents tests, le pb ne semble pas provenir du domain_name

ce qui me surprend le plus c'est surtout que ca fonctionne sans pb lorsque je me connecte à la base distante avec le meme TNS NAME
michael.mazuk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 10h33   #5
Membre Expert
 
Inscription : avril 2006
Messages : 1 024
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 1 024
Points : 1 175
Points : 1 175
Citation:
Envoyé par michael.mazuk
merci Remi mais apres differents tests, le pb ne semble pas provenir du domain_name

ce qui me surprend le plus c'est surtout que ca fonctionne sans pb lorsque je me connecte à la base distante avec le meme TNS NAME
depuis la machine de ta base locale ? avec les memes variable d'environement que lors du lancement de ta base locale ?
remi4444 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 07h31   #6
Membre régulier
 
Inscription : octobre 2006
Messages : 73
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : octobre 2006
Messages : 73
Points : 85
Points : 85
En fait le problème provient sans doute du fait que quand tu te connectes directement depuis ton client tu utilises ton tnsnames client (celui dont tu nous parles).

Mais ce n'est pas le cas quand tu es connecté à baseS via ton client et que tu veux faire une requête sur baseL via un dblink.
A ce moment tu utilises en fait le tnsnames qui est présent sur le serveur hebergeant baseS, c'est à dire le serveur (Unix, Windows ...) distant.

Es-tu sûr que baseS soit bien renseigné dans le tnsnames distant ?
Harry Potter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2009, 18h07   #7
Membre confirmé
 
Inscription : mars 2007
Messages : 750
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 750
Points : 277
Points : 277
Bonjour je rebondis sur ce post car j'ai le même problème et la solution n'a apparemment pas été trouvé.
j'ai une base locale.
lorsque je me connecte à la base d'un collegue ça marche:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
C:\>sqlplus ubxadmin/ubxadmin@ubixjfc
 
SQL*Plus: Release 10.2.0.4.0 - Production ON Ven. Sept. 4 18:00:38 2009
 
Copyright (c) 1982, 2007, Oracle.  ALL Rights Reserved.
 
Erreur lors de l'accÞs Ó PRODUCT_USER_PROFILE
Avertissement : Informations du profil utilisateur du produit non chargÚes !
Vous devrez peut-Ûtre exÚcuter PUPBLD.SQL en SYSTEM
 
ConnectÚ Ó :
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
 
SQL> select count(1) from audlib;
 
  COUNT(1)
----------
       476
je me connecte sur ma base locale et je crée un dblink:
Code :
1
2
 
CREATE public DATABASE link "JFC" connect TO UBXADMIN IDENTIFIED BY UBXADMIN USING 'UBIXJFC';
j'essaie de requeter la table audlib de la base distante:
Code :
1
2
3
4
5
6
7
8
9
10
 
SQL> SELECT count(1) FROM audlib@JFC
  2  ;
 
*
ERREUR Ó la ligne 2 :
ORA-12154: TNS : l'identificateur de connexion indiquÚ n'a pas pu Ûtre rÚsolu
 
 
SQL>
Je comprend pas
farenheiit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2009, 11h50   #8
Membre confirmé
 
Inscription : mars 2007
Messages : 750
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 750
Points : 277
Points : 277
J'ai trouvé le problème:
En fait mon TNSNAMES.ORA référence un autre TNSNAMES.ora via un IFILE:
Code :
1
2
 
IFILE=S:\BACK\TNSNAMES\TNSDEV.ORA
La base que je veux linker est définie dans cet IFILE.
Pour me connecter via sqlplus directement à cette base il n' y a pas de soucis. par contre via le db link ça ne marche pas.
Si je met directement la chaine de connexion dans mon fichier TNSNAMES.ORA sans passer par le IFILE ça marche.
Ca ressemble à un Bug ça non?
farenheiit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2009, 12h31   #9
Rédacteur
 
Inscription : décembre 2002
Messages : 2 397
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 397
Points : 3 298
Points : 3 298
Citation:
Envoyé par farenheiit Voir le message
...Ca ressemble à un Bug ça non?
Voui...
Un IFILE dans le TNSNAMES.ORA, je ne savais même pas que c'était possible !
Pourquoi ne pas utiliser TNS_ADMIN à la place ?
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2009, 12h46   #10
Membre confirmé
 
Inscription : mars 2007
Messages : 750
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 750
Points : 277
Points : 277
Citation:
Envoyé par Pomalaix Voir le message
Voui...
Pourquoi ne pas utiliser TNS_ADMIN à la place ?
je connais pas. ca consiste en quoi?
farenheiit est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h58.


 
 
 
 
Partenaires

Hébergement Web