Как настроить задание набора транзакции для издателя Oracle (программирование репликации на языке Transact-SQL)

Xactset – это задание базы данных Oracle, создаваемое репликацией, которая выполняется на издателе Oracle и создает наборы транзакций, когда агент чтения журнала не подключен к издателю. Включить и настроить это задание можно программным способом с распространителя с помощью хранимых процедур репликации. Дополнительные сведения см. в разделе Настройка производительности для издателей Oracle.

Включение задания наборов транзакций

  1. На издателе Oracle задайте достаточно большое значение параметра инициализации job_queue_processes, чтобы могло выполняться задание «Xactset». Дополнительные сведения об этом параметре см. в документации по базе данных для издателя Oracle.

  2. Выполните процедуру sp_publisherproperty (Transact-SQL) на распространителе. В параметре @publisher укажите имя издателя Oracle, в параметре @propertyname — значение xactsetbatching, а в параметре @propertyvalue — значение enabled.

  3. Выполните процедуру sp_publisherproperty (Transact-SQL) на распространителе. Задайте имя издателя Oracle в параметре @publisher, значение xactsetjobinterval для @propertyname и интервал запуска задания в минутах для @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) на распространителе. Задайте имя издателя Oracle в параметре @publisher, имя свойства набора транзакций в параметре @propertyname и новое значение @propertyvalue.

  3. Повторите шаг 2 для каждого устанавливаемого свойства задания набора транзакций (необязательно). Если меняется свойство xactsetjobinterval, необходимо перезапустить задание на издателе Oracle, чтобы новый интервал начал действовать.

Просмотр свойств задания набора транзакций

  • На распространителе выполните процедуру sp_helpxactsetjob. В параметре @publisher укажите имя издателя Oracle.

Отключение задания набора транзакций

  • Выполните процедуру 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