Oracle 隧道连接上的 imp.exe 问题
我们有一个在远程服务器上运行的 Oracle 服务器,该服务器只有 SSH 连接,我们需要针对它运行数据导入过程。
我尝试了不同的 SSH 隧道组合:
- 127.0.0.1:1521
- 127.0.0.1:1522
- 127.0.0.1:11111
- 127.0.0.107:1522
- 127.0.0.107:11111
但它们都不能与 imp.exe 一起使用。有趣的是,所有这些组合都可以很好地与 SQL Developer 和使用 JDBC 的 Scriptella 脚本配合使用。标准错误输出中显示以下错误:
IMP-00058: ORACLE error 12514 encountered
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
IMP-00000: Import terminated unsuccessfully
sqlnet.log 中显示以下错误:
***********************************************************************
Fatal NI connect error 12514, connecting to:
(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=tktdb1)(CID=(PROGRAM=C:\oraclexe\app\oracle\product\10.2.0\server\bin\imp.exe)(HOST=...)(USER=...)))(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=11111)))
VERSION INFORMATION:
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version 10.2.0.1.0 - Production
Time: 07-MAR-2011 10:53:26
Tracing not turned on.
Tns error struct:
ns main err code: 12564
TNS-12564: TNS:connection refused
ns secondary err code: 0
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
有什么想法吗?
We have an Oracle server running in a remote server which only has an SSH connection and we need to run data import process against that.
I tried different SSH tunnel combinations:
- 127.0.0.1:1521
- 127.0.0.1:1522
- 127.0.0.1:11111
- 127.0.0.107:1522
- 127.0.0.107:11111
But none of them work with imp.exe. Intresting thing that all those combinations works just fine with SQL Developer and Scriptella scripts that use JDBC. The following error is shown in standard error output:
IMP-00058: ORACLE error 12514 encountered
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
IMP-00000: Import terminated unsuccessfully
And the following appears in the sqlnet.log:
***********************************************************************
Fatal NI connect error 12514, connecting to:
(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=tktdb1)(CID=(PROGRAM=C:\oraclexe\app\oracle\product\10.2.0\server\bin\imp.exe)(HOST=...)(USER=...)))(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=11111)))
VERSION INFORMATION:
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version 10.2.0.1.0 - Production
Time: 07-MAR-2011 10:53:26
Tracing not turned on.
Tns error struct:
ns main err code: 12564
TNS-12564: TNS:connection refused
ns secondary err code: 0
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为连接字符串是正确的。如果是:您的数据库是否恰好处于受限模式?在这种情况下,它支持的服务不可用于连接。如果是这种情况,请尝试使用 SID=xxx 与 tns 别名连接
。我无法看到 ssh 在这里有什么影响。数据库连接正在工作。仅当您需要通过 ssh 建立数据库连接隧道时,ssh 才起作用。如果你的普通 sql 客户端不需要这个就可以连接,imp 也可以做同样的事情。通常 ssh 仅用于连接到服务器,在您的情况下不需要。
我希望这有帮助,
罗纳德.
I asume that the connect strings are correct. If they are: does you database happen to be in restricted mode? In that case, the service it supports are not available for connections. If that is the case, try connecting with a tns alias using SID=xxx
I fail to see what ssh has for impact here. The database connection is working. ssh only plays a role if you need to tunnel your database connection through ssh. If your normal sql client can connect without this, imp can do the same. Normally ssh is only used to connect to the server, which is not needed in your case.
I hope this helps,
Ronald.