Oracle11g通过Dblink连接SqlServer2005

时间:2021-10-02 07:41:48
我通过DBlink连接Sqlserver时总是报“ ORA-28545:连接代理时Net8诊断到错误 Unable to retrieve text of NETWORK/NCR message 65535 ORA-02063:紧接着2lines”,求大神解答?请看下面描述:

1、环境描述:
1.1 Oracle11g IP地址:127.0.0.1 
Oracle根目录:D:\oraclexe\app\oracle\product\11.2.0\server
Oracle端口:1521
SID:xe

1.2 Oracle gateway11 IP地址:127.0.0.1 
gateway根目录:D:\oraclexe\app\oracle\product\11.2.0\tg_1
gateway端口:1522 

1.3 Sqlserver2005 IP地址:127.0.0.1
数据库名:master
用户名:sa 
密码:111
测试表名:test_data

2、相关配置文件如下:
2.1  gateway根目录下相应目录下的配置文件
2.1.1 initdg4msql.ora

HS_FDS_CONNECT_INFO=127.0.0.1/MSSQLSERVER/master
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=sa
HS_FDS_RECOVERY_PWD=111


2.1.2 listener.ora

SID_LIST_LISTENER=
  (SID_LIST=
      (SID_DESC=
         (SID_NAME=dg4msql)
         (ORACLE_HOME=D:\oraclexe\app\oracle\product\11.2.0\tg_1)
         (PROGRAM=dg4msql)
      )
  )
  
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
    )
  )

ADR_BASE_LISTENER = D:\oraclexe\app\oracle\product\11.2.0\tg_1  


2.1.3 tnsnames.ora

dg4msql =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = dg4msql)
    )
    (HS = OK)
  )


2.2  oracle根目录下相应目录下的配置文件
2.2.1  listener.ora

SID_LIST_LISTENER =
  (SID_LIST =
   (SID_DESC =
      (SID_NAME = dg4msql)
      (ORACLE_HOME = D:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = dg4msql)
    )
  ) 


2.2.2  tnsnames.ora

dg4msql =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = dg4msql)
    )
    (HS = OK)
  ) 


3、建立DBlink连接
create public database link MS_LINK
  connect to sa identified by "111"
  using 'dg4msql';

4、测试:
select * from test_data@MS_LINK

报错如下:
Oracle11g通过Dblink连接SqlServer2005

我在网上找了好久,发现很多都是这个错误,但没有得到大神的答复,期待大神出现解决这个困扰了好久的问题?

12 个解决方案

#1


可以参考下这个网址的解决办法:
http://www.itpub.net/viewthread.php?tid=396151&extra=&page=2

#2


引用 1 楼 ghx287524027 的回复:
可以参考下这个网址的解决办法:
http://www.itpub.net/viewthread.php?tid=396151&extra=&page=2

参考这个网址里的做法,把Host换成主机名或本机的IP地址,然后重启监听测试,还是报同样的错误。
另外,那里说tnsping测试监听,但我用tnsping dg4msql一直下面的错误
Oracle11g通过Dblink连接SqlServer2005
这是什么问题呢?

#3


引用 2 楼 dd276 的回复:
Quote: 引用 1 楼 ghx287524027 的回复:

可以参考下这个网址的解决办法:
http://www.itpub.net/viewthread.php?tid=396151&extra=&page=2

参考这个网址里的做法,把Host换成主机名或本机的IP地址,然后重启监听测试,还是报同样的错误。
另外,那里说tnsping测试监听,但我用tnsping dg4msql一直下面的错误
Oracle11g通过Dblink连接SqlServer2005
这是什么问题呢?

tns文件有问题,造成服务名无法解析

#4


引用 3 楼 zlloct 的回复:
Quote: 引用 2 楼 dd276 的回复:

Quote: 引用 1 楼 ghx287524027 的回复:

可以参考下这个网址的解决办法:
http://www.itpub.net/viewthread.php?tid=396151&extra=&page=2

参考这个网址里的做法,把Host换成主机名或本机的IP地址,然后重启监听测试,还是报同样的错误。
另外,那里说tnsping测试监听,但我用tnsping dg4msql一直下面的错误
Oracle11g通过Dblink连接SqlServer2005
这是什么问题呢?

tns文件有问题,造成服务名无法解析

TNS文件有什么问题?如何解决呢?

#5


引用 4 楼 dd276 的回复:
Quote: 引用 3 楼 zlloct 的回复:

Quote: 引用 2 楼 dd276 的回复:

Quote: 引用 1 楼 ghx287524027 的回复:

可以参考下这个网址的解决办法:
http://www.itpub.net/viewthread.php?tid=396151&extra=&page=2

参考这个网址里的做法,把Host换成主机名或本机的IP地址,然后重启监听测试,还是报同样的错误。
另外,那里说tnsping测试监听,但我用tnsping dg4msql一直下面的错误
Oracle11g通过Dblink连接SqlServer2005
这是什么问题呢?

tns文件有问题,造成服务名无法解析

TNS文件有什么问题?如何解决呢?

根据你的报错信息使用的是sqlnet.ora这个文件,你检查一下这个文件

#6


引用 5 楼 zlloct 的回复:
根据你的报错信息使用的是sqlnet.ora这个文件,你检查一下这个文件

这个文件的内容:
SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

#7


有没有人帮忙指点下,自己顶下先

#8


tnsping既然不同,先看下网络能不能通ping 目标主机ip,如果这样不同就是网络问题。
如果排除网络问题,就要看看有没有权限访问、本机数据库配置哪里出了问题。 Oracle11g通过Dblink连接SqlServer2005

#9


随便点个图片,竟然是这。 Oracle11g通过Dblink连接SqlServer2005

#10


该回复于2014-09-22 08:47:55被管理员删除

#11


楼上的学习了。。我一般都用finereport联合sql进行报表设计的,感觉效率还蛮高的。

#12


虽然没有解决,但还是谢谢各位热心探讨

#1


可以参考下这个网址的解决办法:
http://www.itpub.net/viewthread.php?tid=396151&extra=&page=2

#2


引用 1 楼 ghx287524027 的回复:
可以参考下这个网址的解决办法:
http://www.itpub.net/viewthread.php?tid=396151&extra=&page=2

参考这个网址里的做法,把Host换成主机名或本机的IP地址,然后重启监听测试,还是报同样的错误。
另外,那里说tnsping测试监听,但我用tnsping dg4msql一直下面的错误
Oracle11g通过Dblink连接SqlServer2005
这是什么问题呢?

#3


引用 2 楼 dd276 的回复:
Quote: 引用 1 楼 ghx287524027 的回复:

可以参考下这个网址的解决办法:
http://www.itpub.net/viewthread.php?tid=396151&extra=&page=2

参考这个网址里的做法,把Host换成主机名或本机的IP地址,然后重启监听测试,还是报同样的错误。
另外,那里说tnsping测试监听,但我用tnsping dg4msql一直下面的错误
Oracle11g通过Dblink连接SqlServer2005
这是什么问题呢?

tns文件有问题,造成服务名无法解析

#4


引用 3 楼 zlloct 的回复:
Quote: 引用 2 楼 dd276 的回复:

Quote: 引用 1 楼 ghx287524027 的回复:

可以参考下这个网址的解决办法:
http://www.itpub.net/viewthread.php?tid=396151&extra=&page=2

参考这个网址里的做法,把Host换成主机名或本机的IP地址,然后重启监听测试,还是报同样的错误。
另外,那里说tnsping测试监听,但我用tnsping dg4msql一直下面的错误
Oracle11g通过Dblink连接SqlServer2005
这是什么问题呢?

tns文件有问题,造成服务名无法解析

TNS文件有什么问题?如何解决呢?

#5


引用 4 楼 dd276 的回复:
Quote: 引用 3 楼 zlloct 的回复:

Quote: 引用 2 楼 dd276 的回复:

Quote: 引用 1 楼 ghx287524027 的回复:

可以参考下这个网址的解决办法:
http://www.itpub.net/viewthread.php?tid=396151&extra=&page=2

参考这个网址里的做法,把Host换成主机名或本机的IP地址,然后重启监听测试,还是报同样的错误。
另外,那里说tnsping测试监听,但我用tnsping dg4msql一直下面的错误
Oracle11g通过Dblink连接SqlServer2005
这是什么问题呢?

tns文件有问题,造成服务名无法解析

TNS文件有什么问题?如何解决呢?

根据你的报错信息使用的是sqlnet.ora这个文件,你检查一下这个文件

#6


引用 5 楼 zlloct 的回复:
根据你的报错信息使用的是sqlnet.ora这个文件,你检查一下这个文件

这个文件的内容:
SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

#7


有没有人帮忙指点下,自己顶下先

#8


tnsping既然不同,先看下网络能不能通ping 目标主机ip,如果这样不同就是网络问题。
如果排除网络问题,就要看看有没有权限访问、本机数据库配置哪里出了问题。 Oracle11g通过Dblink连接SqlServer2005

#9


随便点个图片,竟然是这。 Oracle11g通过Dblink连接SqlServer2005

#10


该回复于2014-09-22 08:47:55被管理员删除

#11


楼上的学习了。。我一般都用finereport联合sql进行报表设计的,感觉效率还蛮高的。

#12


虽然没有解决,但还是谢谢各位热心探讨