如何找出我的 Linux 系统正在使用哪个 tnsnames.ora 文件?

如何找出我的 Linux 系统正在使用哪个 tnsnames.ora 文件?

当我执行 updatedb 并找到 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

答案1

如果$TNS_ADMIN没有设置,那么tnsnames.ora应该在$ORACLE_HOME/network/admin/

您可以在以下位置找到有关 tnsnames.ora 的更多解释网络服务参考书。

要确定 的值$ORACLE_HOME,您可以查看文件/etc/oratab。此文件列出了数据库、关联的数据库$ORACLE_HOME以及是否必须自动启动/停止数据库。

oraInventory您还可以在(查看/etc/oraInventory文件夹或/etc/oraInst.loc文件)中找到一些信息

答案2

上面的输出来自安装了 Oracle 的服务器?您是否以访问 Oracle 的用户身份登录?我不明白您如何根据该输出访问任何 Oracle 内容,除非您每次都通过构建环境的 shell 脚本进行访问。这已经有一段时间了,但据我所知,在 *nix 系统上,您必须定义 ORACLE_HOME 才能访问 Oracle。

如果你输入:

sqlplus someuser@somedb 

从上面的命令提示符,它告诉你什么?在我看来,它应该告诉你 sqlplus 是一个未知命令。如果没有,那么

which sqlplus

告诉你?

答案3

如果未设置 ORACLE_HOME 和 TNS_ADMIN,请尝试/etc/tnsnames.ora

相关内容