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

22

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

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

user897237
источник

Ответы:

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\папку

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

гадюка
источник