暂无图片
Oracle透明网关建立后创建dblink连接报错
我来答
分享
jackyimi
2022-01-19
Oracle透明网关建立后创建dblink连接报错

请教一个Oracle透明网关的问题(oracle连接sqlserver)
之前dblink是可以连接的,tnsnames中加入了一个新服务后,不能连接这个新连接名,然后删除了这个新服务,之前的dg4msql还在。

我是在windows服务里面关闭了oracle11g的透明网关监听,再启动的时候就不能启动了
我通过net manager 删除了监听,建了一个LISTENER1522的监听,监听就启动起来了
删除dblink后重新创建,使用
drop public database link test;
create public database link test connect to sa identified by "test123$" using 'dg4msql';
select 1 from dual@test;
第 1 行出现错误:
ORA-28545: 连接代理时 Net8 诊断到错误
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: 紧接着 2 lines (起自 TEST)

------------------

透明网关的配置如下:

IP规划

192.168.1.149 sqlserver ip

192.168.1.143 oracle ip 数据库SID ORCL


Oracle数据库和Oracle透明网关在同一个机器192.168.1.143上,通过odbc,使用pos用户连接上了sqlserver,服务名testdb有驱动了。

透明网关的配置

D:\product\11.2.0\tg_1\dg4msql\admin\initdg4msql.ora

HS_FDS_CONNECT_INFO=[192.168.1.149]//testdb

HS_FDS_TRACE_LEVEL=OFF

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER


D:\product\11.2.0\tg_1\NETWORK\ADMIN\listener.ora

SID_LIST_LISTENER =  

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = dg4msql)

      (ORACLE_HOME = D:\product\11.2.0\tg_1)

      (PROGRAM = dg4msql)

    )

  )


LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.143)(PORT = 1522))

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))

    )

  )

ADR_BASE_LISTENER = D:\product\11.2.0\tg_1


D:\product\11.2.0\tg_1\NETWORK\ADMIN\tnsnames.ora

改为

dg4msql =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.143)(PORT = 1522))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = dg4msql)

    )

    (HS = OK)

  )

Oracle数据库的配置

D:\app\Admin\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = CLRExtProc)

      (ORACLE_HOME = D:\app\Admin\product\11.2.0\dbhome_1)

      (PROGRAM = extproc)

      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\Admin\product\11.2.0\dbhome_1\bin\oraclr11.dll")

    )

    (SID_DESC =

      (GLOBAL_DBNAME = ORCL)

      (ORACLE_HOME = D:\app\Admin\product\11.2.0\dbhome_1)

      (SID_NAME = ORCL)

    )

    (SID_DESC =

      (SID_NAME = dg4msql)

      (ORACLE_HOME = D:\app\Admin\product\11.2.0\dbhome_1)

      (PROGRAM = dg4msql)

    )

  )

 

LISTENER1522 =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.143)(PORT = 1522))

    )

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))

    )

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))

    )

  )


ADR_BASE_LISTENER1522 = D:\product\11.2.0\tg_1


Oracle服务器配置tns

D:\app\Admin\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora

dg4msql =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.143)(PORT = 1522))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = dg4msql)

    )

    (HS = OK)

  )

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
cqiwen

应该还是透明网关的配置问题。另外,LISTENER1522的HOST = 127.0.0.1 改为主机名或者改为局域网IP试试。

暂无图片 评论
暂无图片 有用 0
jackyimi

您好,谢谢回复.我试过了,还是不行.

暂无图片 评论
暂无图片 有用 0
cqiwen

感觉你的透明网关配置有问题,重点检查下windows上的防火墙有没有开放1522端口

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏