oracle - 将本地 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 上,但不再受支持。更糟糕的是,我已经尝试过但无法弄清楚如何自己构建它以便我可以修复它。
解决方案
我能够找到要使用的 SID。似乎虽然我通常使用服务名称,但不知何故,有一个本地 SID 作为 Oracle 安装过程的一部分而构建。尽管如此,对于使用 nexTep for Oracle 的任何人,请确保您有权访问 SID 名称。
nexTep 对话框中的数据库名称提示实际上是在询问 SID 名称。奖励指向任何愿意使用 nexTep 解决这一问题的人,因此人们可以开箱即用地使用 Oracle 服务名称。如果他们可以更改它以允许像所有其他基于 Java 的程序一样直接使用 JDBC URL,那就更好了。
推荐阅读
- rest - 在 Flask REST API 代码中生成 SQLite 数据库
- python - 卡在这里制作 Instagram 机器人
- python - 在python中如何制作模板。通过接受用户的输入
- python - 对熊猫中每个单元格内的字母进行排序
- websocket - 静默检查后超时的 Gatling 3.4 错误
- java - 文件名中的 java 类路径冒号(“:”)
- visual-studio - 有没有办法在 Visual Studio 2019 中的解决方案文件之外配置项目路径?
- python-sphinx - 如何在没有警告的情况下将星号表情符号与 Sphinx 一起使用?
- r - R:以 tidyverse 风格整理和总结配对比较数据集
- java - RecyclerView 未正确显示 ArrayList