我的客户端计算机中有多个 tnsnames.ora 文件。如何在环境变量中 select 一个正确的文件?

I have multiple tnsnames.ora files in my client machine. How to select one correct file in environment variables?

oracle 数据库是由某人安装的,我的机器中有大约 6 个 tns.ora 个文件,每个文件都在单独的路径中。

在 C:\App\Oracle\Product 目录下的客户端 1、客户端 2、客户端 3、客户端 5 的网络文件夹中找到了 4 个文件(2 个在 Admin 内部网络中)。

我在通过 cmd、powershell 和 python 使用数据库时遇到问题,都出现相同的错误:ORA-12154:TNS:could 无法解析指定的连接标识符。

我们如何在各处配置正确的文件?

您已获得提示 做什么。这里有更详细的 回答;希望对您有所帮助。

基本上,每个 Oracle 软件产品(我使用过)都有自己的 TNSNAMES.ORA 文件。如果您希望能够连接到新数据库,则必须将其输入到每个 TNSNAMES.ORA 文件中。 “6 个文件”表示“6 个编辑”(或“1 个编辑 + 5 个副本”),这意味着有 6 个完全相同的文件。

为了避免这种情况,请使用让您只保留和维护一个 TNSNAMES.ORA 文件的选项。为此,我建议您

  • 创建一个新目录(例如 - 在 MS Windows - c:\ora_library
  • 复制任何现有的 tnsnames.ora 文件
    • 编辑其内容,使其包含您要连接的所有数据库
  • 然后创建 tns_admin 环境变量。同样,在 MS Windows (7) 上:
    • 开始-右击"Computer"-属性
    • 高级系统设置
    • 高级选项卡 - 环境变量按钮
    • 对于系统变量,创建一个名为 tns_admin 的新变量,其值为您之前创建的目录:c:\ora_library

如果你在命令提示符下检查它,它看起来像这样:

C:\>set tns_admin
tns_admin=C:\ora_library

就这些;下一步是测试它。不管你用哪个Oracle软件试试,应该都能建立连接。

从现在开始,您必须进行的任何更改都应在 c:\ora_library\tnsnames.ora 文件中完成;忽略任何其他文件(您甚至可以删除它们或重命名为 tnsnames.old 以避免混淆)。