如何在Oracle中建立透明网关

最近在研究数据从sql server 2000 向oracle迁移,有多种方法,但各有优点和缺点

方法一是用ms sql server自带的DTS 进行迁移,使用起来很方面,但image等类型的字段无法用dts导入,并且数据量大的情况下,会出现内存溢出的情况,一个2G内存的电脑能被活活拖死

第二种办法是用Oracle的透明网关,然后建立一个向sql server 的链接,通过该链接就可以访问sql server的数据,下面详细介绍如何在oracle服务器上建立透明网关

1 首先当然要在安装的时候就要安装好tg4msql(Oracle Transparent Gateway for ms sql server)工具,需要自定义安装,已经安装好的oracle 9i仍可以进行修复安装.

2 $ORACLE9I_HOME/tg4msql/admin下修改inittg4msql.ora文件:

 HS_FDS_CONNECT_INFO="SERVER=sqlserver_hostname;DATABASE=pubs"
 HS_FDS_TRACE_LEVEL=OFF
 HS_FDS_RECOVERY_ACCOUNT=RECOVER
 HS_FDS_RECOVERY_PWD=RECOVER

3 修改listener.ora的内容,在SID_LIST_LISTENER 中添加一段:

(SID_DESC=
      (SID_NAME=pubs)
      (ORACLE_HOME=d:/Oracle/Ora92)
      (PROGRAM=tg4msql)
    )
4 重起TNSListener服务

5 修改tnsnames.ora的内容,添加一段:

pubs =
  (DESCRIPTION =
  (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = pubs)
    )
    (HS = OK)
   )

保存

6 至此透明网关配置完成,可以在命令行提示符下进行测试连接:TNSPING pubs

如果测试为OK,则说明测试完成,如果超时,请详细检查各种ora文件,还要确保sql server 服务器开通了1521端口,免得被防火墙拦截了

下面就可以建立数据库链接了:

sql>create public database link pubs connect to sa identified by pwd using 'pubs';

sql>select * from stores@pubs;

sql>select "column1" from table1@pubs;



你可能感兴趣的:(oracle,sql,server,测试,服务器,database,sqlserver)