配置 Oracle 发布服务器
Oracle 发布服务器的发布的创建方法与典型快照和事务发布的创建方法相同,但在创建 Oracle 发布服务器的发布之前,必须先完成下列步骤(本主题详细介绍步骤一、步骤三和步骤四):
使用提供的脚本在 Oracle 数据库中创建复制管理用户。
对于将发布的表,直接(而不是通过角色)将对每个表的 SELECT 权限授予步骤一创建的 Oracle 管理用户。
在 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 数据库配置为发布服务器时会提示您输入此信息。建议只将此架构用于复制所需的对象,而不要在此架构下创建要发布的表。
手动创建用户架构
如果手动创建复制管理用户架构,必须通过数据库角色或直接为此架构授予下列权限。
CREATE PUBLIC SYNONYM 和 DROP PUBLIC SYNONYM
CREATE PROCEDURE
CREATE SEQUENCE
CREATE SESSION
还必须直接为用户授予下列权限(不是通过角色):
CREATE ANY TRIGGER。这仅对快照复制和事务复制是必需的。
CREATE TABLE
CREATE VIEW
在 SQL Server 分发服务器上安装和配置 Oracle 客户端网络软件
必须在 SQL Server 分发服务器上安装和配置 Oracle 客户端网络软件和 Oracle OLE DB 访问接口,这样分发服务器才能连接到 Oracle 发布服务器。安装软件后,对安装软件的文件夹设置适当的权限,然后重新启动 SQL Server 实例以确保更新所有设置(后面的“设置目录权限”部分对权限进行了介绍)。
注意 |
---|
Oracle 客户端网络软件必须是可以获得的最新版本。Oracle 建议用户安装最新版本的客户端软件。因此,客户端软件的版本通常比数据库软件更高。 |
安装和配置客户端网络软件的最直接的方法是使用 Oracle 客户端磁盘上的 Oracle Universal Installer 和 Net Configuration Assistant。
在 Oracle Universal Installer 中,您需要提供以下信息:
信息 |
说明 |
---|---|
Oracle 主目录 |
这是 Oracle 软件的安装目录的路径。接受默认路径(C:\oracle\ora90 或类似路径),或输入另一个路径。有关 Oracle 主目录的详细信息,请参阅本主题后面的“Oracle 主目录注意事项”部分。 |
Oracle 主目录名称 |
Oracle 主目录路径的别名。 |
安装类型 |
在 Oracle 10g 中,选择 Administrator 安装选项。 |
完成 Oracle Universal Installer 之后,使用 Net Configuration Assistant 配置网络连接。必须提供四部分信息以配置网络连接。在设置数据库和侦听器时,Oracle 数据库管理员将配置网络。如果您没有此信息,应由数据库管理员提供此信息。必须执行以下操作:
操作 |
说明 |
---|---|
标识数据库 |
标识数据库的方法有两种。第一种方法是使用 Oracle 系统标识符 (SID),该方法在所有 Oracle 版本中均可用。第二种方法是使用服务名称,该名称从 Oracle 8.0 版本开始才可用。这两种方法都使用一个在创建数据库时所配置的值,并且要注意,客户端网络配置所使用的命名方法要与管理员在配置数据库的侦听器时使用的命名方法相同。 |
标识数据库的网络别名 |
必须指定网络别名,该别名将用来访问 Oracle 数据库。在 SQL Server 分发服务器上将 Oracle 数据库标识为发布服务器时,也要提供此别名。实际上,网络别名是指向在创建数据库时所配置的远程 SID 或服务名称的指针。在不同的 Oracle 版本和产品中存在多种引用名称,包括 Net 服务名称和 TNS 别名。在登录时,SQL*Plus 将提示您输入此别名来作为“Host String”参数。 |
选择网络协议 |
选择要支持的相应协议。大多数应用程序使用 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 主目录关联。二进制文件位于 %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 Gateway 选项提供特定的设计优化,以提高当复制作为系统间的网关时的性能。
在 SQL Server 分发服务器上标识 Oracle 发布服务器后,复制创建一个链接服务器,其名称与 Oracle 数据库的 TNS 服务名相同。此链接服务器只能由复制使用。如果需要通过链接服务器连接来连接到 Oracle 发布服务器,请创建另一个 TNS 服务名称,然后在调用 sp_addlinkedserver (Transact-SQL) 时使用该名称。
配置 Oracle 发布服务器和创建发布
SQL Server Management Studio:如何从 Oracle 数据库创建发布 (SQL Server Management Studio)
复制 Transact-SQL 编程:如何从 Oracle 数据库创建发布(复制 Transact-SQL 编程)