透明网关配置文档
1环境信息(亲测)
数据库:Oracle11g
IP地址127.0.0.1
Oracle根目录E:\app\lenovo\product\11.2.0\dbhome_1
Oracle端口1521
Sqlserver2008r2
IP地址127.0.0.1
数据库名cs
用户名Sa
密码a123456
Oracle gateway11
IP地址127.0.0.1
gateway11根目录D:\product\11.1.0\tg_3
gateway端口1522
SIDdg4msql
操作系统 :windows10家庭中文版
2 oracle透明网关配置
2.1 Gateway安装
下一步,填写SQLServer数据库服务器主机名,如:127.0.0.1;数据库名称:cs
安装完后,会弹出配置监听界面,因为我们要手工配置,点击取消即可。
安装完Gateway软件后,在ORACLE_HOME目录(D:\product\11.2.0\tg_3)下有一下dg4msql的目录,这就是Gateway软件的目录了。
2.2 透明网关配置的sid信息,指明要访问的sqlserver数据库
在D:\Oracle\product\11.2.0\tg_1\dg4msql\admin\initdg4msql.ora目录下有一个initdg4msql.ora的文件。该文件是Gateway的初始参数文件,描述连接的是哪个SQL Server数据库。该文件的格式是initSID.ora,这里的SID在后面需要用到,系统默认的是dg4msql,一般情况这样就可以了。如果改名,如使用CS作为SID,则文件名变成initcs.ora。这里不作更改文件内容如下:
# This is a customized agent init file that contains the HSparameters
# that are needed for the Database Gateway for Microsoft SQL Server
#
# HS init parameters
#
HS_FDS_CONNECT_INFO=[127.0.0.1]:1433//cs
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
只要修改HS_FDS_CONNECT_INFO参数就可以了。格式是:[hostname:port]/serverinstance/databasename,其中hostname是机器名称或IP,PORT是SQL Server的端口号,SQL Server2008默认为1433.serverinstance是SQL Server的实例名,一般空着就行。Databasename是SQL Server的数据库名。因为我们在安装过程中指定了主机名和数据库名,这里已经有信息了。
2.3 透明网关配置监听器,处理oracle的查询请求
透明网关层的监听配置文件:D:\product\11.2.0\tg_3\NETWORK\ADMIN\listener.ora
#listener.ora Network Configuration File:D:\product\11.2.0\tg_3\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST=
(SID_DESC =
(GLOBAL_DBNAME = dg4msql)
(PROGRAM= dg4msql)
(SID_NAME = dg4msql)
(ORACLE_HOME = D:\product\11.2.0\tg_3)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
)
)
ADR_BASE_LISTENER = D:\product\11.2.0\tg_3
PROGRAM为dg4msql:因为实例的配置文件在dg4msql目录下,就是上面的init dg4msql.ora文件所在的目录
SID_NAME为dg4msql :这个sid就是上面的文件名中的sid,initdg4msql.ora的sid为dg4msqlORACLE_HOME就是我们透明网关的安装目录
ORACLE的监听端口是1521,我的oracle和透明网关是安装在同一台机器上的,所以透明网关的监听端口设置为1522。
一个initSID.ora文件就对应一个SID_DESC,可以根据想要链接的数据库来配置。
2.4 启动监听
lsnrctl start
也可以去windows的服务中查看OracleOraGtw11g_home1TNSListener是否已经启动
2.5 gateway服务器配置tns D:\product\11.2.0\tg_3\NETWORK\ADMIN\tnsnames.ora
dg4msql =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
)
(CONNECT_DATA =
(SERVICE_NAME = dg4msql)
)
(HS = OK)
)
2.6 oracle服务器配置tns
在需要建立dblink的Oracle数据库所在服务器,配置
E:\app\lenovo\product\11.2.0\dbhome_1\NETWORK\ADMIN/tnsnames.ora
dg4msql =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =127.0.0.1)(PORT = 1522))
)
(CONNECT_DATA =
(SERVICE_NAME = dg4msql)
)
(HS = OK)
)
2.7 测试tns
[if !vml]
[endif]
3 打开SQL ServerConfiguration Manager
1、配置SQLEXPRESS,将IP1,IP2,IPALL的动态端口全部设为空,TCP端口全部设为1433,已启用全部设为“是”
2
、配置SQL Native Client,默认端口设为1433,已启用设为“是”
4 创建dblink
create database linkcs2link
connect to sa identified by"a123456"
using 'dg4msql';
5 测试
select * from lianxi@cs2link ,成功查询数据