J'essaie de me connecter à Oracle 10.2.0 à partir de NetBeans, à l'aide de la chaîne de connexion suivante:
jdbc:Oracle:thin:@localhost:1521:XE
Le plus étrange est que tout a bien fonctionné, jusqu'à ce que celui-ci redémarre. J'ai commencé à avoir cette TNS-12505 des erreurs tout le temps; regardez les dernières entrées dans mon listener.log
:
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production on 14-APR-2011 13:46:48
Copyright (c) 1991, 2005, Oracle. All rights reserved.
System parameter file is D:\oraclexe\app\Oracle\product\10.2.0\server\network\admin\listener.ora
Log messages written to D:\oraclexe\app\Oracle\product\10.2.0\server\network\log\listener.log
Trace information written to D:\oraclexe\app\Oracle\product\10.2.0\server\network\trace\listener.trc
Trace level is currently 0
Started with pid=3460
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC_FOR_XEipc)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=Brodyaga-PC)(PORT=1521)))
Listener completed notification to CRS on start
TIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODE
14-APR-2011 13:48:54 * (CONNECT_DATA=(SID=XE)(CID=(PROGRAM=JDBC Thin Client)(Host=__jdbc__)(USER=Brodyaga))) * (ADDRESS=(PROTOCOL=tcp)(Host=127.0.0.1)(PORT=58458)) * establish * XE * 12505
TNS-12505: TNS:listener does not currently know of SID given in connect descriptor
14-APR-2011 13:49:00 * (CONNECT_DATA=(SID=XE)(CID=(PROGRAM=JDBC Thin Client)(Host=__jdbc__)(USER=Brodyaga))) * (ADDRESS=(PROTOCOL=tcp)(Host=127.0.0.1)(PORT=58481)) * establish * XE * 12505
TNS-12505: TNS:listener does not currently know of SID given in connect descriptor
14-APR-2011 13:49:02 * (CONNECT_DATA=(SID=XE)(CID=(PROGRAM=JDBC Thin Client)(Host=__jdbc__)(USER=Brodyaga))) * (ADDRESS=(PROTOCOL=tcp)(Host=127.0.0.1)(PORT=58487)) * establish * XE * 12505
TNS-12505: TNS:listener does not currently know of SID given in connect descriptor
14-APR-2011 13:50:23 * (CONNECT_DATA=(CID=(PROGRAM=)(Host=)(USER=Brodyaga))(COMMAND=services)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=169869568)) * services * 0
Les trois premières entrées correspondent à mes tentatives de connexion à partir de NetBeans. La quatrième, la connexion via SQL * Plus, fonctionnait parfaitement.
Voici le contenu de monlistener.ora
:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(Oracle_HOME = D:\oraclexe\app\Oracle\product\10.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(Oracle_HOME = D:\oraclexe\app\Oracle\product\10.2.0\server)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
(ADDRESS = (PROTOCOL = TCP)(Host = Brodyaga-PC)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
Ettnsnames.ora
:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(Host = Brodyaga-PC)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
Et sortie de> services lsnrctl
C:\Users\Brodyaga>lsnrctl services
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 14-APR-2011 13:59
:45
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0
LOCAL SERVER
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0
LOCAL SERVER
The command completed successfully
Les deux services Oracle sont démarrés et SQL * Plus se connecte correctement.
Existe-t-il une solution de contournement pour cette erreur?
Vous devez ajouter l'entrée SID pour XE afin d'enregistrer l'instance avec le programme d'écoute.
Après l’installation d’Oracle XE, tout semble aller bien, mais lorsque vous lancez
C:\>sqlplus / as sysdba
SQL>shutdown immediate
SQL>startup
TNS-12505: TNS:listener does not currently know of SID given in connect descriptor
l'instance ne s'enregistrera pas avec l'auditeur.
Alors éditez votre listener.ora comme ceci:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = XE)
(Oracle_HOME = C:\oraclexe\app\Oracle\product\10.2.0\server)
)
(SID_DESC =
(SID_NAME = PLSExtProc)
(Oracle_HOME = D:\oraclexe\app\Oracle\product\10.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(Oracle_HOME = D:\oraclexe\app\Oracle\product\10.2.0\server)
(PROGRAM = extproc)
)
)
Ce problème est survenu lorsque j'ai installé Oracle XE sous Windows 7. Je n'ai pas été confronté à ce problème sous Windows XP. En général, cette entrée ne devrait pas être nécessaire car l'instance devrait s'inscrire automatiquement avec le programme d'écoute. En exécutant Oracle XE sur Linux (Fedora), il n’est pas nécessaire d’ajouter XE à la liste des partenaires.
cela a fonctionné pour moi - j'ai fait tout ce qui précède puis changé:
jdbc.databaseurl=jdbc:Oracle:thin:@localhost:1521:xe
à:
jdbc.databaseurl=jdbc:Oracle:thin:@localhost:1521/xe
Après un changement d'adresse IP dans notre machine virtuelle Oracle, le programme d'écoute n'a plus jamais fonctionné. Enfin, cette commande a résolu le problème (192.168.10.200 étant la nouvelle adresse IP)
[Oracle @ oracle admin] $ sqlplus/as sysdba
SQL * Plus: Version 11.2.0.1.0 Production le mardi 10 mai 12:57:37 2016
Copyright (c) 1982, 2009, Oracle. Tous les droits sont réservés.
Connecté à: Oracle Database 11g Édition Enterprise Edition 11.2.0.1.0 - Production 64 bits Avec les options Partitionnement, OLAP, Data Mining et Real Application Testing
SQL> alter system set local_listener = '(ADDRESS = (PROTOCOL = tcp) (hôte = 192.168.10.200) (PORT = 1521))' scope = les deux;
Système modifié.
SQL> modifier le registre système;
Système modifié.
SQL> exit
J'ai rencontré ce problème après une modification du pare-feu visant à restreindre l'accès entre notre réseau interne et le serveur de base de données signalant l'erreur située dans la zone démilitarisée. La communication fonctionnait bien jusqu'au changement, et les redémarrages du système et de la base de données étaient inutiles. Dans mon cas, les deux installations Oracle XE11gR2 sont sous Windows.
Après un jour de lutte, j'ai trouvé http://edstevensdba.wordpress.com/2011/07/30/exploring-the-local_listener-parameter/ et résolu le problème avec:
alter system set local_listener='(ADDRESS=(PROTOCOL=tcp)(Host=[my server's ip])(PORT=1521))' scope=both;
alter system register;
il se peut que cela fonctionne simplement à cause du "alter system register" suggéré par ik_zelf. J'ai eu l'IP déjà défini dans des endroits pertinents dans listener.ora et tnsnames.ora.
Étape 1 - Vérification du statut du programme d'écoute de base de données
lsnrctl status
Notez que l’auditeur que vous souhaitez (dans notre cas, «orcl») ne s'affiche pas.
Étape 2 - Connexion via sqlplus
sqlplus sys/Oracle as sysdba
Sqlplus nous a donné ce message d'erreur:
Writing audit records to Windows Event Log failed
Étape 3 - Accédez à l'observateur d'événements Windows (eventvwr.exe)
Sous «Journaux Windows», cliquez avec le bouton droit sur Application et sélectionnez «Effacer le journal». Faites la même chose pour le système.
Il peut également être judicieux de cliquer avec le bouton droit de la souris sur Application et de sélectionner Propriétés. Ensuite, sous «Taille du journal», sélectionnez l’option suivante sous «Lorsque la taille maximale du journal est atteinte»: «Écraser les événements si nécessaire». Cela devrait éviter que le journal ne soit saturé et empêcher la base de données de démarrer.
Sous Windows Vista et supérieur, vous pouvez exécuter la commande suivante pour effacer le journal des applications:
wevtutil cl Application
Étape 4 - Connectez-vous via sqlplus
sqlplus sys/Oracle as sysdba
Vous devriez maintenant pouvoir vous connecter sans message d'erreur.
Étape 5 - Vérification du statut du listener de la base de données
lsnrctl status
Vous devriez maintenant voir votre auditeur en marche.
Étape 6 - Démarrer UCM
UCM devrait maintenant démarrer.
Pour une réponse plus détaillée à cette question, vous pouvez lire mon article complet blog .
Comme mentionné en enlevant les deux points :
et en les remplaçant par une barre oblique /
avant que la face latérale ne fonctionne pour moi.
J'ai déjà eu ce problème auparavant.
J'avais le même problème sous Windows 7. La raison en était que j'avais été connecté à un réseau privé virtuel à l'aide de Cisco AnyConnect Secure Mobility Client.
J'exécute Oracle xpress edition 11.2 sur Windows 8 et j'ai eu la même erreur en essayant de se connecter à la base de données en utilisant sqldeveloper.
J'ai modifié listener.ora conformément à la réponse de Brandt ci-dessus et j'ai même redémarré mon ordinateur, mais le problème n'a pas été résolu.
J'ai effectué les opérations suivantes: 1. Allez dans le Panneau de configuration -> Outils d'administration -> ServicesVous trouverez un service appelé "OracleServiceXE" qui ne fonctionne pas.
Je l'ai démarré et j'ai essayé de me connecter à nouveau, le problème est résolu.
Votre base de données, qui a apparemment Oracle_SID XE, n'est pas définie dans le fichier listener.ora. Ce n'est pas un problème, car lorsque la base de données s'ouvre normalement, elle s'enregistrera elle-même dans le programme d'écoute par défaut, celui du port 1521, ce qui est correct.
Si la base de données démarre avant le programme d'écoute, elle ne dispose d'aucun programme d'écoute. Cela se produira toutes les quelques minutes, donc après un certain temps, l'erreur devrait disparaître car l'enregistrement a eu lieu. Vous pouvez utiliser alter system register;
pour accélérer ceci . Si la base de données est en mode restreint, les connexions utilisant un service échoueront. Vous utilisez Oracle_SID, ce n'est donc pas votre problème.
Vérifiez également les noms utilisés. Localhost at-il la même adresse que Brodyaga-PC? Dans la chaîne jdbc, vous utilisez localhost et l'écouteur écoute Brodyaga-PC. Est localhost 127.0.0.1?
Vérifiez - LSNRCTL> stat J'ai un résultat comme -
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version 11.2.0.1.0 - Production
Start Date 17-APR-2016 10:12:38
Uptime 0 days 10 hr. 6 min. 16 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File
C:\product\11.2.0\dbhome_1\network\admin\listener.ora
Listener Log File c:\app\admin\diag\tnslsnr\admin-PC\listener\alert\log.xml Listening
Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1522ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=127.0.0.1)(PORT=1522)))
Services Summary... Service "CLRExtProc" has 1 instance(s). Instance
"CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully.
D'après les détails ci-dessus - Mon numéro de port est - 1522 et je suis en mesure de créer une connexion à l'aide de "orcl" instance -so. J'ai utilisé le port en tant que 1522 et l'instance en tant que "orcl" - Maintenant, l'URL est -
DriverManager.getConnection("jdbc:Oracle:thin:@localhost:1522:orcl", "SYS as SYSDBA","password");
Cela a fonctionné pour moi, donc veuillez vérifier LSNRCTL> stat dans la commande Invite et configurer votre URL de connexion en conséquence.
J'espère que ça aidera quelqu'un.
Démarrer OracleServiceHari où "HARI" est le SID a fonctionné pour moi.
D'autres personnes confrontées au même problème peuvent vérifier l'état du service.
Juste pour une autre possibilité de vérification, j’ai eu exactement le même problème avec un numéro de port incorrect spécifié dans l’URL de connexion. J'ai créé une nouvelle instance Oracle11g et oublié de supprimer l'ancienne qui occupait le même port 1521; la nouvelle instance a donc démarré automatiquement sur le port 1522. La modification du numéro de port a résolu mon problème.
sous Windows dans l'option de recherche Allez dans les outils d'administration> services de composant> OracleServiceXE (démarrer ce service)
Accédez au gestionnaire de tâches et aux services Vérifier ci-dessous sont en cours d'exécution ou non, sinon démarrez-les.
OracleXETNSListener OracleXEClrAgent OracleServiceXE
Je viens de faire face au même problème juste après avoir installé Oracle XE 11.2. Après avoir lu et consulté un ami DBA, j'ai exécuté la commande suivante:
C:\>tnsping xe
TNS Ping Utility for 64-bit Windows: Version 11.2.0.2.0 - Production on 11-ENE-2017 14:27:44
Copyright (c) 1997, 2014, Oracle. All rights reserved.
Used parameter files:
C:\oraclexe\app\Oracle\product\11.2.0\server\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(Host = myLaptop)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE)))
OK (30 msec)
C:\>
Comme vous pouvez le constater, sa résolution prend du temps. J'ai donc ajouté une entrée au fichier hosts de la manière suivante:
127.0.0.1 localhost
Une fois cela fait, exécutez à nouveau la même commande:
C:\>tnsping xe
TNS Ping Utility for 64-bit Windows: Version 11.2.0.2.0 - Production on 11-ENE-2
017 14:40:29
Copyright (c) 1997, 2014, Oracle. All rights reserved.
Used parameter files:
C:\oraclexe\app\Oracle\product\11.2.0\server\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(Host = myLaptop)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SER
VICE_NAME = XE)))
OK (30 msec)
C:\>
Comme la réponse temporelle diminue radicalement, j'ai essayé ma connexion sur sqldeveloper.
Dans mon cas, je viens de suivre les étapes suivantes dans Windows 10.