Что такое пуленепробиваемый способ указать строку Easy Connect для Oracle? - PullRequest
1 голос
/ 12 мая 2009

Oracle описывает строку Easy Connect как

имя пользователя @ [//] хост [: порт] [/ service_name] [: сервер] [/ instance_name]

(из http://www.oracle.com/technology/products/oraclenet/files/OracleNetServices_NetEasyConnect.pdf)

Тем не менее, некоторые из наших сотрудников службы часто сталкиваются с проблемой, что этот формат не работает на сайте клиента, и для простоты мы прибегаем к TNSNAMES.ORA и псевдониму, что делает Oracle Instant Client немного менее «мгновенным» .

Но, как бы то ни было, строка подключения управляется централизованно, поэтому этот псевдоним должен быть одинаковым на всех компьютерах системы, которые подключаются к базе данных, что создает трудности при обслуживании.

Сбои вызваны нашей невежественностью в отношении всех элементов системы именования Oracle, значения «SID», «имени службы», «имен хостов», «имен глобальных служб», методов именования, локальной базы данных и глобальные настройки именования, конфигурации прослушивателей SQLNET и TNS.

Поскольку я не смог найти единого, последовательного и исчерпывающего справочного материала по этой теме, я решил передать этот вопрос сообществу.

1 Ответ

0 голосов
/ 12 мая 2009

Если вы устанавливаете клиентское прикладное программное обеспечение в существующие пользовательские среды, то, возможно, проще всего сделать обратный инжиниринг их конфигурации SQL * Net. Я бы сделал это:

  • выход на рабочую станцию ​​с полным клиентом Oracle, на котором настроен SQL * Net с соответствующими файлами tnsnames.ora и sqlnet.ora
  • запуск утилиты tnsping для интересующей базы данных, которая выдаст вывод, подобный следующему:

$ tnsping testdb

TNS Ping Utility для Linux: версия 11.1.0.6.0 - производство 12 мая 2009 г. 08: 28: 11

Copyright (c) 1997, 2007, Oracle. Все права защищены.

Используемые файлы параметров: /home/oracle/oracle/product/11.1.0/network/admin/sqlnet.ora

Использовал адаптер TNSNAMES для разрешения псевдонима. Попытка связаться (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = testhost (PORT = 1521)))) (CONNECT_DATA = (SERVICE_NAME = testdb.world))) ОК (0 мсек)

Это сообщит вам имя хоста и то, как прослушиватель базы данных ожидает соединения (порт и SERVICE_NAME против SID). Теперь у вас есть информация для указания строки Easy Connect. Кстати, утилита tnsping доступна и на клиентах Window.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...