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


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)

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

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

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