Veuillez noter que j'ai modifié les détails pour des raisons de sécurité. Cependant, le problème reste intact.
J'ai installé une base de données Oracle 11g sur un serveur à l'emplacement situé, par exemple, herp-devDV.derp.edu. Maintenant, j’ai une autre base de données Oracle 11g sur un serveur à l’emplacement, disons derp-db.derp.edu.
J'ai entré le nom de connexion, le nom d'utilisateur, le mot de passe, le nom d'hôte et le nom du service dans Oracle SQL developer pour herp-devDV.derp.edu et derp-db.derp.edu. Je peux me connecter au schéma dans derp-db.derp.edu, mais pas herp-devDV.derp.edu. Cela me donne ce message:
Failure - Test failed: The Network Adapter could not establish the connection
J'ai les informations suivantes:
lsnrctl status
J'ai reçu la sortie suivante
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
Start Date 03-JUN-2014 13:37:22
Uptime 6 days 0 hr. 53 min. 4 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File D:\Oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
Listener Log File d:\Oracle\diag\tnslsnr\HERP-DEVDB\listener\alert\log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=HERP-DEVDB.derp.edu)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "HERPDEVDBXDB" has 1 instance(s).
Instance "herpdevdb", status READY, has 1 handler(s) for this service...
Service "herpdevdb" has 1 instance(s).
Instance "herpdevdb", status READY, has 1 handler(s) for this service...
The command completed successfully
Je vérifie ensuite mon auditeur.ora et trouve
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(Oracle_HOME = D:\Oracle\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\Oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(Host = HERP-DEVDB.derp.edu)(PORT = 1521))
)
)
À ce stade, j'avoue que je me gratte la tête, car je ne vois rien qui dépasse et qui me dit pourquoi cela ne devrait pas fonctionner.
Le seul indice est lorsque je vérifie derp-db.derp.edu et que je lance la commande lsnrctl status
. S'il vous plaît Voir extrait ci-dessous:
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=DERP-DB.edu)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 64-bit Windows: Version 11.2.0.3.0 - Production
Start Date 18-MAY-2014 02:19:01
Uptime 22 days 12 hr. 23 min. 18 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
---etc----
Alors je me gratte encore la tête. Pourquoi derp-db se connecterait-il au fichier DERP-DB.edu alors que herp-devDB se connecterait à EXTPROC1521? Comment puis-je réparer ça? Le fichier listener.ora et les autres fichiers entre ces deux serveurs sont presque identiques, à l'exception du nom des instances. Hmmm.
EDIT1: J'ai changé le programme auditeur.ora dans herp. Cela n'a pas résolu le problème.
EDIT2: Je ne peux pas connecter telnet à derp-db.derp.edu sur le port 1521. Mais je peux toujours me connecter avec SQL Developer? Avec
De toute façon, une aide serait grandement appréciée. Merci
Cordialement, Geek
Je réponds à cela au profit des futurs utilisateurs de la communauté. Il y avait plusieurs problèmes. Si vous rencontrez ce problème, je vous suggère de rechercher les éléments suivants:
Une fois que j'ai fait ces trois choses, j'ai résolu mon problème.
J'ai eu un problème similaire où j'ai toujours eu la même erreur. J'ai essayé beaucoup de choses, comme changer le numéro de port du programme d'écoute, désactiver le pare-feu, etc. Enfin, j'ai pu résoudre le problème en modifiant le fichier listener.ora. J'ai changé la ligne suivante:
(ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))
à
(ADDRESS = (PROTOCOL = TCP)(Host = hostname)(PORT = 1521))
J'ai également ajouté une entrée dans le fichier /etc/hosts
.
vous pouvez utiliser Oracle Net Manager pour modifier la ligne ci-dessus dans le fichier listener.ora. Consultez le Guide de l'administrateur Oracle Net Services pour plus d'informations sur la procédure à suivre à l'aide de net manager.
Vous pouvez également utiliser le nom du service (database_name.domain_name
) à la place de SID lors de la connexion.
J'espère que ça aide.
Je viens d'avoir le même problème lorsque j'ai installé Oracle 11g, puis créé la base de données.
Je ne sais même pas que l'écouteur doit créer manuellement ..___. J'ouvre donc Net Configuration Assistant et crée manuellement l'écouteur.
Et je peux connecter la base de données que j'ai créée localement par le biais de SQL Developer.
J'ai résolu juste par: étant donné l'hôte et le port corrects.
dans Listener sur l'adresse 2, puis copiez l'hôte sur Oracle Developer
enfin connectez-vous à Oracle
Curieusement, j'ai été capable de résoudre le même problème en faisant exactement le mouvement opposé à celui de la SVC! J'ai dû :
1) remplacez le nom d’hôte FQDN dans mes fichiers tnsnames.ora/listener.ora par localhost et redémarrez le service d’écoute, et
2) deux, je devais utiliser "SYS as SYSDBA" comme nom d'utilisateur dans la zone de saisie du développeur SQL
pour pouvoir enfin avoir SQL Developer accroché à mon instance locale.
Je faisais face au même problème… Je devais éteindre mon pare-feu, puis ça fonctionnait.
Vous pouvez également ouvrir le port: http://windows.Microsoft.com/en-in/windows/open-port-windows-firewall#1TC=windows-7
Vous pouvez localiser un fichier nommé listener.ora
dans le dossier d'installation oraclexe\app\Oracle\product\11.2.0\server\network\ADMIN
Il contient les entrées suivantes
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(Host = Codemaker-PC)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
Vous devez vérifier que l'hôte (ici Codemaker-PC) correspond bien au nom de l'ordinateur. Si ce n'est pas correct, changez-le en tant que nom d'ordinateur.
puis essayez la commande suivante dans l'invite de commande, exécutez-la en tant qu'administrateur,
lsnrctl start
ne lancez le programme d'écoute que si vous pouvez vous connecter à la base de données . commande exécutée sous l'éditeur:
son travail bien.
its work fine.
Cela a fonctionné pour moi. peut aider quelqu'un. Éteignez le pare-feu. sur RHEL 7
systemctl stop firewalld
Pour moi, l'hôte a été défini différemment dans tnsnames.ora et listener.ora. L'un était défini sur le nom complet de l'ordinateur et l'autre sur l'adresse IP . Je les ai synchronisés sur le nom complet de l'ordinateur et cela a fonctionné. N'oubliez pas de redémarrer les services Oracle.
Je ne comprends toujours pas pourquoi ce problème est à l'origine, car je pense que l'adresse IP et le nom de l'ordinateur sont finalement les mêmes.