ORACLE 通过gateway组件建立dblink连接sqlserver数据库的实战详细过程
2016-10-01 23:13
591 查看
项目背景:
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
相关文章推荐
- ORACLE 11g 通过ASH结合AWR实战解决cpu高负载的详细过程
- Oracle建立DBLINK的详细步骤记录
- Oracle建立DBLINK的详细步骤记录
- Oracle建立DBLINK的详细步骤记录
- Linux Socket过程详细解释(包括三次握手建立连接,四次握手断开连接)
- Oracle 调用 JAVA 实战(通过 Oracle 存储过程读取服务器目录)
- Linux Oracle10 建立归档模式的详细过程
- oracle入门(8)——实战:支持可变长参数、多种条件、多个参数排序、分页的存储过程查询组件
- Window7 x64环境下 SSIS无法通过Oracle 64位建立连接
- Oracle建立DBLINK的详细步骤记录
- Oracle建立DBLINK的详细步骤记录
- Oracle建立DBLINK的详细步骤记录【转】
- Oracle建立DBLINK的详细步骤记录
- 实战Jsp连接MySQL数据库详细过程(原创)
- 通过ODBC连接sqlserver数据库调用存储过程并获得return或output的值
- Oracle建立DBLINK的详细步骤记录
- Oracle建立DBLINK的详细步骤记录
- Oracle建立DBLINK的详细步骤记录
- Oracle建立DBLINK的详细步骤记录
- Oracle建立DBLINK的详细步骤记录