|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Invité de passage
![]() Inscription : mai 2007 Messages : 8 ![]() |
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 :
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:
|
|||
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 8 ![]() |
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 ? |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 024 ![]() |
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: Si tel n'est pas le cas, alors il faut créer le DBLINK en utilisant 'alias1.world' |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 8 ![]() |
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 |
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 024 ![]() |
Citation:
|
|
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Inscription : octobre 2006 Messages : 73 ![]() |
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 ? |
|
|
00
|
|
|
#7 | ||||||
|
Membre confirmé
![]() Inscription : mars 2007 Messages : 750 ![]() |
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 :
Code :
Code :
|
||||||
|
|
00
|
|
|
#8 |
|
Membre confirmé
![]() Inscription : mars 2007 Messages : 750 ![]() |
J'ai trouvé le problème:
En fait mon TNSNAMES.ORA référence un autre TNSNAMES.ora via un IFILE: 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? |
|
|
00
|
|
|
#9 |
![]() Inscription : décembre 2002 Messages : 2 397 ![]() |
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 |
|
|
00
|
|
|
#10 |
|
Membre confirmé
![]() Inscription : mars 2007 Messages : 750 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com