试验环境:
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