Назад | Перейти на главную страницу

Как узнать, какой файл tnsnames.ora используется моей системой Linux?

Когда я делаю updateb и нахожу tnsnames.ora, я получаю длинный список из-за различных установок Oracle DB. Мне нужно добавить несколько записей в тот файл tnsnames.ora, который настроен для системы по умолчанию.

Как мне узнать, какой из многих файлов tnsnames.ora действительно используется?

примечание: ни один из 30 лишних экземпляров не находится ни в одной "системной" папке (например, / etc / usr и т. д.) и:

> echo $TNS_ADMIN
TNS_ADMIN: Undefined variable.
> echo $PATH
/usr/kerberos/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/usr/local/ade/bin:/usr/NX/bin
> echo $ORACLE_HOME
ORACLE_HOME: Undefined variable.

RHEL4

Если $TNS_ADMIN не установлен, то tnsnames.ora должен быть в $ORACLE_HOME/network/admin/.

Вы можете найти больше объяснений на tnsnames.ora в Справочник по сетевым службам книга.

Для определения стоимости $ORACLE_HOME, вы можете посмотреть файл /etc/oratab. Этот файл содержит базу данных и связанные $ORACLE_HOME и если БД должна запускаться / останавливаться автоматически.

Вы также можете найти некоторую информацию в oraInventory (посмотри на /etc/oraInventory папка или /etc/oraInst.loc файл)

Ваш вывод выше относится к серверу, на котором установлены ваши установки Oracle? Вы вошли в систему как пользователь, имеющий доступ к Oracle? Я не понимаю, как вы могли бы получить доступ к чему-либо Oracle на основе этих выходных данных, если только вы не делаете это через сценарии оболочки, которые каждый раз создают вашу среду. Прошло некоторое время, но IIRC в системах * nix вы должны определить ORACLE_HOME для доступа к Oracle.

Если вы наберете:

sqlplus someuser@somedb 

из приведенной выше командной строки, что он вам говорит? Мне кажется, это должно сказать вам, что sqlplus - неизвестная команда. Если нет, то что значит

which sqlplus

сказать тебе?

Если ни ORACLE_HOME, ни TNS_ADMIN не установлены, попробуйте /etc/tnsnames.ora