通过ssh隧道使用oracle db.错误“ORA-12541:TNS:没有听众”
您好我通过隧道从数据中心访问Oracle DB时遇到问题. 我们有一个非常标准的数据中心,一台机器可以从外面访问 要创建隧道我正在使用命令: ssh -L 1521:192.168.1.7:1521 root@dc 当然它可以工作(有时我也会添加一些debug -vv来查看是否有任何东西通过). 现在困难的部分 – 连接到Oracle.我安装了instantclient 11.2.和我的tnsnames.ora看起来像这样: testdb = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = dbname) ) ) 当我尝试使用命令连接时: ./sqlplus username/pass@testdb 它开始通过隧道连接(我在ssh调试中看到它)但它失败了 ./sqlplus username/pass@testdb SQL*Plus: Release 11.2.0.1.0 Production on Wed Jan 13 20:46:07 2010 Copyright (c) 1982,2009,Oracle. All rights reserved. ERROR: ORA-12541: TNS:no listener Enter user-name: 当我在内网上尝试执行相同的命令时,它可以工作(显然唯一的区别是在tnsnames.ora主机中我们有192.168.1.7而不是本地主机). 我也尝试使用简单的命令行: ./sqlplus username/pass@//localhost:1521/testdb 或者 ./sqlplus username/pass@//localhost:1521/testdb 但没有任何帮助:) 我将不胜感激任何帮助或建议.我错过了一些ssh标志以使其成为可能吗? 可能是日志文件: *********************************************************************** Fatal NI connect error 12541,connecting to: (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=DBNAME)(CID=(PROGRAM=sqlplus@velvet)(HOST=velvet)(USER=johndoe)))) VERSION INFORMATION: TNS for Linux: Version 11.2.0.1.0 - Production TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.1.0 - Production Time: 13-JAN-2010 20:48:42 Tracing not turned on. Tns error struct: ns main err code: 12541 TNS-12541: Message 12541 not found; No message file for product=network,facility=TNS ns secondary err code: 12560 nt main err code: 511 TNS-00511: Message 511 not found; No message file for product=network,facility=TNS nt secondary err code: 111 nt OS err code: 0 其中velvet是我的本地主机名,johndoe是我的本地用户名. 更新: 在从数据中心内部调查了一下后,看起来像: 所以错误“No Listener”可能来自于我们没有重定向这些端口的事实.是否有任何方法(可能在tnsnames.ora文件中有一些选项)强制使用某个特定端口? 查看Metalink ID 361284.1(编辑:实际上不公开,但查找信息 here)看起来Oracle Connection Manager可能是您的选择.它基本上处理防火墙内的端口重定向.我以前没用过,所以不能再告诉你了. 更新:另一种方法是使用MTS,为某些端口配置调度程序并在防火墙中打开这些端口.您不必为此安装其他软件,但通过共享服务器连接可能需要增加LARGE_POOL_SIZE,以及其他考虑因素.因此,您仍然需要DBA角色来更改DISPATCHERS参数.你还必须反弹数据库. (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |