用Transparent Gateway(TG)从SQL SERVER中提取数据到Oracle

测试环境:

Oracle 数据库11g , Linux Redhat 5.4 , IP 192.168.56.180

Sqlserver 数据库 2008 R2 ,Win7 , IP 192.168.56.222

Gateway软件可以安装在Oracle数据库端,Sqlserver数据库端,或者一台单独的服务器上。

本次安装在Sqlserver服务器上。

 

配置Sql Server登陆设置。

配置成Windows和SqlServer用户登陆。可以创建新的登陆名。

参考

http://blog.163.com/jackie_howe/blog/static/19949134720122261121214/

讲解SQL Server用户登陆的文章。

 

安装Gateway软件。

安装Gateway时选择for SQL Server。

要求提供SQL Server数据库的资料时写错了也没关系,在配置文件里面可以改。

安装完成后配置监听,默认配置就可以,也可以改。

 

配置透明网关参数文件

默认情况下,安装透明网关时会生成一个默认的参数文件:initdg4msql.ora,它的SID是dg4msql,可是使用这个文件,也可以新建一个文件,本例中使用新建文件。

进入$GATEWAY_HOME\ dg4msql\admin目录,$GATEWAY_HOME即安装透明网关的安装目录,本例为C:\product\11.2.0\tg_1,

新建一个文件:inittest.ora,这个名字可随便取但要注意格式:init<sid>.ora,把它理解为参数文件就可以。

参数文件内容如下:

# This is a customized agent init file that contains the HS parameters
# that are needed for the Database Gateway for Microsoft SQL Server
#
# HS init parameters
#
HS_FDS_CONNECT_INFO=(local)/mssql/student
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER

格外注意HS_FDS_CONNECT_INFO参数,如果设置不合适会出现莫名其妙的错误。

因为数据库在本机所以是(local),如果不是本机可能应该是[192.168.56.222]的形式。

Mssql是SQL Server的实例名,(local)/mssql构成了SQL Server的服务器。Student是里面的一个数据库。

 

配置Gateway的监听

修改$GATEWAY_HOME\NETWORK\ADMIN目录下的listener.ora文件。

本例中的配置如下:

# listener.ora Network Configuration File: C:\product\11.2.0\tg_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
 
# This is a sample listener.ora that contains the NET8 parameters that are
# needed to connect to an HS Agent
 
LISTENER =
 (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.222)(PORT=1521))
 )
 
SID_LIST_LISTENER=
  (SID_LIST=
      (SID_DESC=
         (SID_NAME=test)
         (ORACLE_HOME=C:\product\11.2.0\tg_1)
         (PROGRAM=dg4msql)
      )
  )
 
#CONNECT_TIMEOUT_LISTENER = 0

模板来自$GATEWAY_HOME\ dg4msql\admin目录。修改几个地方就可以了。

注意的地方:

HOST要写本机的外网IP,不能写成127.0.0.1或者localhost。这样会导致无法连接。

SID_NAME是要与参数文件对应。

修改完配置文件之后需要重启监听,到$GATEWAY_HOME\bin目录下,用管理员身份运行lsnrctl.exe。

stop再start。成功后再看看status。

这样Gateway就配置好了。

 

配置Oracle端。

首先配置$ORACLE_HOME/network/admin/tnsnames.ora文件,添加一个TNS。

本例如下:

mssql =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.222)(PORT = 1521))
    (CONNECT_DATA =(SID = test))
    (HS = OK)
  )

注意两点:

HS=OK,说明是异构数据库。

SID要与Gateway的监听和参数文件对应。

修改完成后用TNSPING验证。

 

配置DBLINK并访问。

创建DBLINK:

create database link tttttdblnk connect to "sa" identified by "Cong" using 'mssql' ;

注意用户名和密码最好用双引号,并注意大小写。

Using后面的是上面创建的TNS名。

 

根据上面的配置会自动连接到student库,这个库里有一个test表。

select * from test@tttttdblnk ;

如果一切正常就可以把数据读出来了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值