在Oracle数据库中连接异种数据源
一共有三种方法:
1、 透明网关(Transparent Gateways)
2、 通用连接(Generic Connectivity)之ODBC连接
3、 通用连接(Generic Connectivity)之OLE DB连接
现在利用第二种方法使Oracle与SQL Server直连。
1. 安装HS部件。
缺省情况下,HS服务是和Oracle 8.1.7一起安装的,你可以查询SYS用户下是否存在HS_BASE_CAPS视图,以确认HS部件是否安装,如果没有可以用相关的安装盘进行安装。
2. 配置ODBC系统连接字。
在控制面板选择“Data Sources (ODBC)”,在“系统DNS”内配置ODBC for SQL Server连接(DNS名称 eg:111)
3. 配置tnsnames.ora,它位于ORACLE_HOME\NETWORK\ADMIN。
在这个文件中增加如下代码:
hgdb(要访问的SQL SERSER 的数据库名) =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME(本机IP也可))(PORT = 1521)))
(CONNECT_DATA =
(SID = hgdb) (要访问的SQL SERSER 的数据库名,要和Listener里配置的sid相同)
(HS=OK) (打开HS服务选项 )
4. 配置listener.ora,它位于ORACLE_HOME\NETWORK\ADMIN。
在这个文件中增加如下代码:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = hgdb) (要访问的SQL SERSER 的数据库名,与tnsname名称相对应 )
(ORACLE_HOME = C:\oracle\ora90)
(PROGRAM = hsodbc)(要使用的HS服务程序,如果使用OLE DB,程序名为hsole )
5. 重新启动Oracle listener。
6. 新增位于ORACLE_HOME\HS\ADMIN内文件,这里是inithgdb。
两行代码:
HS_FDS_CONNECT_INFO = 111(ODBC 中DNS名称)
HS_FDS_TRACE_LEVEL = 0
7, 设置数据库参数global_names=false。
设置global_names=false不要求建立的数据库链接和目的数据库的全局名称一致。
global_names=true则要求, 多少有些不方便。
oracle9i和oracle8i都可以在DBA用户下用SQL命令改变global_names参数
alter system set global_names=false;
8. 用管理员用户登录SQL PLUS,创建DATABASE LINK。
create database link hgdb connect to sa identified by sa using ‘hgdb’;
9. 测试连接。如:
SQL> select * from rolldown@hgdb;
到此我们已经完成了使用ODBC连接SQL SERVER的配置工作。
一共有三种方法:
1、 透明网关(Transparent Gateways)
2、 通用连接(Generic Connectivity)之ODBC连接
3、 通用连接(Generic Connectivity)之OLE DB连接
现在利用第二种方法使Oracle与SQL Server直连。
1. 安装HS部件。
缺省情况下,HS服务是和Oracle 8.1.7一起安装的,你可以查询SYS用户下是否存在HS_BASE_CAPS视图,以确认HS部件是否安装,如果没有可以用相关的安装盘进行安装。
2. 配置ODBC系统连接字。
在控制面板选择“Data Sources (ODBC)”,在“系统DNS”内配置ODBC for SQL Server连接(DNS名称 eg:111)
3. 配置tnsnames.ora,它位于ORACLE_HOME\NETWORK\ADMIN。
在这个文件中增加如下代码:
hgdb(要访问的SQL SERSER 的数据库名) =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME(本机IP也可))(PORT = 1521)))
(CONNECT_DATA =
(SID = hgdb) (要访问的SQL SERSER 的数据库名,要和Listener里配置的sid相同)
(HS=OK) (打开HS服务选项 )
4. 配置listener.ora,它位于ORACLE_HOME\NETWORK\ADMIN。
在这个文件中增加如下代码:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = hgdb) (要访问的SQL SERSER 的数据库名,与tnsname名称相对应 )
(ORACLE_HOME = C:\oracle\ora90)
(PROGRAM = hsodbc)(要使用的HS服务程序,如果使用OLE DB,程序名为hsole )
5. 重新启动Oracle listener。
6. 新增位于ORACLE_HOME\HS\ADMIN内文件,这里是inithgdb。
两行代码:
HS_FDS_CONNECT_INFO = 111(ODBC 中DNS名称)
HS_FDS_TRACE_LEVEL = 0
7, 设置数据库参数global_names=false。
设置global_names=false不要求建立的数据库链接和目的数据库的全局名称一致。
global_names=true则要求, 多少有些不方便。
oracle9i和oracle8i都可以在DBA用户下用SQL命令改变global_names参数
alter system set global_names=false;
8. 用管理员用户登录SQL PLUS,创建DATABASE LINK。
create database link hgdb connect to sa identified by sa using ‘hgdb’;
9. 测试连接。如:
SQL> select * from rolldown@hgdb;
到此我们已经完成了使用ODBC连接SQL SERVER的配置工作。