sp_addpullsubscription_agent (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 и является выходным параметром.[ @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'AdventureWorks2008R2';
-- At the subscription database, create a pull subscription
-- to a transactional publication.
USE [AdventureWorks2008R2Replica]
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.
См. также