2010-02-18 4 views
6

Je suis en train de se connecter à Oracle 11g installé sur Linux EL 5 et et obtenir l'erreur suivanteORA-12154: TNS: n'a pas pu résoudre l'identifiant de connexion spécifié

SQL> connect sys/[email protected] as sysdba 
ERROR: 
ORA-12514: TNS:listener does not currently know of service requested in connect 
descriptor 

my listener.ora sous réseau/admin est comme suit

LISTENER= 
    (DESCRIPTION= 
    (ADDRESS_LIST= 
     (ADDRESS=(PROTOCOL=tcp)(HOST=ud06)(PORT=1521)) 
     (ADDRESS=(PROTOCOL=ipc)(KEY=extproc)))) 

SID_LIST_LISTENER= 
    (SID_LIST= 
    (SID_DESC= 
     (GLOBAL_DBNAME=orcl) 
     (ORACLE_HOME=/home/oracle/app/oracle/product/11g) 
     (SID_NAME=orcl)) 
    (SID_DESC= 
     (SID_NAME=plsextproc) 
     (ORACLE_HOME=/home/oracle/app/oracle/product/11g) 
     (PROGRAM=extproc))) 

MY tnsnames.ora est la suivante

ORCL = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl) 
    ) 
) 

EXTPROC_CONNECTION_DATA = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
    ) 
    (CONNECT_DATA = 
     (SID = PLSExtProc) 
     (PRESENTATION = RO) 
    ) 
) 

UD06= 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = ud06)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVICE_NAME = orcl) 
    ) 
) 

mon statut lsnrctl show s comme suit:

LSNRCTL> status 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ud06.us.server.com)(PORT=1521))) 
STATUS of the LISTENER 
------------------------ 
Alias      LISTENER 
Version     TNSLSNR for Linux: Version 11.2.0.1.0 - Production 
Start Date    17-FEB-2010 16:23:06 
Uptime     0 days 0 hr. 12 min. 33 sec 
Trace Level    off 
Security     ON: Local OS Authentication 
SNMP      OFF 
Listener Parameter File /home/oracle/app/oracle/product/11g/network/admin/listener.ora 
Listener Log File   /home/oracle/app/oracle/product/11g/log/diag/tnslsnr/ud06/listener/alert/log.xml 
Listening Endpoints Summary... 
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ud06.us.server.com)(PORT=1521))) 
    (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc))) 
Services Summary... 
Service "orcl" has 1 instance(s). 
    Instance "orcl", status UNKNOWN, has 1 handler(s) for this service... 
Service "plsextproc" has 1 instance(s). 
    Instance "plsextproc", status UNKNOWN, has 1 handler(s) for this service... 
The command completed successfully 
+0

J'ai rencontré ** ORA-12154 ** sur une machine sur laquelle seul ** Oracle Client ** était installé. Ma réponse [ici] (http://stackoverflow.com/a/26020374/1497596). – DavidRR

Répondre

4

Pouvez-vous ping ud06 avec succès (comme ud06, non ud06.us.server.com)?

Qu'est-ce que la commande

lsnrctl services 

spectacle?

EDIT: Il me semble que le nom d'instance de la base de données n'est peut-être pas "orcl"? Ce que la sortie des services lsnrctl me dit est que le service "orcl", bien que défini dans le fichier listener.ora, n'est pas en cours d'exécution.

Pouvez-vous vous connecter avec une connexion directe sur le serveur? Si oui, qu'est-ce que vous utilisez comme valeur de variable d'environnement ORACLE_SID? Connectez-vous en tant qu'utilisateur SYS et exécutez la commande:

ALTER SYSTEM REGISTER;

Ensuite, exécutez à nouveau la commande lsnrctl services et vérifiez si une instance supplémentaire n'apparaît pas. Par ailleurs, comme le souligne Alex, la commande tnsping signale un nom de service qualifié complet. Editez le fichier sqlnet.ora et définissez la valeur NAMES.DEFAULT_DOMAIN sur NULL si elle a une valeur.

EDIT 2: Est-ce que tnsping ud06 sur le serveur fonctionne? Ou est-ce que mon hypothèse est que le client et le serveur sont sur des systèmes différents?

+0

oui je peux cingler juste ud06. Aussi quand je ne tnsping je reçois le suivant C: \ Documents and Settings \ a.APPLICATIONS> TNSPING ud06 TNS Ping Utility pour Windows 32 bits: Version 10.2.0.1.0 - Production sur 17 fé- 2 010 23:09:16 Copyright (c) 1997, 2005, Oracle. Tous les droits sont réservés. fichiers de paramètres utilisés: adaptateur HOSTNAME Utilisé pour résoudre l'alias La tentative de contact (DESCRIPTION = (CONNECT_DATA = (SERVICE_NAME = ud06.us.server.com)) (adresse = (PROTOCOL = TCP) (HOST = 19,148. 21.230) (PORT = 1521))) OK (350 msec) – user275705

+0

lsnrctl montre comme suit – user275705

+0

[oracle @ ud06 ~] $ lsnrctl services LSNRCTL pour Linux: Version 11.2.0.1.0 - Production le 17 février 2010 23 : 13: 01 Connexion à DESCRIPTION = (ADRESSE = (PROTOCOLE = tcp) (HÔTE = ud06) (PORT = 1521))) Services Résumé ... Le service "orcl" a 1 instance (s). Instance "orcl", statut UNKNOWN, a 1 gestionnaire (s) pour ce service ... Handler (s): "DEDICATED" établie: 1 refusée: 0 SERVEUR LOCAL Service "plsextproc" 1 résultat (s) . Instance "plsextproc", état UNKNOWN, a 1 gestionnaire (s) pour ce service Gestionnaire (s): "DEDICATED" établi: 0 refusé: 0 SERVEUR LOCAL La commande s'est terminée avec succès – user275705

1

La sortie SERVICE_NAME de la sortie tnsping ne correspond pas à l'entrée tnsnames.ora; est ce fichier de la boîte de Windows ou de la machine Linux? Il semble que vous n'ayez pas d'entrée locale (Windows) tnsnames.ora pour u06 et que vous devinez quel devrait être le nom du service. Je pense que c'est ce que signifie la référence à l'adaptateur de nom d'hôte.

0

Je cours également dans ORA-12154: TNS: n'a pas pu résoudre l'identificateur de connexion spécifié, et l'ajout de l'utilisateur essayant de se connecter au groupe oinstall d'Oracle l'a corrigé.

5

La réponse à ce problème est très simple. Ne vous inquiétez pas pour les fichiers .ora ou toute autre configuration. Oracle fait tout cela parfait. Ce n'est que lors de la connexion via une ligne de commande que les mots de passe contenant un symbole @ sont confondus.

donc lors de la connexion par la ligne de commande SQL, ne pas utiliser un mot de passe avec un « @ » en elle.Utilisez simplement l'interface web pour créer un compte avec un mot de passe sans le symbole '@'.

C'est !! Problème résolu. Je me suis cassé la tête pendant quelques jours, et maintenant mon problème est résolu !!

0

premier essai si l'instance d'Oracle est lancé:

pour les fenêtres:

Démarrer-> configuration configuration-> Administration touls-> Services-> OracleServiceORCL (mon exemple par la voie) -> commencer

0

comme la chaîne Fournir de connexion ceci:

ServerName: port/ServiceName, nom d'utilisateur, mot de passe

Add connection image

0

je également face à la même erreur, essayez ce code:

SQL> conn hr/hr @pdborcl; 

et si vous trouvez même erreur, cela signifie que vous avez un nom de base de données connectables différentes. Vérifiez le nom de la base de données connectables en écrivant simplement la commande suivante dans sqlplus

sql> SELECT name, con_id FROM v$pdbs; 
0

je fixe ce problème à l'aide des étapes. Tout d'abord, cette erreur est survenue si vous n'avez pas installé le même répertoire ou le même lecteur.

Mais la réponse est ici.

  1. Connexion de fenêtres en tant qu'administrateur.
  2. Accédez au Panneau de configuration.
  3. Propriétés système et cliquez sur Enviroment
  4. Trouver la variable OS et changer le nom comme "TNS_ADMIN"

    enter image description here

  5. et changez la valeur en tant que "adresse de répertoire pour tnsnames" enter image description here

  6. Redémarrez le système.

  7. Congressions.
Questions connexes