sp_addmergepushsubscription_agent (Transact-SQL)
Область применения: SQL Server Управляемый экземпляр SQL Azure
Вводит новое задание агента для подготовки расписания синхронизации принудительной подписки для публикации слиянием. Эта хранимая процедура выполняется на издателе в базе данных публикации.
Внимание
Если издатель настраивается с удаленным распространителем, то значения, передаваемые для всех аргументов, включая job_login и job_password, передаются распространителю в формате обычного (незашифрованного) текста. Прежде чем выполнять эту хранимую процедуру, необходимо зашифровать соединение между издателем и его удаленным распространителем. Дополнительные сведения см. в разделе "Настройка SQL Server ядро СУБД для шифрования подключений".
Соглашения о синтаксисе Transact-SQL
Примечание.
Идентификатор Microsoft Entra ранее был известен как Azure Active Directory (Azure AD).
Синтаксис
sp_addmergepushsubscription_agent
[ @publication = ] N'publication'
[ , [ @subscriber = ] N'subscriber' ]
[ , [ @subscriber_db = ] N'subscriber_db' ]
[ , [ @subscriber_security_mode = ] subscriber_security_mode ]
[ , [ @subscriber_login = ] N'subscriber_login' ]
[ , [ @subscriber_password = ] N'subscriber_password' ]
[ , [ @publisher_security_mode = ] publisher_security_mode ]
[ , [ @publisher_login = ] N'publisher_login' ]
[ , [ @publisher_password = ] N'publisher_password' ]
[ , [ @job_login = ] N'job_login' ]
[ , [ @job_password = ] N'job_password' ]
[ , [ @job_name = ] N'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 ]
[ , [ @enabled_for_syncmgr = ] N'enabled_for_syncmgr' ]
[ ; ]
Аргументы
[ @publication = ] N'publication'
Имя публикации. @publication — sysname без значения по умолчанию.
[ @subscriber = ] N'подписчик'
Имя подписчика. @subscriber — sysname с значением по умолчаниюNULL
.
[ @subscriber_db = ] N'subscriber_db'
Имя базы данных подписки. @subscriber_db — sysname с значением по умолчаниюNULL
.
[ @subscriber_security_mode = ] subscriber_security_mode
Режим безопасности, используемый при подключении к подписчику при синхронизации. @subscriber_security_mode имеет небольшой размер с значением по умолчанию1
. Следующие значения определяют режим безопасности:
0
указывает проверку подлинности SQL Server.1
указывает проверка подлинности Windows.2
указывает проверку подлинности паролей Microsoft Entra, начиная с SQL Server 2022 (16.x) CU 6.3
указывает встроенную проверку подлинности Microsoft Entra, начиная с SQL Server 2022 (16.x) CU 6.4
указывает проверку подлинности маркера Microsoft Entra, начиная с SQL Server 2022 (16.x) CU 6.
Внимание
По возможности используйте аутентификацию Windows.
[ @subscriber_login = ] N'subscriber_login'
Имя входа подписчика, используемое при подключении к подписчику при синхронизации. @subscriber_login — sysname с значением по умолчаниюNULL
. @subscriber_login требуется, если для @subscriber_security_mode задано 0
значение .
[ @subscriber_password = ] N'subscriber_password'
Пароль подписчика для проверки подлинности SQL Server. @subscriber_password — sysname с значением по умолчаниюNULL
. @subscriber_password требуется, если для @subscriber_security_mode задано значение 0
. Если используется пароль подписчика, он автоматически шифруется.
Внимание
По возможности предлагайте пользователям вводить учетные данные системы безопасности во время выполнения приложения. В случае необходимости хранения учетных данных в файле скрипта этот файл следует защищать во избежание несанкционированного доступа.
[ @publisher_security_mode = ] publisher_security_mode
Режим безопасности, используемый при подключении к издателю при синхронизации. @publisher_security_mode имеет небольшой размер с значением по умолчанию1
. Следующие значения определяют режим безопасности:
0
указывает проверку подлинности SQL Server.1
указывает проверка подлинности Windows.2
указывает проверку подлинности паролей Microsoft Entra, начиная с SQL Server 2022 (16.x) CU 6.3
указывает встроенную проверку подлинности Microsoft Entra, начиная с SQL Server 2022 (16.x) CU 6.4
указывает проверку подлинности маркера Microsoft Entra, начиная с SQL Server 2022 (16.x) CU 6.
Внимание
По возможности используйте аутентификацию Windows.
[ @publisher_login = ] N'publisher_login'
Имя входа, используемое при подключении к издателю при синхронизации. @publisher_login — sysname с значением по умолчаниюNULL
.
[ @publisher_password = ] N'publisher_password'
Пароль, используемый при подключении к издателю. @publisher_password — sysname с значением по умолчаниюNULL
.
Внимание
Не используйте пустые пароли. Выбирайте надежные пароли. По возможности предлагайте пользователям вводить учетные данные системы безопасности во время выполнения приложения. В случае необходимости хранения учетных данных в файле скрипта этот файл следует защищать во избежание несанкционированного доступа.
[ @job_login = ] N'job_login'
Имя входа для учетной записи Windows, в которой выполняется агент. @job_login — nvarchar(257) с значением по умолчаниюNULL
. Эта учетная запись Windows всегда используется для соединений агента с распространителем и соединений с подписчиком и издателем при использовании встроенной проверки подлинности Windows.
[ @job_password = ] N'job_password'
Пароль для учетной записи Windows, в которой выполняется агент. @job_password — sysname, без значения по умолчанию.
Внимание
По возможности предлагайте пользователям вводить учетные данные системы безопасности во время выполнения приложения. В случае необходимости хранения учетных данных в файле скрипта этот файл следует защищать во избежание несанкционированного доступа.
[ @job_name = ] N'job_name'
Имя существующего задания агента. @job_name — sysname с значением по умолчаниюNULL
. Этот аргумент указывается, только если подписка будет синхронизироваться с использованием существующего задания, а не вновь созданного (выбор по умолчанию). Если вы не входите в предопределяемую роль сервера sysadmin , необходимо указать job_login и job_password при указании @job_name.
[ @frequency_type = ] frequency_type
Значение, указывающее, когда выполняется агент слияния. @frequency_type является int и может быть одним из следующих значений.
значение | Описание |
---|---|
1 |
Один раз. |
2 |
по запросу |
4 |
Ежедневно |
8 |
Weekly (Еженедельно); |
16 |
Ежемесячная |
32 |
Ежемесячно с относительной датой |
64 |
Автозапуск |
128 |
Повторяющееся задание |
NULL (по умолчанию) |
Примечание.
Указание значения приводит к тому, 64
что агент слияния выполняться в непрерывном режиме. Это соответствует настройке -Continuous
параметра для агента. Дополнительные сведения см. в статье Replication Merge Agent.
[ @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 |
First |
2 |
Second |
4 |
Третья |
8 |
Четвертая |
16 |
Last |
NULL (по умолчанию) |
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
Коэффициент повторения, используемый @frequency_type. @frequency_recurrence_factor имеет значение int с значением по умолчанию0
.
[ @frequency_subday = ] frequency_subday
Как часто следует перепланировать расписание в течение определенного периода. @frequency_subday имеет значение int и может быть одним из следующих значений.
значение | Описание |
---|---|
1 |
Однократно |
2 |
Second |
4 |
Minute |
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
Время дня, когда агент слияния впервые запланировано, отформатировано как HHmmss
. @active_start_time_of_day имеет значение int с значением по умолчанию0
.
[ @active_end_time_of_day = ] active_end_time_of_day
Время дня, когда агент слияния перестает планироваться, форматируется как HHmmss
. @active_end_time_of_day имеет значение int с значением по умолчанию235959
.
[ @active_start_date = ] active_start_date
Дата, когда агент слияния впервые запланирована, отформатирована как yyyyMMdd
. @active_start_date имеет значение int с значением по умолчанию0
.
[ @active_end_date = ] active_end_date
Дата, когда агент слияния перестает планироваться, отформатирована как yyyyMMdd
. @active_end_date имеет значение int с значением по умолчанию99991231
.
[ @enabled_for_syncmgr = ] N'enabled_for_syncmgr'
Указывает, может ли подписка быть синхронизирована с помощью диспетчера синхронизации Windows. @enabled_for_syncmgr — nvarchar(5) с значением по умолчаниюfalse
.
- Если
false
подписка не зарегистрирована в диспетчере синхронизации. - Если
true
подписка зарегистрирована в диспетчере синхронизации и может быть синхронизирована без запуска SQL Server Management Studio.
Значения кода возврата
0
(успешно) или 1
(сбой).
Замечания
sp_addmergepushsubscription_agent
используется в репликации слиянием и использует функции, аналогичные 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;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica';
SET @hostname = N'adventure-works\david8'
-- Add a push subscription to a merge publication.
USE [AdventureWorks2022];
EXEC sp_addmergesubscription
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@subscription_type = N'push',
@hostname = @hostname;
--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@job_login = $(Login),
@job_password = $(Password);
GO
Разрешения
Могут выполняться только члены предопределенных ролей сервера sysadmin или db_owner предопределенных ролей базы данных.sp_addmergepushsubscription_agent