Pl sql developer tnsnames где находится файл

Обновлено: 04.07.2024

Я установил как 32-битные, так и 64-битные драйверы Oracle 11g. Я ищу на своем компьютере файлы с именем "tnsnames.ora" и нашел 3 файла в следующих местах:

Меня удивляет наличие третьего местоположения файла tnsnames.ora.

На моем компьютере установлены следующие клиенты Oracle:

В зависимости от расположения каждой программы (Program Files (x86) vs. c: \ Program Files), это подсказывает мне, что 32-разрядная программа Toad должна использовать 32-разрядный драйвер, а dbForge - 64-разрядный драйвер.

Похоже, что dbForge использует файл tnsnames.ora либо в месте №2, либо в №3. Я знаю это, систематически переименовывая все файлы tns, кроме одного, а затем проверяя, доступны ли имена соединений, считанные из файла, при попытке создать новое соединение из приложения.

Однако TOAD, похоже, распознает только файл tnsnames.ora в расположении №3 и вообще не распознает файл tnsnames.ora в расположении 2! (Поскольку это была 32-битная программа, я не ожидал, что она распознает файл tns в местоположении 2, и это было так). Чтобы резюмировать тест TOAD для надежды на ясность, TOAD распознал только tns-файл в местоположении 3.

У других коллег нет файла tns в папке 3 на своих машинах. Я не знаю, почему. Когда я запускаю Toad, он показывает следующие 2 Home, причем 32-битный Home является активным.

Q1: Является ли OraClient11g_home1 моим 64-битным домашним компьютером или у меня установлено два клиента Oracle?

Q2: Почему 32-битная TOAD не использует tns в ячейке №1, а не только в ячейке №3?

Q3: Если я оставлю файл tns в местоположении 3, будут работать и dbForge, и TOAD, но я хотел бы знать, почему, чтобы я мог точно понять, как перемещать информацию tns с одного компьютера на другой.

3 ответа

Исходя из ваших путей, у вас есть два установленных клиента, как вы подозреваете (Toad и dbforge - это инструменты, а не клиенты, поэтому ваша терминология немного неправильная). Один 32-битный, другой 64-битный. Судя по пути установки, Toad 32-битный, но запустите его и перейдите в Help | Support Bundle. Вы увидите, что верхний заголовок будет «ИНФОРМАЦИЯ О ПРИЛОЖЕНИИ (32-разрядная версия)» или «ИНФОРМАЦИЯ О ПРИЛОЖЕНИИ (64-разрядная версия)» для подтверждения. Toad 11.6 был первым, кто представил 64-битную версию.

Жаба будет видеть только клиента Oracle для той же платформы, что и он. Так что ваш 64-битный клиент не имеет значения для Toad. C: \ Windows \ TNS, похоже, является папкой, используемой для папки TNS_ADMIN, учитывая ее странное расположение и тот факт, что Toad ее видит. В командной строке выполните SET TNS_ADMIN и посмотрите, сообщает ли он «TNS_ADMIN = C: \ Windows \ TNS». Если это так, то все инструменты должны использовать этот tnsnames.ora. Если хотите, это глобальное переопределение, указывающее на папку, содержащую ваши файлы сетевой конфигурации. Если у вас нет TNS_ADMIN в качестве переменной среды, найдите ее в корневом реестре Oracle: HKEY_LOCAL_MACHINE \ Software \ Oracle.

Если вы используете общий набор подключений для всех своих инструментов, я бы удалил все ваши файлы tnsnames.ora. Я бы также переместил эту папку C: \ Windows \ TNS в более подходящее место, например C: \ Oracle \ Admin, и создал там ваши tnsnames.ora, sqlnet.ora и ldap.ora (если применимо). Создайте переменную среды TNS_ADMIN, указывающую на это местоположение.

Согласно Oracle эти местоположения ищутся для tnsnames.ora , соответственно. sqlnet.ora и ldap.ora :

  1. Файлы Oracle Net в текущем рабочем каталоге (PWD / CWD)
  2. TNS_ADMIN определяется сессионно или пользовательским скриптом
  3. TNS_ADMIN определен как глобальная переменная среды
  4. TNS_ADMIN определено в реестре
  5. Файлы Oracle Net в %ORACLE_HOME/network|net80\admin (расположение Oracle по умолчанию)

Однако я не уверен, следует ли этому списку каждое приложение / драйвер. Я получил этот список из документа 111942.1, относящегося к Oracle 9i, поэтому это могло быть устаревшим.

  1. TNS_ADMIN определяется переменной среды
  2. TNS_ADMIN определено в реестре (если переменная среды TNS_ADMIN не указана)
  3. Каталог %ORACLE_HOME%/network/admin (если переменная среды TNS_ADMIN не указана)

Я бы рекомендовал определить переменную среды для TNS_ADMIN и использовать только один файл tnsnames.ora. Чтобы быть в безопасности, проверьте также значения реестра.

Если ваши файлы не находятся в %ORACLE_HOME%\network\admin , я рекомендую создать для него символическую ссылку - на всякий случай очень , например mklink /d %ORACLE_HOME%\network\admin c:\Oracle\common\settings\admin

Еще одно замечание: вам не нужно «играть» с файлом tnsnames.ora. С помощью Process Monitor от Microsoft Sysinternals вы можете отслеживать доступ к каждому файлу, т. Е. Фильтр будет Path contains tnsnames

Обновить

Когда я запускаю тест на своей машине, я получаю следующий порядок:

  1. Переменная среды TNS_ADMIN
  2. Ключ реестра HKEY_CURRENT_USER\SOFTWARE\ORACLE\KEY_\TNS_ADMIN

Ключ реестра HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_\TNS_ADMIN , соотв. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_\TNS_ADMIN

-> Только если TNS_ADMIN переменная среды не установлена.

Обновление 2

Очевидно, что поиск исправлений отсутствует, он различается для разных провайдеров / драйверов. Может, это тоже зависит от версии Oracle.

мой tnsnames.ora заполняется, и a tnsping в связи с определенными в tnsnames.ora работает нормально. Тем не менее, SQL Developer не отображает никаких соединений.

Oracle SQL Developer взлетает упоминает, что если

у вас есть клиентское программное обеспечение Oracle и tnsnames.файл ora уже установлен на вашем компьютере, Oracle SQL Developer автоматически заполнит соединения навигатор из имен сетевых служб, определенных в tnsnames.Ора.

Я также попытался установить мой TNS_ADMIN переменная среды, но после перезапуска SQL Developer по-прежнему не отображаются подключения.

какие идеи?
Любой, кто успешно работает с SQL Developer и tnsnames.Ора?

  • на SQLDeveloper обзор Tools --> Preferences , как показано на рисунке ниже.

SQLDeveloper access preferences

теперь вы можете подключиться через файл tnsnames параметры.

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

копирование содержимого из ссылочного ответа:

разработчик SQL будет искать в следующем расположении в этом порядке для имен tnsnames.файл Ora

$HOME/.файл tnsnames.Ора!--12--> $TNS_ADMIN / tnsnames.Ора!--12--> Tns_admin ключ поиска в реестре
/ etc / tnsnames.ora (не-windows )
$ORACLE_HOME, т./сети/администратор/файла tnsnames.Ора!--12--> LocalMachine\SOFTWARE\ORACLE\ORACLE_HOME_KEY
Программное обеспечение значение LocalMachine\\оракул пути ORACLE_HOME\

Если ваши tnsnames.файл ora не распознается, используйте следующую процедуру:

определите переменную среды с именем TNS_ADMIN, чтобы указать папку, содержащую ваши имена tnsnames.файл ora.

в Windows это делается переход к панели управления > Система > Дополнительные параметры системы > Переменные среды.
В Linux определите переменную TNS_ADMIN в поле .файл профиля в домашнем каталоге.

подтвердите, что ОС распознает эту переменную окружающей среды

из командной строки Windows: echo %TNS_ADMIN%

из linux: echo $TNS_ADMIN

перезапустить SQL Developer Теперь в SQL Developer щелкните правой кнопкой мыши на Connections и выберите New Соединение. Выберите TNS в качестве типа соединения в раскрывающемся списке. Ваши записи из файла tnsnames.теперь ora должна отображаться здесь.

у меня была такая же проблема, tnsnames.ora отлично работал для всех других инструментов, но разработчик SQL не использовал его. Я пробовал все предложения в интернете, которые мог найти, включая решения по ссылке, представленной здесь.
Ничего не помогало.

оказывается, что база данных кэшировала резервные копии tnsnames.ora Как tnsnames.ora.bk2 , tnsnames09042811AM4501.bak , tnsnames.ora.bk etc. Эти файлы не читались обычным пользователем.

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

решение состоит в том, чтобы сделать все файлы читаемыми или удалить или переместить резервные копии из каталога администратора.

Это помогло мне:

опубликовано: 8/12/2011 4: 54

установить каталог tnsnames Инструменты- > Настройки->база данных->дополнительно - >каталог Tnsnames

Я пытаюсь подключиться к базе данных Oracle с помощью SQL Developer.

Я использую следующий формат в tnsnames.ora:

В SQL Developer, когда я пытаюсь создать новое соединение, TNS-имена не отображаются в качестве параметров.

Что-то мне не хватает?

SQL Developer будет искать файл tnsnames.ora в следующем месте в указанном порядке.

  1. $ HOME / .tnsnames.ora
  2. $ TNS_ADMIN / tnsnames.ora
  3. Ключ поиска TNS_ADMIN в реестре
  4. /etc/tnsnames.ora (не для Windows)
  5. $ ORACLE_HOME / сеть / администратор / tnsnames.ora
  6. LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME_KEY
  7. LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME

Чтобы узнать, какой из разработчиков SQL использует, введите команду show tns на листе

Если ваш файл tnsnames.ora не распознается, используйте следующую процедуру:

Определите переменную среды TNS_ADMIN, чтобы указать на папку, содержащую ваш файл tnsnames.ora.

В Windows это можно сделать, перейдя в Панель управления > Система > Дополнительные настройки системы > Переменные среды .

В Linux определите переменную TNS_ADMIN в файле .profile в вашем домашнем каталоге.

Убедитесь, что ОС распознает эту переменную среды

Из командной строки Windows: echo% TNS_ADMIN%

Из Linux: echo $ TNS_ADMIN

Перезапустите SQL Developer

Для меня: $ HOME / .tnsnames.ora не работает . Вместо этого я использовал $ HOME / tnsnames.ora. Также обратите внимание: вам нужно будет перейти в Инструменты -> Настройки, найти «tns» и указать каталог на $ HOME У меня работал в Windows. Постоянно записывать вещи FTW! Установка TNS_ADMIN у меня не сработала. Вместо этого я поискал на компьютере все файлы TNSNAMES и обновил их содержимое. Не знаю , почему Windows 7 Sql Developer сохранялось на использование другого TNSNAMES файла в какой - то старой папке. Примечание: $TNS_ADMIN КАТАЛОГ - это не настоящий .ora файл

Откройте SQL Developer. Перейдите в Инструменты -> Настройки -> Базы данных -> Дополнительно. Затем явно установите каталог Tnsnames.

Мой TNSNAMES был настроен правильно, и я мог подключиться к Toad, SQL * Plus и т. Д., Но мне нужно было сделать это, чтобы заставить SQL Developer работать. Возможно, это была проблема с Win 7, так как ее также было сложно установить.

Принятый ответ не сработал для меня, но это сработало (Windows Server 2008R2) Была такая же проблема, но разработчик SQL также просматривал% userprofile% \ tnsnames.ora до% TNS_ADMIN% \ tnsnames.ora, и именно там у меня был дополнительный файл tnsnames.ora.

В SQLDeveloper просмотрите Tools --> Preferences , как показано на изображении ниже.

введите описание изображения здесь

В настройках , expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory где присутствует tnsnames.ora .
Затем нажмите ОК .
как показано на диаграмме ниже.

введите описание изображения здесь

Теперь вы можете подключиться через параметры TNSnames .

Для версий ниже 2.1 или если вы не указали каталог Tnsnames в версии 2.1 или выше, следуйте инструкциям, указанным в ответе @JasonAnderson . У меня нет опции Tnsnames Directory в меню Tools-> Preferences-> Databaes-> Advanced Parameters. Я использую SqlDeveloper v1.1.3

Вы всегда можете узнать местоположение используемого файла tnsnames.ora, запустив TNSPING для проверки подключения (9i или новее):

Иногда проблема заключается в записи, которую вы сделали в tnsnames.ora, а не в том, что система не может ее найти. Тем не менее, я согласен с тем, что наличие набора переменных среды tns_admin - это хорошо, поскольку оно позволяет избежать неизбежных проблем, возникающих при точном определении того, какой файл tnsnames используется в системах с несколькими домами оракулов.

В клиентской установке есть флажок для инструментов базы данных или чего-то подобного.

Шаги, упомянутые Джейсоном, очень хороши и должны работать. Однако в SQL Developer есть небольшая хитрость. Он кэширует спецификации подключения (хост, имя службы, порт) при первом чтении файла tnsnames.ora. Тогда это не делает спецификации недействительными, когда исходная запись удаляется из файла tnsname.ora. Кеш сохраняется даже после завершения работы и перезапуска SQL Developer. Это не такой уж нелогичный способ выхода из ситуации. Даже если файл tnsnames.ora временно недоступен, SQL Developer может установить соединение, пока исходные спецификации остаются верными. Проблема заключается в следующем маленьком повороте. SQL Developer обрабатывает имена служб в файле tnsnames.ora как значения с учетом регистра при разрешении соединения. Итак, если раньше у вас была запись с именем ABCD. world в файле, и вы заменили его новой записью с именем abcd.world, SQL Developer НЕ будет обновлять свои спецификации подключения для ABCD.world - он будет рассматривать abcd.world как совершенно другое соединение. Почему меня не удивляет, что продукт Oracle будет рассматривать как чувствительное к регистру содержимое файлового формата, разработанного Oracle, который явно не чувствителен к регистру?

В Sql Developer перейдите к Tools-> preferences-> Datababae-> advanced-> Установите каталог Tnsname в каталог, содержащий tnsnames.ora

Ни одно из вышеперечисленных изменений не имело никакого значения в моем случае. Я мог запустить TNS_PING в командном окне, но разработчик SQL не мог определить, где находится tnsnames.ora.

В моем случае (Windows 7 - 64-разрядная версия - Enterprise) проблема заключалась в том, что установщик Oracle указал ярлык меню «Пуск» на неправильную версию SQL Developer. Похоже, что установщик сопровождает три экземпляра SQL Developer. Один находится в% ORACLE_HOME% \ client_1 \ sqldeveloper \, а два - в% ORACLE_HOME% \ client_1 \ sqldeveloper \ bin \.

My tnsnames.ora заполняется, а tnsping для соединения, определенного в tnsnames.ora , отлично работает. Тем не менее SQL Developer не показывает никаких подключений.

у вас есть клиентское программное обеспечение Oracle и файл tnsnames.ora, уже установленный на вашем компьютере, Oracle SQL Developer автоматически заполнит навигатор соединений из сетевых имен служб, определенных в tnsnames.ora.

Я также попытался установить переменную среды TNS_ADMIN , но после перезапуска SQL Developer все еще не отображаются соединения.

Любые идеи? Кто-нибудь успешно работает с SQL Developer и tnsnames.ora?

Я скачал и установил Oracle SQL Developer для подключения к уже существующей базе данных Oracle 11g. Но, похоже, мне нужно будет также загрузить и установить клиентское программное обеспечение Oracle, какое мне использовать, если я нахожусь на Windows 10?

4 ответа

  • В SQLDeveloper просмотрите Tools --> Preferences , как показано на рисунке ниже.

Изображение 7136

Теперь вы можете подключиться с помощью опций TNSnames.

всем, просто небольшое обновление этого старого (но весьма полезного) поста: не пытайтесь использовать символическую ссылку в Windows. Разработчик SQL, похоже, не знает, как его использовать. Заставил меня потерять время. Надеюсь, это спасет тебя. @ Hellday5432 - Да, это правильно. SQL Dev работает на Java, который не понимает ярлыки; например, при открытии файла мы не можем использовать ярлык для перехода в каталог. Я скачал и установил Oracle SQL Developer для подключения к уже существующей базе данных Oracle 11g. Но, похоже, мне нужно будет также загрузить и установить клиентское программное обеспечение Oracle, какое мне использовать, если я нахожусь на Windows 10? Я не вижу опцию каталога Tnsnanes в моем SQL Developer версии 1.5.5. Не работает для PL / SQL Developer версии 11.0.3.1770. Пожалуйста помоги Это было потрясающе. Так просто. Но так сложно найти правильный ответ в интернете! Уф!

Этот отличный ответ к аналогичному вопросу (который я не мог найти раньше, к сожалению) помог мне решить проблему.

Читайте также: