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


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)

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

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

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