1. 安装多次 发现在同一个机器上面总出问题,所以建议找一个没有安装oracle的机器上面进行安装gateways

2. 下载oracle gateways 并且解压缩, 下载地址详情见官网. 下载的安装文件: winx64_12201_gateways

Oracle Gateways 方式创建dblink 连接 SQLSERVER数据库-LMLPHP

安装.

3. 安装注意事项:

组件比较多 安装

Oracle Gateways 方式创建dblink 连接 SQLSERVER数据库-LMLPHP

设置数据库相关

Oracle Gateways 方式创建dblink 连接 SQLSERVER数据库-LMLPHP

执行安装完成.

4. 安装完成之后 修改主要的配置文件:

修改目录下下面的 initdg4msql.ora

Oracle Gateways 方式创建dblink 连接 SQLSERVER数据库-LMLPHP

文件内容自动生成

HS_FDS_CONNECT_INFO=[10.24.160.1]/MSSQLSERVER/CWBASEM871
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER

一般要求在如下的目录下均有监听和tnsnames文件

C:\app\tg\Administrator\product\12.2.\tghome_1\network\admin

文件内容基本相同

本次举例

Listener.ora

# 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=Win2008r2sp1)(PORT=1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)

SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=dg4msql)
(ORACLE_HOME=C:\app\tg\Administrator\product\12.2.0\tghome_1)
(PROGRAM=dg4msql)
)
)

#ADR_BASE_LISTENER = C:\app\tg\Administrator\product\12.2.0\tghome_1

#CONNECT_TIMEOUT_LISTENER = 0

tnsname.ora

# This is a sample tnsnames.ora that contains the NET8 parameters that are
# needed to connect to an HS Agent

dg4msql =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=Win2008r2sp1)(PORT=1521))
(CONNECT_DATA=(SID=dg4msql))
(HS=OK)
)

5. 修改完配置文件,重启lsnrctl 命令为:

cmd-> lsnrctl
>stop
>start
在cmd命令行中
tnsping dg4msql
验证提示.
已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=Win2008r2sp1)(PORT=)) (C
ONNECT_DATA=(SID=dg4msql)) (HS=OK))
OK ( 毫秒)

6. 在oracle服务器中创建配置

create database link zhaobsh connect to "lcm8719999" identified by "Test6530" using '(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.24.101.105)(PORT = ))
(CONNECT_DATA =
(SID = dg4msql)
)
(HS=OK)
)'

7. 查询验证

  select * from zwkmye2007@zhaobsh

发现的主要事项:

1. initdg4msql.ora 必须是目录:

C:\app\tg\Administrator\product\12.2.\tghome_1\dg4msql\admin

下的, 而且 必须按照格式来. 这个链接方式可以 随便改 ,不需要重启lsnrctl 即可. 重新创建dblink 自动刷新 应该是走的一次磁盘io

2. dg 目录下的network 必须存在,并且有静态注册的 dg4msql 的sid 才可以,不然会报错, 放到刚才的那个目录下的文件没有用. 必须放在这个目录下

C:\app\tg\Administrator\product\12.2.\tghome_1\network\admin

3. 我发现11g和12c的 gateways 是可以互相联通的 不受版本限制. 但是某些表字段表特殊时会报错,如图示

Oracle Gateways 方式创建dblink 连接 SQLSERVER数据库-LMLPHP

05-08 08:22