为 Oracle 发布服务器配置事务集作业(复制 Transact-SQL 编程)

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

启用事务集作业

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

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

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

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

配置事务集作业

  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 发布服务器的名称,将 值 xactsetjob 指定为 @propertyname,将 值 disabled 指定为 @propertyvalue

示例

以下示例将启用 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

另请参阅

Oracle 发布服务器的性能优化
Replication System Stored Procedures Concepts