我想实现从oracle(主机ip:10.0.0.1)访问sql server(主机ip:10.0.0.2)库中的表,设计了透明网关,详情如下:
1.我在oracle主机上(10.0.0.1)安装了oracle的针对sql server的透明网关组件,得到一个inittg4msql.ora文件,根据需要修改其内容(我需要访问tempdb库):
# This is a sample agent init file that contains the HS parameters that are
# needed for the Transparent Gateway for SQL Server#
# HS init parameters
#
HS_FDS_CONNECT_INFO="SERVER=10.0.0.2;DATABASE=tempdb"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER2.我增加了oracle主机的listener.ora文件,如下:
SID_LIST_LISTENER =
  (SID_LIST =
        
  (SID_DESC =
     
     (PROGRAM = tg4msql)
     (SID_NAME = tg4msql)              # 由inittg4msql这个文件名确定SID 为tg4msql
     (ORACLE_HOME = c:\oracle\ora92)
   )  )3.重启了windows系统的oracle监听服务4.增加了tnsname.ora文件,如下:
tg4msql =
    (DESCRIPTION =
     (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
     (SID = tg4msql)
    )
    (HS = OK)
   )由于我安装透明网关的主机ip是10.0.0.1,所以host=10.0.0.1配置完上述的内容后,我在oracle中创建dblink,如下:
create public database link MSSQL175
  connect to sa identified by sa  using 'tg4msql';其中,sa用户是sql server的一个授权用户。最后,我用语句测试
select * from table1@MSSQL175执行时,遇到一个问题,就是当我点击执行按钮后,oracle没有报错,但是这个查询一直在执行中,执行了6-7个小时仍然在执行,而我要查询的表的记录只有100条左右。为什么会出现这种情况?
请高手指出我的问题出在哪里?
谢谢!!!