ORA-12154: TNS: n'a pas pu résoudre l'identifiant de connexion spécifié
Question
Je suis en train de se connecter à 11g Oracle installé sur Linux EL 5 et et obtenir l'erreur suivante
SQL> connect sys/password@ud06 as sysdba
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor
mon 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 le suivant
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 montre 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
La solution
Pouvez-vous ping ud06 avec succès (comme ud06, non ud06.us.server.com)?
Qu'est-ce que la commande
lsnrctl services
montrer?
EDIT: Il me semble peut-être le nom de l'instance de base de données ne sont pas réellement « ORCL »? Qu'est-ce que la production de services lsnrctl me dit est que le service « ORCL », bien que défini dans le fichier listener.ora, est pas en marche.
Pouvez-vous vous connecter avec une connexion directe sur le serveur? Si oui, qu'est-ce que vous utilisez comme la valeur de la variable d'environnement ORACLE_SID? Connectez-vous en tant qu'utilisateur SYS et exécutez la commande suivante:
ALTER SYSTEM registre;
Alors émettre à nouveau la commande de services de lsnrctl et voir si une instance supplémentaire ne se présente pas.
En outre, comme le souligne Alex out, la commande tnsping signale un nom de service complet. Modifiez le fichier sqlnet.ora et définissez la valeur de NAMES.DEFAULT_DOMAIN à NULL si elle a une valeur.
EDIT 2: Est-ce que tnsping ud06 sur le serveur travail? Ou est mon hypothèse que le client et le serveur sont sur des systèmes différents de mal?
Autres conseils
La réponse à ce problème est très simple. Ne vous inquiétez pas les fichiers .ora ou toute autre configuration. Oracle fait tout cela tout simplement parfait.
Seulement lors de la connexion via la ligne de commande, il se confond avec les mots de passe qui ont un symbole @ en eux.
Par conséquent, lors de la connexion via SQL de ligne de commande, ne pas utiliser un mot de passe avec un « @ » en elle. Il suffit d'utiliser l'interface Web pour créer un compte ayant un mot de passe sans symbole « @ » en elle.
C'est !! Problème résolu. J'avais me casser la tête pendant quelques jours, et maintenant mon problème est résolu !!
Le SERVICE_NAME
dans la sortie de tnsping
ne correspond pas à l'entrée en tnsnames.ora
; est ce fichier dans la zone Windows ou la boîte Linux? Il semble que vous ne disposez pas d'une entrée tnsnames.ora
locale (Windows) pour u06
et il est deviner ce que le nom du service devrait être en expansion - je pense que ce la référence au moyen adaptateur de nom d'hôte
Je lance également dans ORA-12154: TNS: n'a pas pu résoudre l'identifiant de connexion spécifié, et en ajoutant l'utilisateur tente de se connecter au groupe oinstall d'oracle fixe il
.essayez d'abord si l'instance oracle commence:
pour les fenêtres:
Démarrer-> configuration configuration-> Administration touls-> Services-> OracleServiceORCL (mon exemple par la voie) -> start
Fournir la chaîne de connexion comme ceci:
ServerName: port / ServiceName, nom d'utilisateur, mot de passe
Je suis é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;
Je fixe ce problème à l'aide des étapes.
Tout d'abord, cette erreur est survenue, si vous n'avez pas installé même répertoire ou un lecteur.
Mais la réponse est ici.
- les fenêtres de connexion comme Adminstrator.
- Allez dans le Panneau de configuration.
- Propriétés système et cliquez sur Enviroment
-
Trouvez la variable du système d'exploitation et changer le nom comme "TNS_ADMIN"
-
Et changez la valeur en tant que « adresse de répertoire pour tnsnames »
-
Redémarrez le système.
- Congrulations.