Oracle11g透明网关连SQL Server出现“ORA-28545: 连接代理时 Net8 诊断到错误..........”

取名好男 2014-05-07 10:01:37
我用Oracle11g透明网关连SQL Server, Oracel、网关 安装在172.16.102.18上,SQL Server安装在“172.16.102.8”上,配置各参数后,tnsping能通,数据库连接也能正确创建,但访问时出现如下错误:

ORA-28545: 连接代理时 Net8 诊断到错误
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: 紧接着 2 lines (起自 BSRUN)

请大虾们指点,我已经折腾好几天了,网上虽然有类似贴,但都没有一个详细的解决方案。以下贴上我配置透明网关的环境描述:

1、Oracle11g
  IP地址:172.16.102.18
  Oracle根目录:C:\Oracle11g\product\11.2.0\dbhome_1
  Oracle端口:1521
  SID:orcl

2、Oracle gateway11
  IP地址:172.16.102.18
  gateway11根目录:D:\product\11.2.0\tg_1
  gateway端口:1522
  SID:bsrun

3、Sqlserver2000
  IP地址:172.16.102.8
  数据库名:bsrun
  用户名:sa
  密码:123

4、initbsrun.ora
  位置:D:\product\11.2.0\tg_1\hs\admin\initbsrun.ora
  这个文件是配置连接sql server用的,文件组成结构是init+SID.ora,所以此处SID=bsrun
  文件内容如下:
   HS_FDS_CONNECT_INFO = 172.16.102.8//bsrun
   HS_FDS_TRACE_LEVEL = OFF
   HS_FDS_RECOVERY_ACCOUNT=sa
   HS_FDS_RECOVERY_PWD=123

5、listener.ora
  位置:D:\product\11.2.0\tg_1\NETWORK\ADMIN \ listener.ora
  文件内容如下:
 # listener.ora Network Configuration File: D:\product\11.2.0\tg_1\NETWORK\ADMIN\listener.ora
 # Generated by Oracle configuration tools.

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.102.18)(PORT = 1522))
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = bsrun)
(SID_NAME = bsrun)
(ORACLE_HOME = D:\product\11.2.0\tg_1)
(PROGRAM = bsrun)
)
)
ADR_BASE_LISTENER = D:\product\11.2.0\tg_1


6、tnsnames.ora
  位置:D:\product\11.2.0\tg_1\NETWORK\ADMIN \ tnsnames.ora
  内容如下:
# tnsnames.ora Network Configuration File: C:\Oracle11g\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.102.18)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

bsrun =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.102.18)(PORT = 1522))
)
(CONNECT_DATA =
(SID = bsrun)
)
(HS = OK)
)


7、listener.ora
位置:C:\Oracle11g\product\11.2.0\dbhome_1\NETWORK\ADMIN\ listener.ora
内容如下:
# listener.ora Network Configuration File: C:\Oracle11g\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\Oracle11g\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\Oracle11g\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.102.18)(PORT = 1521))
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = bsrun)
(ORACLE_HOME = C:\Oracle11g\product\11.2.0\dbhome_1)
(PROGRAM = bsrun)
)
)

ADR_BASE_LISTENER = C:\Oracle11g



8、tnsnames.ora
位置:C:\Oracle11g\product\11.2.0\dbhome_1\NETWORK\ADMIN\ tnsnames.ora
内容如下:


# tnsnames.ora Network Configuration File: C:\Oracle11g\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.102.18)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

bsrun =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.102.18)(PORT = 1522))
)
(CONNECT_DATA =
(SID = bsrun)
)
(HS = OK)
)


9、创建link
在命令窗口中执行
create database link bsrun connect to sa identified by "123" using 'bsrun';

10、查询link中的数据
  在命令窗口执行
  select * from ms_mzmx@bsrun;

出现如下错误:

  ORA-28545: 连接代理时 Net8 诊断到错误
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: 紧接着 2 lines (起自 BSRUN)

跪求解决方案,我QQ:49902799,可直接发我QQ邮箱,万分感谢!!!
...全文
12963 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

请问最后怎么解决的?

qq_19969843 2015-05-28
  • 打赏
  • 举报
回复
明显的不对,tnsnames.ora这个文件是Oracle里面的,http://www.itpub.net/thread-1792070-1-1.html 只能参考,路径和命名
bw555 2014-10-11
  • 打赏
  • 举报
回复
bw555 2014-10-11
  • 打赏
  • 举报
回复
监听中PROGRAM写得不太对吧
 配置E:\Oracle\product\11.2.0\tg_1\NETWORK\ADMIN\listener.ora

复制代码
SID_LIST_LISTENER =  
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = dg4msql)    #此处为配置文件SID,要与initdg4msql.ora中的名字对应
      (ORACLE_HOME = E:\Oracle\product\11.2.0\tg_1)
      (PROGRAM = dg4msql)   #此处为配置文件目录名称,Oracle 11g中都为dg4msql,不需变更(注1)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.108.3.20)(PORT = 1522))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
    )
  )

ADR_BASE_LISTENER = E:\Oracle\product\11.2.0\tg_1
复制代码
注1:如果将此处的dg4msql变掉,在最后通过Oracle访问SQL SERVER时会报以下错误

ORA-28545: 连接代理时 Net8 诊断到错误 
Unable to retrieve text of NETWORK/NCR message 65535 
ORA-02063: 紧接着 2 lines
三味书屋 2014-10-11
  • 打赏
  • 举报
回复
我也有此问题.....
取名好男 2014-05-13
  • 打赏
  • 举报
回复
这么大的论坛,竟然没有人回贴???

3,490

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧