Что именно происходит с идентификаторами соединений оракула, разделенными точкой
-
04-07-2019 - |
Вопрос
Некоторое время я удивлялся этому, но так как он почти не появлялся, я оставил его в столбце «таинственный волшебник».
Мне кажется, что между идентификатором соединения, таким как ABC и ABC.DEFG, существует какая-то связь, и я не совсем понимаю, что это такое.
Например, на машине, которую я настраивал только сейчас, у меня были проблемы с использованием идентификатора ED2, хотя в моем файле tnsnames у меня явно был
EDC2 = (....)
Это было скопировано и вставлено с другого компьютера, который работал очень хорошо. Тем не менее, выполнение tnsping EDC2 не будет разрешено, пока я не изменил его, чтобы сказать
EDC2.WORLD = (...)
с этого момента разрешение на EDC2 начало работать. Что здесь происходит?
Решение
Псевдоним TNS в файле tnsnames.ora взаимодействует с параметром
NAMES.DEFAULT_DOMAIN
в файле sqlnet.ora. Например, если для NAMES.DEFAULT_DOMAIN
задано значение WORLD, то при попытке подключиться к псевдониму без домена файл sqlnet.ora указывает Oracle автоматически добавлять домен перед выполнением поиска в файл tnsnames.ora. Если вы пытаетесь подключиться к псевдониму с доменом, NAMES.DEFAULT_DOMAIN
игнорируется.
Мое общее предпочтение / предложение заключается в том, чтобы установить для NAMES.DEFAULT_DOMAIN
значение WORLD в sqlnet.ora и указать EDC2.WORLD в файле tnsnames.ora. Таким образом, оба идентификатора соединения EDC2 и EDC2.WORLD будут работать - первый будет заменен на последний из-за параметра DEFAULT_DOMAIN
.