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

时间:2022-01-29 07:45:51
我用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邮箱,万分感谢!!!

5 个解决方案

#1


这么大的论坛,竟然没有人回贴???

#2


我也有此问题.....

#3


监听中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

#5


明显的不对,tnsnames.ora这个文件是Oracle里面的,http://www.itpub.net/thread-1792070-1-1.html 只能参考,路径和命名

#1


这么大的论坛,竟然没有人回贴???

#2


我也有此问题.....

#3


监听中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

#4


#5


明显的不对,tnsnames.ora这个文件是Oracle里面的,http://www.itpub.net/thread-1792070-1-1.html 只能参考,路径和命名