为 Oracle 发布服务器配置事务集作业

适用于:SQL Server

Xactset 作业是在发布服务器上运行的复制创建的 Oracle 数据库作业,用于在日志读取器代理未与发布服务器连接时创建事务集。 您可以使用复制存储过程以编程方式从分发服务器启用和配置此作业。 有关详细信息,请参阅 Performance Tuning for Oracle Publishers(Oracle 发布服务器的性能优化)。

启用事务集作业

  1. 在 Oracle 分发服务器上,将 job_queue_processes 初始化参数设置为一个足够大的值以允许 Xactset 作业运行。 有关此参数的详细信息,请参阅 Oracle 发布服务器的数据库文档。

  2. 在分发服务器上,执行 sp_publisherproperty (Transact-SQL)。 为 @publisher指定 Oracle 发布服务器的名称,将 @propertyname 的值指定为 xactsetbatching,并将 @propertyvalue 的值指定为 enabled

  3. 在分发服务器上,执行 sp_publisherproperty (Transact-SQL)。 为 @publisher指定 Oracle 发布服务器的名称,将 @propertyname 的值指定为 xactsetjobinterval,并为 @propertyvalue指定作业时间间隔(分钟)。

  4. 在分发服务器上,执行 sp_publisherproperty (Transact-SQL)。 为 @publisher指定 Oracle 发布服务器的名称,将 @propertyname 的值指定为 xactsetjob,并将 @propertyvalue 的值指定为 enabled

配置事务集作业

  1. (可选)在分发服务器上,执行 sp_publisherproperty (Transact-SQL)。 为 @publisher指定 Oracle 发布服务器的名称。 这将返回发布服务器上的 Xactset 作业的属性。

  2. 在分发服务器上,执行 sp_publisherproperty (Transact-SQL)。 为 @publisher指定 Oracle 发布服务器的名称,为 @propertyname指定要设置的 Xactset 作业属性的名称,并为 @propertyvalue指定新设置。

  3. (可选)对于每个要设置的 Xactset 作业属性重复步骤 2。 更改 xactsetjobinterval 属性后,必须重新启动 Oracle 发布服务器上的作业以使得新间隔生效。

查看事务集作业的属性

  1. 在分发服务器上,执行 sp_helpxactsetjob。 为 @publisher指定 Oracle 发布服务器的名称。

禁用事务集作业

  1. 在分发服务器上,执行 sp_publisherproperty (Transact-SQL)。 为 @publisher指定 Oracle 发布服务器的名称,将 @propertyname 的值指定为 xactsetjob,并将 @propertyvalue 的值指定为 disabled

示例

以下示例将启用 Xactset 作业并将运行间隔设置为三分钟。

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

DECLARE @publisher AS sysname;
SET @publisher = $(Publisher);

-- Enable the creation of transaction sets
-- at the Oracle Publisher.
EXEC sp_publisherproperty 
  @publisher = @publisher, 
  @propertyname = N'xactsetbatching', 
  @propertyvalue = N'enabled';

-- Set the job interval before enabling
-- the job, otherwise the job must be restarted.
EXEC sp_publisherproperty 
  @publisher = @publisher, 
  @propertyname = N'xactsetjobinterval', 
  @propertyvalue = N'3';

-- Enable the transaction set job.
EXEC sp_publisherproperty 
  @publisher = @publisher, 
  @propertyname = N'xactsetjob', 
  @propertyvalue = N'enabled';
GO