Поделиться через


sp_addmergepushsubscription_agent (Transact-SQL)

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

Примечание по безопасностиПримечание по безопасности

Если издатель настраивается с удаленным распространителем, то значения, передаваемые для всех аргументов, включая job_login и job_password, передаются распространителю в формате обычного (незашифрованного) текста. Прежде чем выполнять эту хранимую процедуру, необходимо зашифровать соединение между издателем и его удаленным распространителем. Дополнительные сведения см. в разделе Включение шифрования соединений в ядре СУБД (диспетчер конфигурации 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_security_mode имеет тип int и значение по умолчанию 1. Значение 0 указывает проверку подлинности SQL Server. Значение 1 указывает, что используется проверка подлинности Windows.

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

  • [ @publisher_password = ] 'publisher_password'
    Пароль, используемый при соединении с издателем. Аргумент 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 для агента. Дополнительные сведения см. в разделе Агент слияния репликации.

  • [ @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

    Первый

    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 (неуспешное завершение)

Замечания

Хранимая процедура 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.

См. также

Справочник

sp_addmergesubscription (Transact-SQL)

sp_changemergesubscription (Transact-SQL)

sp_dropmergesubscription (Transact-SQL)

sp_helpmergesubscription (Transact-SQL)

Основные понятия

Создание принудительной подписки

Подписка на публикации