sp_addmergepullsubscription_agent (Transact-SQL)

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

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

Синтаксис

sp_addmergepullsubscription_agent [ [ @name = ] 'name' ] 
        , [ @publisher = ] 'publisher'  
        , [ @publisher_db = ] 'publisher_db' 
        , [ @publication =] 'publication' 
    [ , [ @publisher_security_mod e= ] publisher_security_mode ] 
    [ , [ @publisher_login = ] 'publisher_login' ] 
    [ , [ @publisher_password = ] 'publisher_password' ] 
    [ , [ @publisher_encrypted_password = ] publisher_encrypted_password ] 
    [ , [ @subscriber = ] 'subscriber' ] 
    [ , [ @subscriber_db = ] 'subscriber_db' ] 
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ] 
    [ , [ @subscriber_login = ] 'subscriber_login' ] 
    [ , [ @subscriber_password= ] 'subscriber_password' ] 
    [ , [ @distributor = ] 'distributor' ] 
    [ , [ @distributor_security_mode = ] distributor_security_mode ] 
    [ , [ @distributor_login = ] 'distributor_login' ] 
    [ , [ @distributor_password = ] 'distributor_password' ] 
    [ , [ @encrypted_password = ] encrypted_password ] 
    [ , [ @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 ] 
    [ , [ @optional_command_line = ] 'optional_command_line' ] 
    [ , [ @merge_jobid = ] merge_jobid ] 
    [ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ] 
    [ , [ @ftp_address = ] 'ftp_address' ] 
    [ , [ @ftp_port = ] ftp_port ] 
    [ , [ @ftp_login = ] 'ftp_login' ] 
    [ , [ @ftp_password = ] 'ftp_password' ]  
    [ , [ @alt_snapshot_folder = ] 'alternate_snapshot_folder' ] 
    [ , [ @working_directory = ] 'working_directory' ] 
    [ , [ @use_ftp = ] 'use_ftp' ] 
    [ , [ @reserved = ] 'reserved' ] 
    [ , [ @use_interactive_resolver = ] 'use_interactive_resolver' ] 
    [ , [ @offloadagent = ] 'remote_agent_activation' ] 
    [ , [ @offloadserver = ] 'remote_agent_server_name'] 
    [ , [ @job_name = ] 'job_name' ] 
    [ , [ @dynamic_snapshot_location = ] 'dynamic_snapshot_location' ]
    [ , [ @use_web_sync = ] use_web_sync ]
        [ , [ @internet_url = ] 'internet_url' ]
    [ , [ @internet_login = ] 'internet_login' ]
        [ , [ @internet_password = ] 'internet_password' ]
    [ , [ @internet_security_mode = ] internet_security_mode ]
        [ , [ @internet_timeout = ] internet_timeout ]
    [ , [ @hostname = ] 'hostname' ]
        [ , [ @job_login = ] 'job_login' ] 
    [ , [ @job_password = ] 'job_password' ] 

Аргументы

  • [ @name = ] 'name'
    Имя агента. Аргумент name имеет тип sysname и значение по умолчанию NULL.

  • [ @publisher = ] 'publisher'
    Имя сервера издателя. Аргумент publisher имеет тип sysname и не имеет значения по умолчанию.

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

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

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

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

    По возможности используйте проверку подлинности Windows.

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

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

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

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

  • [ @publisher_encrypted_password = ]publisher_encrypted_password
    Аргумент publisher_encrypted_password больше не поддерживается. Попытка задать для этого аргумента типа bit значение 1 приведет к ошибке.

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

    ПримечаниеПримечание

    Данный аргумент является устаревшим и сохранен только для обратной совместимости скриптов. Агент слияния всегда подключается к локальному подписчику с использованием проверки подлинности 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.

    ПримечаниеПримечание

    Данный аргумент является устаревшим и сохранен только для поддержки обратной совместимости. Если для этого аргумента указано значение, оно не будет учитываться и будет возвращено предупреждающее сообщение.

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

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

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

    По возможности используйте проверку подлинности Windows.

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

  • [ @distributor_password = ] 'distributor_password'
    Пароль распространителя. Аргумент distributor_password является обязательным, если значение distributor_security_mode равно 0. Аргумент distributor_password имеет тип sysname и значение по умолчанию NULL.

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

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

  • [ @encrypted_password = ] encrypted_password
    Аргумент encrypted_password больше не поддерживается. Попытка задать для этого аргумента типа bit значение 1 приведет к ошибке.

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

  • [ @optional_command_line = ] 'optional_command_line'
    Дополнительная командная строка, предоставляемая для агента слияния. Аргумент optional_command_line имеет тип nvarchar(255) и значение по умолчанию « ». Может использоваться для передачи агенту слияния дополнительных параметров. Следующий пример иллюстрирует увеличение времени ожидания выполнения запроса по умолчанию до 600 секунд.

    @optional_command_line = N'-QueryTimeOut 600'
    
  • [ @merge_jobid = ] merge_jobid
    Выходной параметр идентификатора задания. Аргумент merge_jobid имеет тип binary(16) и значение по умолчанию NULL.

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

  • [@ftp_address =] 'ftp_address'
    Только для обратной совместимости.

  • [ @ftp_port = ] ftp_port
    Только для обратной совместимости.

  • [@ftp_login =] 'ftp_login'
    Только для обратной совместимости.

  • [@ftp_password =] 'ftp_password'
    Только для обратной совместимости.

  • [@alt_snapshot_folder =] 'alternate_snapshot_folder'
    Указывает расположение, откуда извлекаются файлы моментальных снимков. Аргумент alternate_snapshot_folder имеет тип nvarchar(255) и значение по умолчанию NULL. При значении NULL файлы моментальных снимков считываются из местонахождения по умолчанию, определяемого издателем.

  • [ @working_directory = ] 'working_directory'
    Имя рабочего каталога, используемого для временного хранения файлов данных и схем публикации при использовании для передачи файлов моментальных снимков протокола FTP. Аргумент working_directory имеет тип nvarchar(255) и значение по умолчанию NULL.

  • [ @use_ftp = ] 'use_ftp'
    Указывает на использование протокола FTP вместо обычного протокола для получения моментальных снимков. Аргумент use_ftp имеет тип nvarchar(5) и значение по умолчанию FALSE.

  • [ @reserved = ] 'reserved'
    Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

  • [ @use_interactive_resolver = ] 'use_interactive_resolver' ]
    Использует интерактивный арбитр конфликтов для всех статей, для которых применим интерактивный арбитр конфликтов. Аргумент use_interactive_resolver имеет тип nvarchar(5) и значение по умолчанию FALSE.

  • [ @offloadagent = ] 'remote_agent_activation'

    ПримечаниеПримечание

    Удаленная активация агента является устаревшей и больше не поддерживается. Этот аргумент поддерживается только для обратной совместимости скриптов. Установка аргумента remote_agent_activation в значение, отличное от false, приведет к формированию ошибки.

  • [ @offloadserver = ] 'remote_agent_server_name'

    ПримечаниеПримечание

    Удаленная активация агента является устаревшей и больше не поддерживается. Этот аргумент поддерживается только для обратной совместимости скриптов. Присвоение аргументу remote_agent_server_name любого значения, отличного от NULL, приведет к ошибке.

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

  • [ @dynamic_snapshot_location = ] 'dynamic_snapshot_location' ]
    Путь к папке, из которой будут считываться файлы моментальных снимков, при использовании моментального снимка фильтруемых данных. Аргумент dynamic_snapshot_location имеет тип nvarchar(260) и значение по умолчанию NULL. Дополнительные сведения см. в разделе Параметризованные фильтры строк.

  • [ @use_web_sync = ] use_web_sync
    Указывает, включена ли веб-синхронизация. Аргумент use_web_sync имеет тип bit и значение по умолчанию 0. Значение 1 указывает, что подписки по запросу могут синхронизироваться через Интернет по протоколу HTTP.

  • [ @internet_url = ] 'internet_url'
    Расположение прослушивателя репликации (REPLISAPI.DLL) для веб-синхронизации. Аргумент internet_url имеет тип nvarchar(260) и значение по умолчанию NULL. Значение internet_url представляет собой полный URL-адрес в формате http://server.domain.com/directory/replisapi.dll. Если сервер настроен для прослушивания порта, отличного от 80-го, необходимо также задать номер порта в формате http://server.domain.com:portnumber/directory/replisapi.dll, где portnumber указывает номер порта.

  • [ @internet_login = ] 'internet_login'
    Имя входа, используемое агентом слияния при подключении к веб-серверу, на котором размещены службы веб-синхронизации с обычной проверкой подлинности HTTP. Аргумент internet_login имеет тип sysname и значение по умолчанию NULL.

  • [ @internet_password = ] 'internet_password'
    Пароль, используемый агентом слияния при подключении к веб-серверу, на котором размещены службы веб-синхронизации, с обычной проверкой подлинности HTTP. Аргумент internet_password имеет тип nvarchar(524) и значение по умолчанию NULL.

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

    Не используйте пустые пароли. Выбирайте надежные пароли.

  • [ @internet_security_mode = ] internet_security_mode
    Способ проверки подлинности, используемый агентом слияния при подключении к веб-серверу во время веб-синхронизации по протоколу HTTPS. Аргумент internet_security_mode имеет тип int и может принимать одно из следующих значений.

    Значение

    Описание

    0

    Используется обычная проверка подлинности (проверка пароля и имени входа, входящая в протокол HTTP).

    1 (по умолчанию)

    Используется встроенная проверка подлинности Windows.

    ПримечаниеПримечание

    При веб-синхронизации рекомендуется использовать обычную проверку подлинности. Для использования веб-синхронизации необходимо подключиться к веб-серверу с использованием шифруемого соединения SSL. Дополнительные сведения см. в разделе Настройка веб-синхронизации.

  • [ @internet_timeout = ] internet_timeout
    Время в секундах до истечения срока действия запроса на веб-синхронизацию. Аргумент internet_timeout имеет тип int и значение по умолчанию 300 секунд.

  • [ @hostname = ] 'hostname'
    Заменяет значение, возвращаемое функцией HOST_NAME() при использовании этой функции в предложении WHERE параметризованного фильтра. Аргумент hostname имеет тип sysname и значение по умолчанию NULL.

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

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

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

    Не храните данные для проверки подлинности в файлах скриптов. Для обеспечения лучшей защиты имена входа и пароли должны вводиться в ходе выполнения.

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

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

Замечания

Хранимая процедура sp_addmergepullsubscription_agent используется при репликации слиянием, реализуя функциональность, подобную функциональности хранимой процедуры sp_addpullsubscription_agent.

Пример правильного указания настроек безопасности при выполнении процедуры sp_addmergepullsubscription_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".

-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks2012';
SET @hostname = N'adventure-works\david8';

-- At the subscription database, create a pull subscription 
-- to a merge publication.
USE [AdventureWorks2012Replica]
EXEC sp_addmergepullsubscription 
  @publisher = @publisher, 
  @publication = @publication, 
  @publisher_db = @publicationDB;

-- Add an agent job to synchronize the pull subscription. 
EXEC sp_addmergepullsubscription_agent 
  @publisher = @publisher, 
  @publisher_db = @publicationDB, 
  @publication = @publication, 
  @distributor = @publisher, 
  @job_login = $(Login), 
  @job_password = $(Password),
  @hostname = @hostname;
GO

Разрешения

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

См. также

Справочник

sp_addmergepullsubscription (Transact-SQL)

sp_changemergepullsubscription (Transact-SQL)

sp_dropmergepullsubscription (Transact-SQL)

sp_helpmergepullsubscription (Transact-SQL)

sp_helpsubscription_properties (Transact-SQL)

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

Создание подписки по запросу

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