windowsServer12R2 环境下 Oracle11g 通过 ODBC 搭建与
SAP-HANA 数据库 dblink
一、前提条件
1.软件
1)Oracle11g,下载地址:
2)windowsX64 的 HANA 数 据 库 ODBC 客 户 端 , 下 载 地 址 :
https://www.sap.com/developer/trials-downloads/additional-downloads/sap-hana-client-s
oftware-packages-12590.html
2.环境
1)Windows Server 2012R2
Oracle11g 软件安装在 Windows Server 2012R2
2)Windows Server 2008R2
SAP HANA 软件安装在 Windows Server 2008R2
备注:
由 于 安 装 的 Oracle11g 数 据 库 默 认 会 安 装 ODBC 驱 动 , 所 以 不 需 要 另 外 下 载 安 装
Oracle11g-gateway-R2 软件。如果 Oracle11g 安装时没有安装 ODBC 驱动,则先下载
win64_11gR2_gateways,然后安装。
二、Oracle 实现异构连接原理
1.Generic Heterogeneous Services ,通用异构服务
服务端安装 non-oracle db 的 client,使用其所带的 ODBC 驱动建立其数据源,然后 oracle
通过 hs 组件建立与 ODBC 之间的 dblink 从而实现异构连接。
2.Transparent Gateway,透明网关
安装透明网关,选择相应的 non-oracle db 网关选项,建立监听连接透明网关,进而
dblink 实现异构连接。
三、通用异构服务异构连接安装部署步骤(以 HANA 数据库为例)
目标:建立与 target non-oracle db 与 odbc 之间的访问,使之能和 hs 组件建立监听并提
供 dblink 服务。
此种方式须安装 odbc 访问 db 时所需的驱动,通常由 oracle client 自带。
1.配置 ODBC 源
首先需要在 windows server 12R2 环境 安装好 HANA 数据库 ODBC 客户端,然后按住
“windows”键,搜索“ODBC 数据源“,如果目标数据库是 32 位系统,则选择 ODBC 数据源(32
位);如果目标数据库是 64 位系统,则选择 ODBC 数据源(64 位)。
进入以后,选择”系统 DSN”tab 页,点击“添加”按钮,如下图所示:
选择需要配置的数据源驱动程序,选择好以后点击“完成”按钮,如下图所示:
弹出的界面中输入数据源名称、地址端口及类型信息,如下图所示:
点击“connect”按钮,然后在弹出框中输入用户名和密码,如下图所示:
输入用户和密码后点击”OK“,如果成功则弹出如下图提示:
以上为 ODBC 数据源配置。重点关注:一定是要在”系统 DSN”Tab 页进行配置,
同时要记住数据源名称。
2. 配置在 initdg4odbc.ora 中的配置参数
首先进入 ORACLE_HOME\hs\admin 目录,将 initdg4odbc.ora 文件名称修改为第一步 ODBC
数据源名称一致,initodbcsap.ora;然后配置文件中的参数信息,如下图:
HS_FDS_CONNECT_INFO=odbcsap
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=TRISEONE
HS_FDS_RECOVERY_PWD=Triseone1234
#HS_TRANSACTION_MODEL=SINGLE_SITE_AUTOCOMMIT
#HS_FDS_SUPPORT_STATISTICS=FALSE
备注:odbcsap 一定与 ODBC 数据源一致;
HS_FDS_TRACE_LEVEL 一般设置为 OFF。
3.修改监听文件 listener.ora 的配置参数
首先进入 ORACLE_HOME\NETWORK\ADMIN 目录,打开文件,在原有的文件中插入如下标
红的信息
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS
=
"EXTPROC_DLLS=ONLY:E:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(GLOBAL_DBNAME=odbcsap)
(ORACLE_HOME=E:\app\Administrator\product\11.2.0\dbhome_1)
(SID_NAME=odbcsap)
(PROGRAM=dg4odbc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = WIN-0800ULM787H)(PORT = 1521))
)
)
ADR_BASE_LISTENER = E:\app\Administrator
备注:PROGRAM = dg4odbc,11g 前版本可能为 hsodbc;
SID_NAME = odbcsap,odbcsap 为 init.ora 中 SID Name;
GLOBAL_HOME=odbcsap,与 SID_NAME 保持一致;
ORACLE_HOME = oralce 安装目录。
4.修改 tnsname.ora 的配置参数
首先进入 ORACLE_HOME\NETWORK\ADMIN 目录,打开文件,在原有的文件中插入如下标
红的信息
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ODBCSAP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SID = odbcsap)
)
(HS=OK)
)
备注:SID=odbcsap,odbcsap 为 init.ora 中 SID Name;
类似普通 tnsname 设置,但(HS=OK)此处必须。
5.创建 dblink 进行验证测试
Create database link sapLink
Connect to “User_name” identified by “password”
Using ‘ODBCSAP‘;
备注:user_name,连接目标数据库的用户名;
Password, 连接目标数据库的密码;
ODBCSAP 是 tnsnames.ora 中标红的命名;
sapLink 是创建的 dblink 名称。
6.测试的查询语句
Select * from table_name@sapLink;
备注:table_name,连接目标数据库的数据库或视图名称。
或者从第五步开始省去,直接创建 dblink,如下所示:
create database link to_sql connect to
identified by using
‘ (DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =)(PORT =
1521))
)
(CONNECT_DATA =
(SID = odbcsap)
)
(HS=OK)
1.
2.
3.
4.
5.
6.
7.
8.
)
‘
备注:类似普通 tnsname 设置,但(HS=OK)此处必须。sid 为 init.ora 所指
定 sid