Как создать файл tnsnames.ora для подключения к базе данных Oracle?


22

Я установил Oracle 11g, и я могу подключиться как sysmanк базе данных Oracle, но нет tnsnames.oraфайла, который я могу найти.

Нужно ли самому генерировать файл tnsnames.ora? Если так, где я могу это разместить? Если нет, то как Oracle генерирует это для меня? Если мне нужно его сгенерировать, какой синтаксис для файла?

Ответы:


15

Вы можете легко создать файл tnsnames.ora [text]. Он должен быть в $ ORACLE_HOME / network / admin / и выглядеть примерно так:

 ORATST=
 (description=
   (address_list=
     (address = (protocol = TCP)(host = fu.bar)(port = 1521))
   )
 (connect_data =
   (service_name=oratst)
 )
)

Хороший ответ, хотя я обнаружил, что должен был назвать свой файл $HOME/.tnsnames.ora; путь, предложенный в ответе, похоже, был проигнорирован sqlplus.
DuffJ

@DuffJ тогда что-то не так с вашей средой.
miracle173

11

Каталог по умолчанию для файла tnsnames.ora

/u01/app/oracle/product/<version>/<dbname>/network/admin/tnsnames.ora

Содержание:

<alias> = (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <ip>)(PORT = <port>))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = <dbname>)
    )
  )
  • alias: вы можете выбрать это и использовать в качестве строки подключения позже.
  • port: по умолчанию 1521

Более подробная информация здесь: http://docs.oracle.com/cd/B28359_01/network.111/b28317/tnsnames.htm


6
Каталог по умолчанию ничего подобного. Он относительно $ORACLE_HOMEи, следовательно, будет $ORACLE_HOME/network/admin(где $ORACLE_HOMEможет быть несколько разных каталогов, где имеется более одного уровня установки / исправления Oracle) или может быть переопределен $TNS_ADMINпеременной среды. Это полностью зависит от пользователя, где находится программное обеспечение.
Philᵀᴹ

4
Честно говоря, это система по умолчанию в системе Linux. Если вы ничего не трогаете, она будет помещена туда ... таким образом, это значение по умолчанию. Но $ ORACLE_HOME, если не вмешиваться, - действительно лучшее решение.
Munchi

Я запускал Oracle буквально на сотнях систем Linux, и это НЕ по умолчанию, и нет ничего подобного. Возможно, вы имеете в виду, что это пример в документации, ну, они должны были что-то выбрать. Я не знаю ни одного дистрибутива Linux с файловой системой / u01 «по умолчанию», вы, должно быть, создали ее и сказали Oracle использовать ее!
Гай

2

$ORACLE_HOME/network/adminкаталог, в котором tnsnames.oraфайл создается DBCA и / или NetCA.

$ORACLE_HOMEэто путь, похожий /u01/app ...на OFA-совместимый путь, который установщик использует по умолчанию, если он не переопределен установщиком.


2

Если ваша ОС Windows 10 , вы можете найти tnsnames.oraфайл по следующему unc-пути:

C:\app\myAccount\product\11.2.0\dbhome_1\NETWORK\ADMIN

Где myAccountваша учетная запись Windows.


1
Другими словами, это так %ORACLE_HOME%\NETWORK\ADMIN?
Андрей М

Да, именно так. Помните, что Oracle по умолчанию хранит tnsnames.ora в каталоге $ ORACLE_HOME / network / admin в операционных системах UNIX и в каталоге% ORACLE_HOME% \ network \ admin в операционных системах Windows.
С. Майол

$ ORACLE_HOME не работал для меня в моей среде, поэтому знание полного пути действительно помогло ... просто знание того, что он находится в C: \ app \ ... дало мне старт, который мне был нужен, и я смог отследить его с там. Спасли меня часы поиска!
Галлус

1

Насколько я знаю, tnsnames.oraнеобходимо поместить в <ORA_INSTALL_FOLDER>\product\11.1.0\client_1\network\admin\папку

Документация может быть найдена здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.