0

我们有一个在只有 SSH 连接的远程服务器中运行的 Oracle 服务器,我们需要针对它运行数据导入过程。

我尝试了不同的 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 一起使用。有趣的是,所有这些组合都适用于使用 JDBC的 SQL Developer 和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

有任何想法吗?

4

1 回答 1

2

我假设连接字符串是正确的。如果是:您的数据库是否恰好处于受限模式?在这种情况下,它支持的服务不可用于连接。如果是这种情况,请尝试使用 SID=xxx 连接 tns 别名

我看不到 ssh 在这里有什么影响。数据库连接正常。仅当您需要通过 ssh 建立数据库连接时,ssh 才起作用。如果你的普通 sql 客户端可以在没有这个的情况下连接,imp 也可以这样做。通常 ssh 仅用于连接到服务器,在您的情况下不需要。

我希望这会有所帮助,罗纳德。

于 2011-03-07T10:46:37.860 回答