试验环境:
OS:XP
Oracle 10.1
SQLSERVER2000
HOSTNAME:home-30b98e1e20
都使用 tcp/ip 默认端口
1. 安装 TRANSPARENT GATEWAY 选件
使用 Oracle Universal Instraller 在已安装的 ORACLE_HOME 上选择定制安装,选择 Oracle Transparent Gateways for Microsoft SQL Server,
安装完成了以后有这样一个目录 $oracle_home\tg4msql
2. 在 $oracle_hometg4msqladmin 目录下建立文件 initsql2000.ora其中内容为:
HS_FDS_CONNECT_INFO=home-30b98e1e20.test # home-30b98e1e20 为SQL服务器名
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
3. 配置 LISTENER.ORA
(SID_DESC =
(GLOBAL_DBNAME = tg4sql) # 可自己命名
(PROGRAM = tg4msql)
(SID_NAME = sql2000) # 与上一步文件名 initsql2000.ora 中的 sql2000 相同
(ORACLE_HOME = E:\oracle\product\10.1.0\Db_1)
)
4. 使用 Windows 中的“服务” 重启 Oracle LISTENER 和 DATABASE 服务
5. 配置 tnsnames.ora
sql2000 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = home-30b98e1e20)(PORT = 1521))
)
(CONNECT_DATA =
(SID = sql2000)
)
(HS = OK)
)
6. 建立 DATABASE LINK
CREATE DATABASE LINK DB_SQL CONNECT TO SA IDENTIFIED BY PASSWORD USING 'sql2000';
7. 测试
select * from t1@sql2000;
注意:
1. HS_FDS_CONNECT_INFO=home-30b98e1e20.test 中的服务名写成 localhost 或 local 在测试时会有挂起问题;
2. 使用 DBLINK 时,关于 spfile 中 GLOBAL_NAME 的设置:
如果为 ture , 请使用DBLINK的全称,可在 all_db_links 中查到;
如果为 FALSE, 不必使用全称,当出现 “ORA-02019:为找到远程数据库的连接说明”时,请使用全称,如:
select * from t1@sql2000.ORACLE.COM