Oracle - Какой файл Имен TNS я использую?

  1. Лучшая поддержка отражения. Это можно сделать в принципе в компилируемой программе с опережением времени, но практически это практически не происходит на практике.
  2. Оптимизации, которые часто можно выяснить только при динамическом наблюдении за программой. Например, встраивание виртуальных функций, анализ эвакуации для перевода стеков в распределения кучи и блокирование укрупнения.
51
задан Mark Harrison 30 August 2008 в 09:07
поделиться

9 ответов

Oracle обеспечивает утилиту, названную tnsping:

R:\>tnsping someconnection

TNS Ping Utility for 32-bit Windows: Version 9.0.1.3.1 - Production on 27-AUG-20
08 10:38:07

Copyright (c) 1997 Oracle Corporation.  All rights reserved.

Used parameter files:
C:\Oracle92\network\ADMIN\sqlnet.ora
C:\Oracle92\network\ADMIN\tnsnames.ora

TNS-03505: Failed to resolve name

R:\>


R:\>tnsping entpr01

TNS Ping Utility for 32-bit Windows: Version 9.0.1.3.1 - Production on 27-AUG-20
08 10:39:22

Copyright (c) 1997 Oracle Corporation.  All rights reserved.

Used parameter files:
C:\Oracle92\network\ADMIN\sqlnet.ora
C:\Oracle92\network\ADMIN\tnsnames.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = **)
 (PROTOCOL = TCP) (Host = ****) (Port = 1521))) (CONNECT_DATA = (SID = ENTPR0
1)))
OK (40 msec)

R:\>

Это должно показать, какой файл Вы используете. Утилита находится в каталоге Oracle bin.

73
ответ дан Peter Mortensen 7 November 2019 в 20:02
поделиться

Для Linux:

$ strace sqlplus -L scott/tiger@orcl 2>&1| grep -i 'open.*tnsnames.ora'

шоу что-то вроде этого:

open("/opt/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora",O_RDONLY)=7

Изменение на

$ strace sqlplus -L scott/tiger@orcl 2>&1| grep -i 'tnsnames.ora'

покажет все пути к файлам, которые перестали работать.

17
ответ дан Mark Harrison 7 November 2019 в 20:02
поделиться

Для Windows: Filemon от SysInternals покажет Вам, к каким файлам получают доступ.

Не забывают устанавливать Ваши фильтры, таким образом, Вы не поражены болтливым трафиком файловой системы.

Filter Dialog

Добавленный: Filemon не работает с более новыми версиями Windows, таким образом, Вам, возможно, придется использовать Монитор Процесса .

4
ответ дан Ishmaeel 7 November 2019 в 20:02
поделиться

Существует другое место, где местоположение TNS хранится: Если Вы используете Windows, открываете regedit и перешли к My HKEY Local Machine/Software/ORACLE/KEY_OraClient10_home1, где KEY_OraClient10_home1 Ваша Oracle домой. Если будет строковая запись, названная TNS_ADMIN, то значение той записи укажет на файл TNS, что Oracle использует на Вашем компьютере.

5
ответ дан Trumpi 7 November 2019 в 20:02
поделиться

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

ifile=path_to_tnsnames.ora_file/tnsnames.ora

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

4
ответ дан Peter Mortensen 7 November 2019 в 20:02
поделиться

Codeslave просит, чтобы "Это не должен был всегда быть "$ORACLE_ HOME/network/admin/tnsnames.ora"? Ответ не, это не. Рассмотрите эти два вызова tnsping на той же машине:

C:\Documents and Settings\me>D:\Oracle\10.2.0_DB\BIN\tnsping orcl

TNS Ping Utility for 32-bit Windows: Version 10.2.0.4.0 - Production on 09-OCT-2
008 14:30:12

Copyright (c) 1997,  2007, Oracle.  All rights reserved.

Used parameter files:
D:\Oracle\10.2.0_DB\network\admin\sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xxxx
)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL)))

OK (40 msec)

C:\Documents and Settings\me>tnsping orcl

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 09-OCT-2
008 14:30:21

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

Used parameter files:
D:\oracle\10.2.0_Client\network\admin\sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = XXXX)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL)))
OK (20 msec)

C:\Documents and Settings\me>

Примечание два различных расположения файлов параметра, которые зависят, на котором tnsping исполняемом файле Вы работаете (и возможно откуда это выполняется). Для находящегося в tnsnames оракула, объединяющегося в сеть, с помощью переменной TNS_ADMIN, единственный способ гарантировать, что Вы получаете последовательный tnsnames.ora файл. (ОТМЕТЬТЕ: центральный Windows ответ)

3
ответ дан DCookie 7 November 2019 в 20:02
поделиться

Самый легкий путь состоит в том, чтобы, вероятно, проверить ПУТЬ переменная среды процесса, который соединяется с базой данных. Скорее всего, tnsnames.ora файл находится в первый каталог bin Oracle в пути ..\network\admin. Переменная среды TNS_ADMIN или значение в реестре (для текущей Oracle домой) могут переопределить это.

Используя filemon любят предложенный другими, также добьется цели.

0
ответ дан stili 7 November 2019 в 20:02
поделиться

Это не должен всегда быть "$ORACLE_ HOME/network/admin/tnsnames.ora"? Тогда можно просто сделать "$oracle_ эха домой", или *отклоняют эквивалентный.

@Pete Holberton You совершенно корректны. Который напоминает мне, существует другой разводной ключ в работах под названием ЗАДАЧА

TWO_ Соответственно http://www.orafaq.com/wiki/TNS_ADMIN
, TNS_ADMIN является переменной среды, которая указывает на каталог, где конфигурационные файлы SQL*Net (как sqlnet.ora и tnsnames.ora) расположены.

1
ответ дан BIBD 7 November 2019 в 20:02
поделиться

По умолчанию tnsnames.ora расположен в каталоге $ORACLE_HOME/network/admin в операционных системах UNIX и в каталоге ORACLE_HOME\network\admin на операционных системах Windows. tnsnames.ora может также быть сохранен следующие местоположения:

каталог, определенный переменной среды TNS_ADMIN (или значение реестра)

В операционных системах UNIX, глобальном каталоге конфигурации. Например, на Операционной системе Solaris, этот каталог является/var/opt/oracle

, Если у Вас есть несколько ORACLE_HOMES, знать, какой Вы используете, поскольку местоположение tnsnames.ora файла может варьироваться от одного ORACLE_HOME до следующего.

Для человека, который упомянул переменную среды TWO_TASK, которая используется для определения сервисного имени базы данных по умолчанию для соединения с (который мог быть базой данных по другому серверу). Сервисное имя, к которому Вы определяете TWO_TASK, тогда ищется в tnsnames.ora файле, когда Вы соединяетесь.

2
ответ дан 7 November 2019 в 20:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: