实现 Oracle 连接 SQL Server
Oracle 可以透明网关实现和其它数据库的连接
=================================
测试环境:
Oracle 服务器信息
网络地址: 192.168.1.15
连接端口: 1521
安装目录: C:\oracle\ora92
SQL 服务器信息
网络地址: 192.168.1.201
数据库名: pubs
=================================
一、安装 Transparent Gateway for Windows SQL Server
安装后在$ORACLE_HOME下可以看到tg4msql目录
如果在Oracle主目录下有tg4msql文件夹,那么不需要重新安装
启动 Oracle 安装程序,安装 Transparent Gateway for Windows SQL Server,在自定义中选择安装 Oracle Transparent Gateway for Microsoft SQL Server
二、配制相关文件
1. 配置init<SID>.ora
在Oracle主目录下tg4msql\admin目录下,拷贝inittg4msql.ora并改名为init<SID>.ora。
本例的这个文件名就是 C:\oracle\ora92\tg4msql\admin\initpubs.ora
内容如下:
******************************
# This is a sample agent init file that contains the HS parameters that are
# needed for the Transparent Gateway for SQL Server
#
# HS init parameters
#
HS_FDS_CONNECT_INFO="SERVER=192.168.1.201;DATABASE=pubs"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
******************************
上面指定了要连接的 SQL Server 的地址和数据库名称
2. 配置Oracle主目录下network\admin目录下的listener.ora
本例的这个文件名就是 C:\oracle\ora92\network\admin\listener.ora
内容如下:
******************************
# LISTENER.ORA Network Configuration File: C:\oracle\ora92\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.15)(PORT = 1521))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC=
(SID_NAME=pubs)
(ORACLE_HOME=c:\Oracle\Ora92)
(PROGRAM=tg4msql)
)
)
******************************
3. 配置 Oracle 主目录下 network\admin 目录下的 tnsnames.ora
本例的这个文件名就是 C:\oracle\ora92\network\admin\tnsnames.ora
追加下面内容:
******************************
pubs =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.15)(PORT = 1521))
)
(CONNECT_DATA =
(SID = pubs)
)
(HS = OK)
)
******************************
注意:这里是追加内容,不是修改内容。
4. 重启监听器
控制面板 - 管理工具 - 服务,找到 OracleOraHome92TNSListener 服务,重启动。
三、在 Oracle 上创建数据库连接
1. 运行 sqlplus
运行 CMD,输入“sqlplus /nolog”,进入 sqlplus 控制台
2. 用 sysdba 的身份登陆
SQL> conn sys/sys as sysdba;
这里的 sys 用户的密码也为 sys
3. 修改参数
SQL> alter system set global_names = false;
不要求建立的数据库链接和目的数据库的全局名称一致
4. 创建数据库连接
SQL> create database link pubs connect to sa identified by sa using 'pubs';
connect to 后面是要连接的 Sql Server 数据库用户名
identified by 后面是要连接的 Sql Server 数据库密码
using 后面是SID,就是在 C:\oracle\ora92\network\admin\tnsnames.ora 文件中加的名称
四、测试数据库连接
SQL> select * from jobs@pubs;
能看输出表示连接正常
注意:指定查询字段时,字段名要用双引号,如下
SQL> select "job_id" from jobs@pubs;
tnsping pubs



