Невозможно получить доступ к оракулу с помощью sqlplus с другого компьютера в локальной сети

У меня Oracle работает на одном компьютере в локальной сети.
Я могу подключиться к БД с помощью sqlplus, когда я выдаю:

sqlplus myuser/mypass@localhost:1521/orcl

Это нормально работает.

На другом компьютере из локальной сети я установил мгновенный клиент oracle (basic + sdk + sqlplus).

sqlplus myuser/mypass@oracle_server:1521/orcl
SQL*Plus: Release 11.2.0.3.0 Production on Sat Feb 25 09:10:41 2012

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

ERROR:
ORA-12543: TNS:destination host unreachable

Enter user-name: 

Сервер Oracle запущен и доступен в сети, но я не могу подключиться к базе данных.


person Luc    schedule 25.02.2012    source источник


Ответы (1)


localhost - это конкретный локальный адрес 127.0.0.1, который доступен только с той же машины; другая машина не может напрямую подключиться к службе, зарегистрированной только для localhost. oracle_server будет разрешать (или будет, если вы не используете имя хоста) IP-адресом интерфейса Ethernet на машине; в локальной сети это может начинаться с 10. или 192.168., но может быть что-то еще.

Убедитесь, что ваша конфигурация приемника Oracle прослушивает внешний адрес, а также localhost.

Сказав это, если бы это была единственная проблема, вы, вероятно, увидели бы ORA-12541: TNS:no listener, а не ORA-12543. Похоже, что на сервере Oracle работает брандмауэр, и если это так, вам нужно настроить его, чтобы разрешить трафик на порт 1521.

Другая возможность заключается в том, что вы используете имя хоста в своей строке подключения и просто не можете преобразовать его в IP-адрес. Проверить можно ping oracle_server; если там написано что-то вроде cannot resolve oracle_server, проверьте имя, посмотрите, нужно ли вам указать полное имя (oracle_server.example.com), или при нажатии добавьте его в свой локальный hosts файл. Или используйте необработанный IP-адрес в строке подключения вместо имени хоста.

person Alex Poole    schedule 25.02.2012
comment
oracle_server определен как 192.168.1.25 в моей локальной сети. Удаление брандмауэра на сервере Oracle решило эту проблему, поэтому сейчас мы разрешим только 1521. Большое спасибо. - person Luc; 25.02.2012