ORACLE跨服务器访问数据库
- 格式:ppt
- 大小:50.00 KB
- 文档页数:13


Oracle中使用透明网关链接到Sqlserver
在最近项目中需要从Oracle中访问SQL Server数据库, 自然想到了透明网关. 因为Oracle数据库是Linux上的, 而Linux上的Oracle9i不包括连接到SQL Server的透明网关.就在一台单独的Windows服务器上安装了透明网关用做Oracle访问SQL Server的桥梁.
环境如下:
Oracle Database Server:Linux + oracle 9.2.0.4 IP:10.194.129.197
Transparent Gateway:Windows 2003 server IP: 10.194.129.225
MS SQL Server:Windows 2003 server + SQL Server 2005 IP: 10.194.129.225
1、 Transparent Gateway for SQL Server安装
从Oracle 9i数据库安装光盘setup.exe安装,选择安装客户端
安装类型选择:管理员
安装完客户端后,重新运行setup.exe,安装产品选择Oracle 9i Database 9.2.0.1.0, 安装类型选择"自定义",安装组件选择Oracle Net Services和Oracle Transparent Gateways, 并在此项下选择Oracle Transparent Gateway for Microsoft SQL Server, 安装过程中可以不设置连接到SQL Server的信息.如下图所示:
以下的IP地址及数据库以实际环境为准 2、 编辑%ORACLE_HOME%\tg4msql\admin\init%ORACLE_SID%.ora, 该文件包含了TG for
SQL Server的配置信息, 其中%ORACLE_SID%是给TG的"SID", 默认为tg4msql. 修改文件中的行
SQLServer链接服务器访问Oracle
一、 测试环境说明
操作系统:Windows Server 2008 R2 64位
数据库版本:SQLServer 2008 R2 64位和Oracle Database 11g 第 2 版 (11.2.0.1.0)
及相应的客户端版本:Oracle 11g client 64位。
其中Oracle Database 11g 安装在一台电脑,另一台安装 SQL Server 2008 R2 64位和Oracle 11g client 64位。
二、 创建SQL Server链接服务
首先SQL Server链接Oracle可以通过两个访问接口:“MSDAORA”和“OraOLEDB.Oracle”。
默认状态下,SQL Server 2008 R2 64位安装后在服务器对象 ->链接服务器 ->访问接口下并没有“MSDAORA”和“OraOLEDB.Oracle”接口。
安装“MSDAORA”访问接口需要下载Oracle Data Access Components(ODAC)for Windows的相应64位版本。安装后重新启动服务器即可以看到“MSDAORA”接口。因为此接口不支持分布式事务,因此不做过多的描述。
安装“OraOLEDB.Oracle”访问接口需要下载Oracle 11g client 64位。具体安装过程如下:
1) 下载后解压zip文件到文件夹,点击setup.exe,弹出如下界面:
直接点[是]。 2) 弹出如下界面:
选择[定制]选项。点击下一步,弹出如下界面:
直接点击下一步,弹出如下界面: 选择软件安装的位置后点击下一步,弹出如下界面:
在可用产品组件窗口点击[全选]后直接点击下一步,弹出如下窗口:
在调度程序代理主机名中输入本机的主机名。点击下一步,弹出如下界面: 在Oracle Services for MTS 中配置端口,这里直接使用默认端口,点击下一步:
SQL Server 是微软公司推出的一种关系型数据库管理系统(RDBMS),而 Oracle 则是甲骨文公司的一种商业关系型数据库管理系统。在实际应用中,有时候需要进行跨库查询,即在 SQL Server
中查询 Oracle 数据库的数据。本文将介绍如何编写 SQL 语句来实现跨库查询。
1. 连接 Oracle 数据库
在 SQL Server 中进行跨库查询,首先需要建立与 Oracle 数据库的连接。可以通过使用“信息服务器”功能来实现这一步骤。在 SQL
Server Management Studio 中,找到“服务器对象”下的“信息服务器”,右键单击后选择“新建信息服务器”,在弹出的对话框中选择“Oracle Provider for OLE DB”,并填写相应的连接信息,如
Oracle 数据库的位置区域、用户名、密码等。注意要确保 SQL
Server 和 Oracle 数据库之间网络畅通,并且有相应的权限。
2. 执行跨库查询
连接建立完成后,就可以在 SQL Server 中编写跨库查询的 SQL 语句了。在执行查询时,可以使用四部分限定名来指定 Oracle 数据库中的表。如果在 Oracle 数据库中有一个叫做“EMPLOYEE”的表,可以通过以下方式在 SQL Server 中进行查询:
```sql
SELECT * FROM
OracleServerName.OracleDatabaseName.dbo.EMPLOYEE
```
其中,“OracleServerName”是在连接服务器时设置的名称,“OracleDatabaseName”是 Oracle 数据库的名称,“EMPLOYEE”是要查询的表名。
3. 使用 OPENQUERY 函数
另一种执行跨库查询的方法是使用 SQL Server 中的 OPENQUERY 函数。这个函数可以在 SQL Server 中直接执行一个在远程服务器上的查询。使用 OPENQUERY 函数可以更加灵活地控制跨库查询的过程。以下是一个使用 OPENQUERY 函数的示例:
SQL SERVER 2005 通过链接服务器 访问 ORACLE 的快速设定方法
1)在SQL_SERVER 2005服务器上安装Oracle 10g的客户端。 假设安装到D:\oracle\ 目录。如果D:是NTFS分区,需要将ORACLE安装后的目录设为所使用的用户有权可运行、可添加、可删除。
2)配置D:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora 文件
(手动配置)
ORCL_192.168.0.163=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.163)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orl)//此处的orl是HIS给的database
)
)
(NetManage工具自动生成的配置)
ORCL_192.168.0.163 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.163)(PORT = 1521))
)
(CONNECT_DATA =
(SID = orl)//此处的orl是HIS给的database
(SERVER = DEDICATED)
)
)
3)在DOS模式下运行以下命令以便确认ORACLE客户端安装无误。
sqlplus user/password@ ORCL_192.168.0.163
4)打开开始-控制面板-服务,确认Distributed Transaction Coordinator服务已启动。
5)打开SQL SERVER Management Studio,实例名称(ORCL_192.168.0.163)-服务器对象(右键)-新建连接服务器。