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 :

Erreur ORA-12514 avec database link


Sujet :

Administration Oracle

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 2
    Points
    2
    Par défaut Erreur ORA-12514 avec database link
    Bonjour à tous ! Je me trouve confronté à un problème pas évident.
    J'ai deux bases sur deux instances différentes d'Oracle avec les TNS suivant :

    SVR051 =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)
    (PORT = 1521)))
    (CONNECT_DATA =
    (SERVICE_NAME = BASE01)))


    SVR018 =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = yyy.yyy.yyy.yyy)
    (PORT = 1521)))
    (CONNECT_DATA =
    (SERVICE_NAME = BASE02)))


    Je parviens à me connecter sur les deux bases sans problème de façon indépendante. Je crée alors un utilisateur sur la base SVR018, auquel je donne des droits sur trois vues dont j'ai besoin. Je crée ensuite sur la base SVR051, un databaselink de ce genre :

    create database link BASE02 connect to NomUtilisateur identified by SonMDP using 'SVR018';

    je vérifie dans la table user_db_links qu'il est bien créé : ok mais avec une extension .GMP.LOCAL (mais même supprimé j'ai un problème !)

    mais lorsque je tente un SELECT du genre :
    SELECT * FROM MaVue@BASE02; et bien ça me retourne une ORA-12514 TNS bidule machin ...

    une manipulation du init.ora sur le global_name_xxx (j'ai plus le nom exact en tête ... ) en True ou False ne change rien ...
    En gros, je ne sais plus quoi faire !

    Si quelqu'un à une solution, un grand merci d'avance !!!

  2. #2
    Membre éprouvé Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Points : 931
    Points
    931
    Par défaut
    regarde dans le répertoire de ton tnsnames, tu as le fichier sqlnet.ora

    là-dedans tu as certainement le paramètre DEFAULT_DOMAIN qui est renseigné... alors essaye de le supprimer

    ça peut venir de ça...

    PS ton GLOBAL_NAME doit être à FALSE pour pouvoir faire un DBlink avec un nom différent du nom de la base cible...
    Il est plus facile de voir les signes avant-coureurs après coup que l'inverse !

    Yorglaa

  3. #3
    Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Pas de fichier sqlnet.ora ...
    Pour le Global_name_xxx, j'ai essayé avec les deux valeurs, en faisant correspondre les dblink avec le nom de la base ... ça marche pas non plus ...
    Merci pour la tentative Yorglaa !

  4. #4
    Membre éprouvé Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Points : 931
    Points
    931
    Par défaut
    vérifie que tes 2 bases sont déclarées dans le listener.ora, et sous quel nom...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ORA-12514 TNS:listener could not resolve SERVICE_NAME given in connect descriptor
     
    Cause: The SERVICE_NAME in the CONNECT_DATA was not found in the listener's tables.
     
    Action: Check to make sure that the SERVICE_NAME specified is correct
    Il est plus facile de voir les signes avant-coureurs après coup que l'inverse !

    Yorglaa

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    c'est bien le tnsname du serveur dont tu parles... pas de ton poste client ?

  6. #6
    Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    En fait c'est bien une ORA-12514, mais le message est plutôt du genre TNS name non trouvé, comme lorsque la chaine du TNS du fichier TNSNAME.ORA est erronée ...

  7. #7
    Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    C'est bien du tnsname du client dont je parle ...

  8. #8
    Membre éprouvé Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Points : 931
    Points
    931
    Par défaut
    ah... mais ton dblink il va faire appel à celui du serveur...
    Il est plus facile de voir les signes avant-coureurs après coup que l'inverse !

    Yorglaa

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    alors l'erreur est là

    Pour que BASE02 voit SVR018 c'est le tnsnames.ora du serveur contenant la base BASE02 qu'il faut paramétrer

  10. #10
    Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Non, je crois que je me suis mal expliqué :
    J'ai un client sur le lequel je veux attaquer deux...
    je crois que je viens de comprendre ... je viens de réfléchir
    Quand, dans la déclaration du database link, le , c'est un SRV018 définit dans le TNSNAME du serveur !!! Evidement ! Je savais que c'était simple !!! Et bien merci à tous, ça m'enlève une sacré épine du pied !

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Tout juste Auguste

  12. #12
    Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Resalut ! Finalement ça ne marche pas ! J'ai maintenant l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORA-02085: lien de base de données NomLink.GMP.LOCAL se connecte MonLink.WORLD
    Une idée ? Merci d'avance!

  13. #13
    Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Précision : dans la table v$parameter (db_domain) de mon serveur SVR051, rien n'est défini, par contre dans celle du SVR018 la valeur de db_domain est bien à 'world'. Comment faire sans toucher aux configurations ?

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    tu vas être obligé de toucher au init.ora pour renseigner le db_domain

  15. #15
    Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    C'est vraiment obligé ?

  16. #16
    Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Et le faire directement dans la table v$parameter : je n'ai accès qu'à la base et pas au fichier physique ...

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    autant pour moi

    c'est le global name qu'il faut changer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER DATABASE RENAME GLOBAL_NAME TO GMP.LOCAL
    Ou alors tu crées le DBLINK avec le nom : MonLink.WORLD

  18. #18
    Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    CA MARCHE !!!! J'ai compris mon erreur : à priori le simple fait d'aller modifier la table user_db_links directement ne suffit, il faut dropper puis recréer, non ? Toujours est-il que je m'en sors avec cette chaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    create database link MonLink.WORLD connect to MonUserSurSVR018 identified by SonMDP using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = TCP)(HOST = xxx.xxx.xxx.018)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = MonLink)))';
    Autre chose : apparement c'est sensible aux minuscules/majuscules ...
    Encore merci pour votre aide à tous et en particulier à Orafrance !

  19. #19
    Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Une autre petite chose dans l'utilisation des tables ou vues : ne pas oublier de faire précéder le nom de la table par le nom du propriétaire de la table par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from NomProprio.NomTable@MonLink.WORLD
    En fait, j'ai dû passer deux ou trois fois au dessus de la solution à cause de petites choses comme ça ! Faut être pris pour apprendre !

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par gafreu
    à priori le simple fait d'aller modifier la table user_db_links directement ne suffit, il faut dropper puis recréer, non ?
    il ne faut JAMAIS modifier le contenu des tables systèmes (owner = SYS ou SYSTEM), ce sont des tables du dictionnaire Oracle et leur modification peut altérer sensiblement le bon fonctionnement d'Oracle

    Il vaut mieux effectivement respecter la casse

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 06/09/2016, 13h39
  2. erreur ORA-06502 avec UTL_FILE
    Par leftyy dans le forum PL/SQL
    Réponses: 1
    Dernier message: 03/11/2010, 17h14
  3. Réponses: 3
    Dernier message: 21/05/2010, 20h15
  4. erreur ora-00907 avec oracle
    Par mehdiyou dans le forum SQL
    Réponses: 3
    Dernier message: 11/04/2008, 22h53
  5. Erreur Ora 12514
    Par Pecwarrior dans le forum Oracle
    Réponses: 1
    Dernier message: 21/09/2006, 11h18

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