从 Oracle 发布服务器创建的发布的方式与创建典型快照和事务发布的方式相同,但在从 Oracle 发布服务器创建发布之前,必须完成以下步骤(本主题中详细介绍了步骤 1、3 和 4 步)。
使用提供的脚本在 Oracle 数据库中创建复制管理用户。
对于要发布的表,请直接向在步骤一中创建的 Oracle 管理用户授予对其中每个表(而不是通过角色)的 SELECT 权限。
在 Microsoft SQL Server 分发服务器上安装 Oracle 客户端软件和 OLE DB 提供程序,然后停止并重启 SQL Server 实例。 如果分发服务器在 64 位平台上运行,则必须使用 64 位版本的 Oracle OLE DB 提供程序。
在 SQL Server 分发服务器上将 Oracle 数据库配置为发布服务器。
有关可从 Oracle 数据库复制的对象列表,请参阅 Oracle 发布服务器的设计注意事项和限制。
注释
必须是 sysadmin 固定服务器角色的成员才能启用发布者或分发者,以及创建 Oracle 发布或从 Oracle 发布创建订阅。
在 Oracle 数据库中创建复制管理用户架构
复制代理连接到 Oracle 数据库,并在您必须创建的用户架构上下文中执行操作。 必须向此架构授予许多权限,下一部分将列出这些权限。 此架构拥有 Oracle 发布服务器上由 Microsoft SQL Server 复制过程创建的所有对象,但公共同义词 MSSQLSERVERDISTRIBUTOR 除外。 有关在 Oracle 数据库中创建的对象的详细信息,请参阅 在 Oracle 发布服务器上创建的对象。
注释
删除 MSSQLSERVERDISTRIBUTOR 公共同义词,并使用 CASCADE 选项配置的 Oracle 复制用户从 Oracle 发布服务器中删除所有复制对象。
提供了一个示例脚本来帮助设置 Oracle 复制用户架构。 安装 SQL Server 后,以下目录中提供了该脚本: <drive>:\\Program Files\Microsoft SQL Server\<InstanceName>\MSSQL\Install\oracleadmin.sql。 其也包含在主题授予 Oracle 权限的脚本中。
使用具有 DBA 权限的帐户连接到 Oracle 数据库并执行脚本。 此脚本提示复制管理用户架构的用户和密码,以及创建对象的默认表空间(表空间必须已存在于 Oracle 数据库中)。 有关为对象指定其他表空间的信息,请参阅 “管理 Oracle 表空间”。 选择任何用户名和强密码,但请记下这两个密码,因为稍后在将 Oracle 数据库配置为发布服务器时,系统会提示你输入此信息。 建议将架构仅用于复制所需的对象;不要创建要在此架构中发布的表。
手动创建用户架构
如果手动创建复制管理用户架构,则必须直接或通过数据库角色授予架构以下权限。
创建公共同义词和删除公共同义词
创建流程
创建序列
创建会话
还必须直接向用户授予以下权限(而不是通过角色):
创建任意触发器。 这仅适用于快照复制和事务复制。
创建表
创建视图
在 SQL Server 分发服务器上安装和配置 Oracle 客户端网络软件
必须在 SQL Server 分发服务器上安装和配置 Oracle 客户端网络软件和 Oracle OLE DB 提供程序,以便分发服务器能够连接到 Oracle 发布服务器。 安装软件后,在安装软件的文件夹上设置适当的权限,然后停止并重启 SQL Server 实例,以确保更新所有设置(稍后将在“设置目录权限”部分中介绍权限)。
注释
Oracle 客户端网络软件必须是可用的最新版本。 Oracle 建议用户安装最新版本的客户端软件。 因此,客户端软件通常比数据库软件更新。
安装和配置客户端网络软件的最直接方法是在 Oracle 客户端磁盘上使用 Oracle 通用安装程序和 Net 配置助手。
在 Oracle 通用安装程序中,你将提供以下信息:
| 信息 | DESCRIPTION |
|---|---|
| Oracle 主页 | 这是 Oracle 软件的安装目录的路径。 接受默认值(C:\oracle\ora90 或类似)或输入其他路径。 有关 Oracle 主页的详细信息,请参阅本主题后面的“Oracle 主页注意事项”部分。 |
| Oracle 主页名称 | Oracle 主路径的别名。 |
| 安装类型 | 在 Oracle 10g 中,选择 “管理员 安装”选项。 |
Oracle 通用安装程序完成后,使用 Net 配置助手配置网络连接。 必须提供四条信息来配置网络连接。 Oracle 数据库管理员在设置数据库和侦听器时配置网络配置,如果你没有该配置,则应能够提供此信息。 您必须执行以下操作:
| 行动 | DESCRIPTION |
|---|---|
| 标识数据库 | 有两种方法用于标识数据库。 第一种方法使用 Oracle 系统标识符(SID),可在每个 Oracle 版本中使用。 第二种方法使用从 Oracle 版本 8.0 开始可用的服务名称。 这两种方法都使用在创建数据库时配置的值,并且重要的是,客户端网络配置应使用管理员在为数据库配置侦听器时使用的相同命名方法。 |
| 标识数据库的网络别名 | 必须指定用于访问 Oracle 数据库的网络别名。 在 SQL Server 分发服务器上将 Oracle 数据库标识为发布服务器时,还可以提供此别名。 网络别名实质上是指向在创建数据库时配置的远程 SID 或服务名称的指针。它在不同的 Oracle 版本和产品中被称为多个名称,包括 Net Service Name 和 TNS 别名。 登录时,SQL*Plus 会提示输入此别名作为“主机字符串”参数。 |
| 选择网络协议 | 选择要支持的相应协议。 大多数应用程序都使用 TCP。 |
| 指定主机信息以标识数据库侦听器 | 主机是运行 Oracle 侦听器的计算机的名称或 DNS 别名,该计算机通常是数据库所在的同一台计算机。 对于某些协议,必须提供其他信息。 例如,如果选择 TCP,则必须提供侦听器侦听目标数据库的连接请求的端口。 默认 TCP 配置使用端口 1521。 |
设置目录权限
必须为运行发布服务器上 SQL Server 服务的帐户授予对安装 Oracle 客户端网络软件的目录(及其所有子目录)的读取和执行权限。
测试 SQL Server 分发服务器与 Oracle 发布服务器之间的连接
在 Net Configuration Assistant 的末尾附近,可能会有一个选项来测试与 Oracle 发布服务器的连接。 在测试连接之前,请确保 Oracle 数据库实例处于联机状态,并且 Oracle 侦听器正在运行。 如果测试失败,请联系负责要连接到的数据库的 Oracle DBA。
成功连接到 Oracle 发布服务器后,尝试使用与创建的复制管理用户架构关联的帐户和密码登录到数据库。 在 SQL Server 服务使用的同一 Windows 帐户下运行时,必须执行以下作:
单击 开始,然后单击 运行。
键入
cmd并单击“ 确定”。在命令提示符下,键入:
sqlplus <UserSchemaLogin>/<UserSchemaPassword>@<NetServiceName>例如:
sqlplus replication/$tr0ngPasswerd@Oracle90Server如果网络配置成功,登录将成功,你将看到提示
SQL。如果在连接到 Oracle 数据库时遇到问题,请参阅 Oracle 发布服务器故障排除中的“SQL Server 分发服务器无法连接到 Oracle 数据库实例”部分。
Oracle 主页注意事项
Oracle 支持应用程序二进制文件的并排安装,但在任意时间复制只能使用一个二进制文件集。 每个二进制文件集都与 Oracle Home 相关联;二进制文件位于目录 %ORACLE_HOME%\bin 中。 在复制与 Oracle 发布服务器建立连接时,必须确保使用正确的二进制文件集(特别是最新版本的客户端网络软件)。
使用 SQL Server 服务和 SQL Server 代理服务使用的帐户登录到分发服务器,并设置相应的环境变量。 应将 %ORACLE_HOME% 变量设置为引用安装客户端网络软件时指定的安装点。 %PATH% 必须包含 %ORACLE_HOME% \bin 目录作为遇到的第一个 Oracle 条目。 有关设置环境变量的信息,请参阅 Windows 文档。
在 SQL Server 分发服务器上将 Oracle 数据库配置为发布服务器
Oracle 发布服务器始终使用远程分发服务器;必须将 SQL Server 的实例配置为充当 Oracle 发布服务器的分发服务器(Oracle 发布服务器只能使用一个分发服务器,但单个分发服务器可以为多个 Oracle 发布服务器提供服务)。 配置分发服务器后,通过 SQL Server Management Studio、Transact-SQL 或复制管理对象(RMO)在 SQL Server 分发服务器上将 Oracle 数据库实例标识为发布服务器。 有关配置分发服务器的详细信息,请参阅“配置分发”。
注释
Oracle 发布服务器不能与其 SQL Server 分发服务器同名,也不能与使用同一分发服务器的任何 SQL Server 发布服务器同名。
将 Oracle 数据库标识为发布服务器时,必须选择 Oracle 发布选项:“完成”或“Oracle 网关”。 标识发布服务器后,如果不删除并重新配置发布服务器,则无法更改此选项。 “完整”选项旨在为快照和事务发布提供 Oracle 发布支持的完整功能集。 Oracle 网关选项提供了特定的设计优化,以提高在系统之间复制作为网关时的性能。
在 SQL Server 分发服务器上标识 Oracle 发布服务器后,复制会创建与 Oracle 数据库的 TNS 服务名称相同的链接服务器。 此链接服务器仅供复制使用。 如果需要通过链接服务器连接连接到 Oracle 发布服务器,请创建另一个 TNS 服务名称,然后在调用 sp_addlinkedserver (Transact-SQL) 时使用此名称。
若要配置 Oracle 发布服务器并创建发布,请参阅 从 Oracle 数据库创建发布。
另请参阅
Oracle 发布服务器的管理注意事项
Oracle 发布服务器的数据类型映射
Oracle 发布的术语表
Oracle 发布概述