sp_addmergepushsubscription_agent (Transact-SQL)

Применимо к: даSQL Server (все поддерживаемые версии) ДаУправляемый экземпляр SQL Azure

Вводит новое задание агента для подготовки расписания синхронизации принудительной подписки для публикации слиянием. Эта хранимая процедура выполняется на издателе в базе данных публикации.

Важно!

Если издатель настраивается с удаленным распространителем, то значения, передаваемые для всех аргументов, включая job_login и job_password, передаются распространителю в формате обычного (незашифрованного) текста. Прежде чем выполнять эту хранимую процедуру, необходимо зашифровать соединение между издателем и его удаленным распространителем. Дополнительные сведения см. в разделе Включение шифрования соединений в компоненте Database Engine (диспетчер конфигураций SQL Server).

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

  
sp_addmergepushsubscription_agent [ @publication =] 'publication'   
    [ , [ @subscriber = ] 'subscriber' ]   
    [ , [ @subscriber_db = ] 'subscriber_db' ]   
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ]   
    [ , [ @subscriber_login = ] 'subscriber_login' ]   
    [ , [ @subscriber_password = ] 'subscriber_password' ]   
    [ , [ @publisher_security_mode = ] publisher_security_mode ]   
    [ , [ @publisher_login = ] 'publisher_login' ]   
    [ , [ @publisher_password = ] 'publisher_password' ]   
    [ , [ @job_login = ] 'job_login' ]   
    [ , [ @job_password = ] 'job_password' ]   
    [ , [ @job_name = ] 'job_name' ]   
    [ , [ @frequency_type = ] frequency_type ]   
    [ , [ @frequency_interval = ] frequency_interval ]   
    [ , [ @frequency_relative_interval = ] frequency_relative_interval ]   
    [ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]   
    [ , [ @frequency_subday = ] frequency_subday ]   
    [ , [ @frequency_subday_interval = ] frequency_subday_interval ]   
    [ , [ @active_start_time_of_day = ] active_start_time_of_day ]   
    [ , [ @active_end_time_of_day = ] active_end_time_of_day ]   
    [ , [ @active_start_date = ] active_start_date ]   
    [ , [ @active_end_date = ] active_end_date ]   
    [ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ]   

Аргументы

[ @publication = ] 'publication' Имя публикации. Аргумент publication имеет тип sysname и не имеет значения по умолчанию.

[ @subscriber = ] 'subscriber' Имя подписчика. Аргумент Subscriber имеет тип sysname и значение по умолчанию NULL.

[ @subscriber_db = ] 'subscriber_db' Имя базы данных подписки. Аргумент subscriber_db имеет тип sysname и значение по умолчанию NULL.

[ @subscriber_security_mode = ] subscriber_security_mode Режим безопасности, используемый при соединении с подписчиком при синхронизации. subscriber_security_mode имеет тип int и значение по умолчанию 1. Если значение равно 0, то задает SQL Server проверку подлинности. если значение равно 1, указывает проверку подлинности Windows.

[ @subscriber_login = ] 'subscriber_login' Имя входа подписчика, используемое при соединении с подписчиком при синхронизации. subscriber_login является обязательным, если subscriber_security_mode имеет значение 0. Аргумент subscriber_login имеет тип sysname и значение по умолчанию NULL.

[ @subscriber_password = ] 'subscriber_password' Пароль подписчика для SQL Server проверки подлинности. subscriber_password является обязательным, если subscriber_security_mode имеет значение 0. Аргумент subscriber_password имеет тип sysname и значение по умолчанию NULL. Если пароль подписчика используется, он автоматически шифруется.

Важно!

По возможности предлагайте пользователям вводить учетные данные системы безопасности во время выполнения приложения. В случае необходимости хранения учетных данных в файле скрипта этот файл следует защищать во избежание несанкционированного доступа.

[ @publisher_security_mode = ] publisher_security_modeрежим безопасности, используемый при подключении к Publisher при синхронизации. publisher_security_mode имеет тип int и значение по умолчанию 1. Если значение равно 0, то задает SQL Server проверку подлинности. если значение равно 1, указывает проверку подлинности Windows.

[ @publisher_login = ] 'publisher_login'имя входа, используемое при подключении к Publisher при синхронизации. Аргумент publisher_login имеет тип sysname и значение по умолчанию NULL.

[ @publisher_password = ] 'publisher_password'Пароль, используемый при подключении к Publisher. Аргумент publisher_password имеет тип sysname и значение по умолчанию NULL.

Важно!

По возможности предлагайте пользователям вводить учетные данные системы безопасности во время выполнения приложения. В случае необходимости хранения учетных данных в файле скрипта этот файл следует защищать во избежание несанкционированного доступа.

[ @job_login = ] 'job_login'имя входа для учетной записи Windows, под которой запускается агент. job_login имеет тип nvarchar (257) и значение по умолчанию NULL. Эта учетная запись Windows всегда используется для соединений агента с распространителем и соединений с подписчиком и издателем при использовании встроенной проверки подлинности Windows.

[ @job_password = ] 'job_password'пароль учетной записи Windows, под которой запускается агент. Аргумент job_password имеет тип sysname и не имеет значения по умолчанию.

Важно!

По возможности предлагайте пользователям вводить учетные данные системы безопасности во время выполнения приложения. В случае необходимости хранения учетных данных в файле скрипта этот файл следует защищать во избежание несанкционированного доступа.

[ @job_name = ] 'job_name' Имя существующего задания агента. Аргумент job_name имеет тип sysname и значение по умолчанию NULL. Этот аргумент указывается, только если подписка будет синхронизироваться с использованием существующего задания, а не вновь созданного (выбор по умолчанию). Если вы не являетесь членом предопределенной роли сервера sysadmin , необходимо указать job_login и job_password при указании job_name.

[ @frequency_type = ] frequency_type Частота, с которой следует запланировать агент слияния. frequency_type имеет тип int и может принимать одно из следующих значений.

Значение Описание
1 Один раз.
2 По запросу
4 Ежедневно
8 Еженедельно
16 Ежемесячно
32 Ежемесячно с относительной датой
64 Автозапуск
128 Повторяющееся задание
NULL (по умолчанию)

Примечание

Указание значения 64 приводит к запуску агент слияния в непрерывном режиме. Это соответствует установке параметра -Continuous для агента. Дополнительные сведения см. в статье Replication Merge Agent.

[ @frequency_interval = ] frequency_interval Дни, в которые выполняется агент слияния. frequency_interval имеет тип int и может принимать одно из следующих значений.

Значение Описание
1 Воскресенье
2 Понедельник
3 Вторник
4 Среда
5 Четверг
6 Пятница
7 Суббота
8 День
9 По рабочим дням
10 По выходным дням
NULL (по умолчанию)

[ @frequency_relative_interval = ] frequency_relative_interval Дата агент слияния. Этот параметр используется, если frequency_type установлен в значение 32 (ежемесячное относительное расписание). frequency_relative_interval имеет тип int и может принимать одно из следующих значений.

Значение Описание
1 First
2 Второе
4 Третье
8 Четвертая
16 Последний
NULL (по умолчанию)

[ @frequency_recurrence_factor = ] frequency_recurrence_factor Коэффициент повторения, используемый frequency_type. frequency_recurrence_factor имеет тип int и значение по умолчанию NULL.

[ @frequency_subday = ] frequency_subday Частота повторного планирования в течение заданного периода. frequency_subday имеет тип int и может принимать одно из следующих значений.

Значение Описание
1 Однократно
2 Второе
4 Минута
8 Час
NULL (по умолчанию)

[ @frequency_subday_interval = ] frequency_subday_interval Интервал для frequency_subday. frequency_subday_interval имеет тип int и значение по умолчанию NULL.

[ @active_start_time_of_day = ] active_start_time_of_day Время первого запланированного агент слияния в формате ЧЧММСС. active_start_time_of_day имеет тип int и значение по умолчанию NULL.

[ @active_end_time_of_day = ] active_end_time_of_day Время суток, когда запланировать агент слияния прекращается в формате ЧЧММСС. active_end_time_of_day имеет тип int и значение по умолчанию NULL.

[ @active_start_date = ] active_start_date Дата первого запланированного запуска агент слияния в формате ГГГГММДД. active_start_date имеет тип int и значение по умолчанию NULL.

[ @active_end_date = ] active_end_date Дата прекращения расписания агент слияния в формате ГГГГММДД. active_end_date имеет тип int и значение по умолчанию NULL.

[ @enabled_for_syncmgr = ] 'enabled_for_syncmgr'указывает, можно ли синхронизировать подписку с помощью диспетчера синхронизации Windows. enabled_for_syncmgr имеет тип nvarchar (5) и значение по умолчанию false. Если значение равно false, подписка не зарегистрирована в диспетчере синхронизации. Если значение — true, подписка регистрируется в диспетчере синхронизации и может быть синхронизирована без запуска SQL Server Management Studio .

Значения кода возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Remarks

sp_addmergepushsubscription_agent используется в репликации слиянием и использует функции, аналогичные sp_addpushsubscription_agent.

Пример

-- 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 @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica'; 
SET @hostname = N'adventure-works\david8'

-- Add a push subscription to a merge publication.
USE [AdventureWorks2012];
EXEC sp_addmergesubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @subscription_type = N'push',
  @hostname = @hostname;

--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @job_login = $(Login), 
  @job_password = $(Password);
GO

Разрешения

Только члены предопределенной роли сервера sysadmin или предопределенной роли базы данных db_owner могут выполнять sp_addmergepushsubscription_agent.

См. также

Create a Push Subscription
Subscribe to Publications
sp_addmergesubscription (Transact-SQL)
sp_changemergesubscription (Transact-SQL)
sp_dropmergesubscription (Transact-SQL)
sp_helpmergesubscription (Transact-SQL)