Задать вопрос
@kofon
Я человек

Oracle. Как настроить удалённое подключение?

Есть удалённая машина — Windows 2012 Server.
Вроде всё настроил, в реестре что-то записал... На ней всё подключение работает. А вот с моей подключится к ней не могу.
Пробовал и через sqlplus, и через sqldeveloper.

listener.ora
SID_LIST_LISTENER. В секции SID_DESC
(global_dbname = реальный ip)
....

LISTENER. В секции DESCRIPTION добавил всевозможные адреса: localhost, ip адрес, имя компьютера. И одно поле было изначально с protocol = ipc, key = extproc1521
---- listener.ora end ----

При подключении (после некоторого ожидания) таймаут — ORA-12170: TNS:Connect timeout occurred

Как настроить удалённое подключение, надо ли создавать юзера со специальными привилегиями для этого?

P.S. На ней работает команда sqlplus usr/pwd@ip/sid где вместо ip как реальный ip так и localhost
Но есть и другая машина Windows 2008 Server, где работает только с localhost.
  • Вопрос задан
  • 4603 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@kofon Автор вопроса
Я человек
Решено!!!

Дело было в брандмауэре.
После разрешения появилась другая ошибка - ora-12638,
погуглив, сделал следующее: закомментировал строку
SQLNET.AUTHENTICATION_SERVICES = (NTS) в файле sqlnet.ora

UPD:
И да, как сказал Vapaamies, поставил в значение GLOBAL_DBNAME тоже, что стояло в SID_NAME
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Lorien_Elf
@Lorien_Elf
Keep calm and drop database
Ну если локально работает, значит проблема скорее всего в сети.

tracert до удаленной машины что говорит?
Ответ написан
drno-reg
@drno-reg
см не кратко
для начала проверьте доступность порта сервера oracle с вашего ПК из CMD

telnet IP_или_имя_сервера 1521

если в результате получите ошибку, что доступа нет, ТО вам необходимо решить проблему с сетевой доступностью,
если все OK, пишите будем дальше смотреть

пример listener.ora на сервере

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = d:\app\drno\product\12.1.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:d:\app\drno\product\12.1.0\dbhome_1\bin\oraclr12.dll")
    )
  )

  
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.41)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )	
  )


и

tnsnames.ora на клиенте

ORACLE_SERVER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.41)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = mycrm)
    )
  )
Ответ написан
Vapaamies
@Vapaamies
Психанул и снес свои ответы не отмечающим решения…
Параметру GLOBAL_DBNAME должно быть присвоено простое или доменное имя экземпляра БД, а не IP. IP прописывается в параметр HOST. Не забудьте перезапустить службу после настройки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы