sp_addpullsubscription_agent (Transact-SQL)

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

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

Синтаксис

sp_addpullsubscription_agent [ @publisher = ] 'publisher'
    [ , [ @publisher_db = ] 'publisher_db' ]
        , [ @publication = ] 'publication'
    [ , [ @subscriber = ] 'subscriber' ]
    [ , [ @subscriber_db = ] 'subscriber_db' ]
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ]
    [ , [ @subscriber_login = ] 'subscriber_login' ]
    [ , [ @subscriber_password = ] 'subscriber_password' ]
    [ , [ @distributor = ] 'distributor' ]
    [ , [ @distribution_db = ] 'distribution_db' ]
    [ , [ @distributor_security_mode = ] distributor_security_mode ]
    [ , [ @distributor_login = ] 'distributor_login' ]
    [ , [ @distributor_password = ] 'distributor_password' ]
    [ , [ @optional_command_line = ] 'optional_command_line' ]
    [ , [ @frequency_type = ] frequency_type ]
    [ , [ @frequency_interval = ] frequency_interval ]
    [ , [ @frequency_relative_interval = ] frequency_relative_interval ]
    [ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
    [ , [ @frequency_subda y= ] 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 ]
    [ , [ @distribution_jobid = ] distribution_jobid OUTPUT ]
    [ , [ @encrypted_distributor_password = ] encrypted_distributor_password ]
    [ , [ @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' ]
    [ , [ @publication_type = ] publication_type ]
    [ , [ @dts_package_name = ] 'dts_package_name' ]
    [ , [ @dts_package_password = ] 'dts_package_password' ]
    [ , [ @dts_package_location = ] 'dts_package_location' ]
    [ , [ @reserved = ] 'reserved' ]
    [ , [ @offloadagent = ] 'remote_agent_activation' ]
    [ , [ @offloadserver = ] 'remote_agent_server_name']
    [ , [ @job_name = ] 'job_name' ]
    [ , [ @job_login = ] 'job_login' ] 
    [ , [ @job_password = ] 'job_password' ] 

Аргументы

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

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

  • [ @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, и значение по умолчанию NULL. Значение 0 указывает проверку подлинности SQL Server. Значение 1 указывает проверку подлинности Windows.

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

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

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

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

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

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

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

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

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

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

  • [ @distributor_security_mode=] distributor_security_mode
    Режим безопасности, используемый для подключения к распространителю при синхронизации. Аргумент distributor_security_mode имеет тип int и значение по умолчанию 1. Значение 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.

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

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

  • [ @optional_command_line=] 'optional_command_line'
    Необязательная командная строка, поддерживаемая агентом распространителя. Например, -DefinitionFile C:\Distdef.txt или -CommitBatchSize 10. Аргумент optional_command_line имеет тип nvarchar(4000) и значение по умолчанию, соответствующее пустой строке.

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

    Значение

    Описание

    1

    Однократно

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

    По запросу

    4

    Ежедневно

    8

    Еженедельно

    16

    Ежемесячно

    32

    Ежемесячно с относительной датой

    64

    Автозапуск

    128

    Повторяющееся задание

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

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

  • [ @frequency_interval=] frequency_interval
    Значение, которое применяется к частоте, задаваемой аргументом frequency_type. Аргумент frequency_interval имеет тип int и значение по умолчанию 1.

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

    Значение

    Описание

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

    Первый

    2

    Вторая

    4

    Третий

    8

    Четвертый

    16

    Последний

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

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

    Значение

    Описание

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

    Однократно

    2

    Секунда

    4

    Минута

    8

    Час

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

  • [ @active_start_time_of_day=] active_start_time_of_day
    Время суток, на которое запланирован первый запуск агента распространителя, в формате ЧЧММСС. Аргумент active_start_time_of_day имеет тип int и значение по умолчанию 0.

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

  • [ @active_start_date=] active_start_date
    Дата, когда запланирован первый запуск агента распространителя, в формате ГГГГММДД. Аргумент active_start_date имеет тип int и значение по умолчанию 0.

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

  • [ @distribution_jobid =] distribution_jobidOUTPUT
    Идентификатор задания агента распространителя для этого задания. Аргумент distribution_jobid имеет тип binary(16), значение по умолчанию NULL и является параметром OUTPUT.

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

  • [ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
    Определяет, может ли быть подписка синхронизирована посредством диспетчера синхронизации Майкрософт. Аргумент 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.

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

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

  • [ @publication_type= ] publication_type
    Задает тип репликации для публикации. Аргумент publication_type имеет тип tinyint и значение по умолчанию 0. При значении 0 публикация является публикацией транзакций. При значении 1 публикация является публикацией моментальных снимков. При значении 2 публикация является публикацией слияния.

  • [ @dts_package_name= ] 'dts_package_name'
    Указывает имя пакета DTS. Аргумент dts_package_name имеет тип sysname и значение по умолчанию NULL. Например, для задания пакета DTSPub_Package параметр должен быть равен @dts\_package\_name = N'DTSPub_Package'.

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

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

    Если указан аргумент dts_package_name, необходимо ввести пароль.

  • [ @dts_package_location= ] 'dts_package_location'
    Указывает местоположение пакета. Аргумент dts_package_location имеет тип nvarchar(12) и значение по умолчанию subscriber. Местом хранения пакета может быть распространитель (distributor) или подписчик (subscriber).

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

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

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

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

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

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

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

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

Замечания

Процедура sp_addpullsubscription_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;
SET @publication = N'AdvWorksProductTran';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks2012';

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

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

Разрешения

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

См. также

Справочник

sp_addpullsubscription (Transact-SQL)

sp_change_subscription_properties (Transact-SQL)

sp_droppullsubscription (Transact-SQL)

sp_helppullsubscription (Transact-SQL)

sp_helpsubscription_properties (Transact-SQL)

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

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

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