ORACLE 通过gateway组件建立dblink连接sqlserver数据库的实战详细过程

 

 

项目背景:

 

Oracle数据库11.2.0.1版本,linuxcentos 6.5系统,单实例

Sqlserver 2008版本,windows2008系统,单实例

 

 

1、下载地址:

(1)oracle官网

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html里面有下载gateway的

 

(2)云盘

链接: http://pan.baidu.com/s/1nv8Qnpv 密码: 3u3g

 

 

 

2、安装

在Oracle服务器上安装gateway(11gR2 gateway是单独的安装包:11.2.0.4.0x64是第五个安装包),下载下来是linux.x64_11gR2_gateways.zip这样一个压缩包,安装的时候和安装oracle软件一样,通过vnc viewer远程连接进去,解压缩,然后点击./runInstaller进行安装,主要步骤如下所示:

 

unzip  linux.x64_11gR2_gateways.zip

cd  gateways

export  DISPLAY=192.168.121.90:1

xhost +

(如果报xhost:  unable to open display  “192.168.121.90”的提示,则换成如下命令

export  DISPLAY=localhost:1

xhost +

su – oracle

cd/oracle/gateways/gateways/

./runInstaller

(接下来就是图形化桌面安装窗口演示部分E:\u\oracle\install\pic\*.png):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3、配置

安装后在会ORACLE_HOME下生成 dg4msql目录,

 

(1)修改initdg4msql.ora

 

 

 [oracle@xxxxx admin]$ vim initdg4msql.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=[10.1xx.1xx.1xx]:1433.ipva_s0400_b2
# alternate connect format is hostname/serverinstance/databasename
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER               

 

 

 

 

(2)修改$ORACLE_HOME/network/admin下的tnsnames.ora和listener.ora,添加sqlserver实例信息

[oracle@hch_test_121_90 admin]$ vim listener.ora

 

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = dg4msql)  #此处为配置文件SID,要与initdg4msql.ora中的名字对应

      (ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)

      (PROGRAM = dg4msql) #此处为配置文件目录名称,$ORACLE_HOME/dg4msql/admin/initdg4msql.ora

    )

    (SID_DESC =

      (SID_NAME = powerdes)

      (ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)

    )

  )

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.121.90)(PORT = 1521))

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

    )

  )

 

ADR_BASE_LISTENER = /home/oracle/app/oracle

 

 

当然如果想让网关监听信息不用1521端口也可以如下实验1522端口

LISTENER_getways =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

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

    )

  )

SID_LIST_LISTENER_getways =

  (SID_LIST =

    (SID_DESC=

      (SID_NAME = dg4msql)

      (ORACLE_HOME =/home/oracle/app/oracle/product/11.2.0/dbhome_1)

      (PROGRAM = dg4msql)

    )

  )

 

 

 

 

[oracle@hch_test_121_90 admin]$ vim tnsnames.ora

 

      (SERVER = DEDICATED)

      (SERVICE_NAME = powerdes)

    )

  )

 

dg4msql =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.121.90)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = dg4msql)

    )

    (HS = OK)  #此处表示连接的非oracle数据库

  )

 

PD12190 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.121.90)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = powerdes)

    )

  )

 

LISTENER_POWERDES =

  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.121.90)(PORT = 1521))

 

 

 

测试一下:

[oracle@hch_test_121_90 admin]$ tnsping dg4msql

 

TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 26-SEP-2016 21:10:26

 

Copyright (c) 1997, 2009, Oracle.  All rights reserved.

 

Used parameter files:

/home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/sqlnet.ora

 

 

Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.121.90)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = dg4msql)) (HS = OK))

OK (20 msec)

[oracle@hch_test_121_90 admin]$

 

 

 

 

4、在oracle服务器上创建dblink

 

PS:事先需要保证远程的sqlserver数据库是正常运行的。

 

先建立连接sqlserver的dblink:

# 先分配用户创建db link的权限

SQL> grant create database link to dw;

 

Grant succeeded.

 

SQL>

 

 

# 然后使用dw用户登录创建db link:

create database link tg4msql connect to sa identified by “ipva@07”

           using '(DESCRIPTION = 

           (ADDRESS_LIST = 

            (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.121.90)(PORT = 1521))

           )

           (CONNECT_DATA = 

             (SID = dg4msql)

           )

           (HS = OK)

         )';

 

 

 

然后用dw帐号连接oracle数据库,在oracle中通过dblink执行查询功能,证明从oracle建立到sqlserver的dblink成功了:

SQL> select * from Dict_City@tg4msql2 where rownum < 5;

 

   city_id province_id CityResCode

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

CityNote                           Status CreateTime      ModifyTime

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

DeleteTime   WeatherDate

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

        2        1 1_Beijing

SP2-0784: Invalid or incomplete character beginning 0xAC returned

       242        2 2_Chang Le                                                                                                                                                             NP                                               1 05-FEB-12    05-FEB-12

 

 

       159        2 2_Fu An

SP2-0784: Invalid or incomplete character beginning 0x89 returned

       158        2 2_Fu Ding

 

   city_id province_id CityResCode

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

CityNote                           Status CreateTime      ModifyTime

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

DeleteTime   WeatherDate

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

y.                                          1 05-FEB-12     05-FEB-12

 

 

 

SQL>

 

 

参考文章:

http://blog.csdn.net/lk_db/article/details/51262331

http://blog.csdn.net/u010257584/article/details/50844708

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值