首页 > 解决方案 > 将本地 TNS 侦听器指向远程数据库

问题描述

我正在使用 neXtep 来比较数据库,我想用它来控制 Oracle 数据库的版本。连接字符串

REPORT_DEV2 = (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=dbs-nprd1-vm-002.mycompany.com)(PORT=1550))(CONNECT_DATA=(SERVICE_NAME=DEV.MYCOMPANY.COM)))

与 tnsping 一起使用

TNS Ping Utility for 64-bit Windows: Version 18.0.0.0.0 - Production on 02-DEC-2019 21:22:55

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

Used parameter files:
C:\app\woodsman\product\18.0.0\dbhomeXE\network\admin\sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=dbs-nprd1-vm-002.mycompany.com)(PORT=1550))(CONNECT_DATA=(SERVICE_NAME=DEV.MYCOMPANY.COM)))
OK (20 msec)

该对话框 连接对话框 具有误导性。当我将服务名称作为数据库名称时,它会说:

ORA-12505, TNS:listener 当前不知道给定连接描述符中的 SID。

无法告诉它使用服务名称而不是 SID。我希望我可以在我的本地 tnsnames.ora 文件中设置一个 TNS 侦听器条目,该条目指向我要使用的服务名称。哦,neXtep 程序在 github 上,但不再受支持。更糟糕的是,我已经尝试过但无法弄清楚如何自己构建它以便我可以修复它。

标签: oraclenextep

解决方案


我能够找到要使用的 SID。似乎虽然我通常使用服务名称,但不知何故,有一个本地 SID 作为 Oracle 安装过程的一部分而构建。尽管如此,对于使用 nexTep for Oracle 的任何人,请确保您有权访问 SID 名称。

nexTep 对话框中的数据库名称提示实际上是在询问 SID 名称。奖励指向任何愿意使用 nexTep 解决这一问题的人,因此人们可以开箱即用地使用 Oracle 服务名称。如果他们可以更改它以允许像所有其他基于 Java 的程序一样直接使用 JDBC URL,那就更好了。


推荐阅读