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


sp_addpushsubscription_agent (Transact-SQL)

Изменения: 12 декабря 2006 г.

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

ms175006.security(ru-ru,SQL.90).gifПримечание безопасности.
При конфигурировании издателя с удаленным распространителем значения для всех параметров, включая job_login и job_password, передаются распространителю в формате обычного текста. Прежде чем выполнять эту хранимую процедуру, необходимо зашифровать соединение между издателем и его удаленным распространителем. Дополнительные сведения см. в разделе Шифрование соединений с SQL Server.

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

Синтаксис

sp_addpushsubscription_agent [ @publication= ] 'publication'
    [ , [ @subscriber = ] 'subscriber' ]
    [ , [ @subscriber_db = ] 'subscriber_db' ]
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ]
    [ , [ @subscriber_login = ] 'subscriber_login' ]
    [ , [ @subscriber_password = ] 'subscriber_password' ]
    [ , [ @job_login = ] 'job_login' ] 
    [ , [ @job_password = ] 'job_password' ] 
    [ , [ @job_name = ] 'job_name' ] 
    [ , [ @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 ]
    [ , [ @dts_package_name = ] 'dts_package_name' ]
    [ , [ @dts_package_password = ] 'dts_package_password' ]
    [ , [ @dts_package_location = ] 'dts_package_location' ]
    [ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ]
    [ , [ @distribution_job_name = ] 'distribution_job_name' ]
    [ , [ @publisher = ] 'publisher' ]
    [ , [ @subscriber_provider = ] 'subscriber_provider' ] 
    [ , [ @subscriber_datasrc = ] 'subscriber_datasrc' ] 
    [ , [ @subscriber_location = ] 'subscriber_location' ]
    [ , [ @subscriber_provider_string = ] 'subscriber_provider_string' ] 
    [ , [ @subscriber_catalog = ] 'subscriber_catalog' ]

Аргументы

  • [ @publication=] 'publication'
    Имя публикации. Аргумент publication имеет тип sysname и не имеет значения по умолчанию.
  • [ @subscriber=] 'subscriber'
    Имя подписчика. Аргумент subscriber имеет тип sysname и значение по умолчанию NULL.
  • [ @subscriber_db=] 'subscriber_db'
    Имя базы данных подписки. Аргумент subscriber_db имеет тип sysname и значение по умолчанию NULL. Для подписчиков, отличных от SQL Server, укажите значение (назначение по умолчанию) для subscriber_db.
  • [ @subscriber_security_mode=] subscriber_security_mode
    Режим безопасности, используемый при подключении к подписчику для синхронизации. Аргумент subscriber_security_mode имеет тип int и значение по умолчанию 1. Значение 0 указывает, что используется проверка подлинности SQL Server. 1 означает выбор проверки подлинности Windows.

    ms175006.security(ru-ru,SQL.90).gifПримечание безопасности.
    Для подписок, помещенных в очереди на обновление, используйте проверку подлинности SQL Server, применяемую при подключениях к подписчикам. Не используйте одну и ту же учетную запись при подключении к разным подписчикам. Для всех других подписок используйте проверку подлинности Windows.
  • [ @subscriber_login =] 'subscriber_login'
    Имя входа подписчика, используемое при подключении к подписчику в процессе синхронизации. Аргумент subscriber_login имеет тип sysname и значение по умолчанию NULL.
  • [ @subscriber_password=] 'subscriber_password'
    Пароль подписчика. Аргумент subscriber_password необходим, если в качестве аргумента subscriber_security_mode указано значение 0. Аргумент subscriber_password имеет тип sysname и значение по умолчанию NULL. При использовании пароль подписчика шифруется автоматически.

    ms175006.security(ru-ru,SQL.90).gifПримечание безопасности.
    Не используйте пустые пароли. Выбирайте надежные пароли. При возможности предлагать пользователю ввод учетных данных безопасности во время выполнения. В случае необходимости хранения учетных данных в файле сценария этот файл следует защищать во избежание несанкционированного доступа.
  • [ @job_login = ] 'job_login'
    Имя входа для учетной записи Windows, под которой запускается агент. Аргумент job_login имеет тип nvarchar(257) и значение по умолчанию NULL. Эта учетная запись Windows всегда используется для подключений к распространителю средствами агентов и для подключений к подписчику в случае применения встроенных средств проверки подлинности Windows.
  • [ @job_password = ] 'job_password'
    Пароль для учетной записи Windows, под которой запускается агент. Аргумент job_password имеет тип sysname и не имеет значения по умолчанию.

    ms175006.security(ru-ru,SQL.90).gifПримечание безопасности.
    По возможности предлагайте пользователям вводить учетные данные системы безопасности во время выполнения приложения. В случае необходимости хранения учетных данных в файле сценария этот файл следует защищать во избежание несанкционированного доступа.
  • [ @job_name =] 'job_name'
    Имя существующего задания агента. Аргумент job_name имеет тип sysname и значение по умолчанию NULL. Этот аргумент указывается только тогда, когда подписка будет синхронизироваться с использованием существующего задания, а не вновь создаваемого задания (выбор по умолчанию). Если вы не являетесь членом фиксированной серверной роли sysadmin, необходимо указывать аргументы job_login и job_password при указании аргумента job_name.
  • [ @frequency_type = ] frequency_type
    Периодичность выполнения плановых заданий агента распространителя. Аргумент frequency_type имеет тип int и может принимать одно из следующих значений.

    Значение Описание

    1

    Один раз

    2

    По требованию

    4

    Ежедневно

    8

    Еженедельно

    16

    Ежемесячно

    32

    По ежемесячному расписанию

    64 (принимается по умолчанию)

    Автозапуск

    128

    Повторяющаяся задача

    ms175006.note(ru-ru,SQL.90).gifПримечание.
    При значении 64 агент распространителя запускается в непрерывном режиме. Это соответствует вводу параметра -Continuous для агента. Дополнительные сведения см. в разделе Replication Distribution Agent.
  • [ @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 и значение по умолчанию 0.
  • [ @frequency_subday=] frequency_subday
    Периодичность повторного планирования в течение указанного периода. Аргумент frequency_subday имеет тип int и может принимать одно из следующих значений.

    Значение Описание

    1

    Однократно

    2

    Второй

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

    Минута

    8

    Час

  • [ @frequency_subday_interval = ] frequency_subday_interval
    Интервал для аргумента frequency_subday. Аргумент frequency_subday_interval имеет тип int и значение по умолчанию 5.
  • [ @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 и значение по умолчанию 235959.
  • [ @active_start_date = ] active_start_date
    Дата первого планового запуска агента распространителя в формате ГГГГММДД. Аргумент active_start_date имеет тип int и значение по умолчанию 0.
  • [ @active_end_date = ] active_end_date
    Дата плановой остановки агента распространителя в формате ГГГГММДД. Аргумент active_end_date имеет тип int и значение по умолчанию 99991231.
  • [ @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.

    ms175006.note(ru-ru,SQL.90).gifПримечание.
    Если указан аргумент dts_package_name, необходимо ввести пароль.
  • [ @dts_package_location = ] 'dts_package_location'
    Задает местоположение пакета. Аргумент dts_package_location имеет тип nvarchar(12) и значение по умолчанию DISTRIBUTOR. Местом хранения пакета может быть распространитель или подписчик.
  • [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr'
    Указывает, может ли подписка синхронизироваться с помощью диспетчера синхронизации Майкрософт. Аргумент enabled_for_syncmgr имеет тип nvarchar(5) и значением по умолчанию FALSE. При значении false подписка диспетчером синхронизации не регистрируется. При значении true подписка регистрируется диспетчером синхронизации и может быть синхронизирована без запуска среды SQL Server Management Studio.
  • [ @distribution_job_name = ] 'distribution_job_name'
    Только для внутреннего использования.
  • [ @publisher = ] 'publisher'
    Имя издателя. Аргумент publisher имеет тип sysname и значение по умолчанию NULL.
  • [ @subscriber_provider= ] 'subscriber_provider'
    Уникальный программный идентификатор (PROGID), с помощью которого регистрируется поставщик OLE DB для источника данных, отличного от источника данных SQL Server. Аргумент subscriber_provider имеет тип sysname и значение по умолчанию NULL. Аргумент subscriber_provider должен быть уникальным для поставщика OLE DB, установленного на распространителе. Аргумент subscriber_provider можно применять только к подписчикам, отличным от подписчиков SQL Server.
  • [ @subscriber_datasrc= ] 'subscriber_datasrc'
    Имя источника данных, понятное для поставщика OLE DB. Аргумент subscriber_datasrc имеет тип nvarchar(4000) и значение по умолчанию NULL. Аргумент subscriber_datasrc передается как свойство DBPROP_INIT_DATASOURCE для инициализации поставщика OLE DB. Аргумент subscriber_datasrc можно использовать только для подписчиков, отличных от SQL Server.
  • [ @subscriber_location= ] 'subscriber_location'
    Расположение базы данных, понятное для поставщика OLE DB. Аргумент subscriber_location имеет тип nvarchar(4000) и значение по умолчанию NULL. Аргумент subscriber_location передается как свойство DBPROP_INIT_LOCATION для инициализации поставщика OLE DB. Аргумент subscriber_location можно использовать только для подписчиков, отличных от подписчиков SQL Server.
  • [ @subscriber_provider_string= ] 'subscriber_provider_string'
    Сформированная для конкретного поставщика OLE DB строка соединения, указывающая на источник данных. Аргумент subscriber_provider_string имеет тип nvarchar(4000) и значение по умолчанию NULL. Аргумент subscriber_provider_string передается интерфейсу IDataInitialize или задается в качестве свойства DBPROP_INIT_PROVIDERSTRING для инициализации поставщика OLE DB. Аргумент subscriber_provider_string применяется только подписчикам, отличным от SQL Server.
  • [ @subscriber_catalog= ] 'subscriber_catalog'
    Каталог, используемый при создании соединения с поставщиком OLE DB. Аргумент subscriber_catalog имеет тип sysname и значение по умолчанию NULL. Аргумент subscriber_catalog передается как свойство DBPROP_INIT_CATALOG для инициализации поставщика OLE DB. Аргумент subscriber_catalog можно использовать только для подписчиков, отличных от SQL Server.

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

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

Замечания

Процедура sp_addpushsubscription_agent используется для репликации моментальных снимков и для репликации транзакций.

Разрешения

Только члены фиксированной серверной роли sysadmin или фиксированной роли базы данных db_owner имеют право выполнять sp_addpushsubscription_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".

DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica';

--Add a push subscription to a transactional publication.
USE [AdventureWorks]
EXEC sp_addsubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @destination_db = @subscriptionDB, 
  @subscription_type = N'push';

--Add an agent job to synchronize the push subscription.
EXEC sp_addpushsubscription_agent 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @job_login = $(Login), 
  @job_password = $(Password);
GO

См. также

Справочник

Хранимые процедуры репликации (Transact-SQL)
sp_addsubscription (Transact-SQL)
sp_changesubscription (Transact-SQL)
sp_dropsubscription (Transact-SQL)
sp_helpsubscription (Transact-SQL)

Другие ресурсы

Как создавать принудительные подписки (программирование репликации на языке Transact-SQL)
How to: Create a Subscription for a Non-SQL Server Subscriber (Replication Transact-SQL Programming)
Подписка на публикации

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

12 декабря 2006 г.

Новое содержимое
  • Добавлено примечание о том, что при значении параметра @frequency_type, равном 64, агент распространителя выполняется в непрерывном режиме.