Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Managed Instance
Lägger till ett nytt agentjobb som används för att schemalägga synkronisering av en pushprenumeration till en sammanslagningspublikation. Den här lagrade proceduren körs i Publisher i publikationsdatabasen.
Important
När en Publisher konfigureras med en fjärrdistributör skickas värdena för alla parametrar, inklusive @job_login och @job_password, till distributören som klartext. Du bör kryptera anslutningen mellan Utgivaren och dess fjärranslutna distributör innan du kör den här lagrade proceduren. Mer information finns i Konfigurera Databasmotor för SQL Server för kryptering av anslutningar.
Transact-SQL syntaxkonventioner
Note
Microsoft Entra ID kallades tidigare Azure Active Directory (Azure AD).
Syntax
sys.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' ]
[ ; ]
Arguments
[ @publication = ] N'publicering'
Namnet på publikationen. @publication är sysname, utan standard.
[ @subscriber = ] N'prenumerant'
Namnet på prenumeranten.
@subscriber är sysname, med standardvärdet .NULL
[ @subscriber_db = ] N'subscriber_db'
Namnet på prenumerationsdatabasen.
@subscriber_db är sysname, med standardvärdet .NULL
[ @subscriber_security_mode = ] subscriber_security_mode
Säkerhetsläget att använda när man ansluter till en abonnent vid synkronisering.
@subscriber_security_mode är smallint, med en standard på 1. Följande värden definierar säkerhetsläget:
-
0specificerar autentisering av SQL Server. -
1specificerar Windows-autentisering. -
2specificerar autentisering av Microsoft Entra-lösenord, med start från SQL Server 2022 (16.x) CU 6. -
3specificerar Microsoft Entra integrerad autentisering, med start från SQL Server 2022 (16.x) CU 6. -
4specificerar Microsoft Entra-tokenautentisering, med start från SQL Server 2022 (16.x) CU 6.
Important
Använd Windows-autentisering när det är möjligt.
[ @subscriber_login = ] N'subscriber_login'
Prenumerantinloggningen används när man ansluter till en prenumerant vid synkronisering.
@subscriber_login är sysname, med standardvärdet .NULL
@subscriber_login krävs om @subscriber_security_mode är satt till 0.
[ @subscriber_password = ] N'subscriber_password'
Prenumerantlösenordet för SQL Server-autentisering.
@subscriber_password är sysname, med standardvärdet .NULL
@subscriber_password krävs om @subscriber_security_mode är satt till 0. Om ett prenumerantlösenord används krypteras det automatiskt.
Important
När det är möjligt uppmanar du användarna att ange säkerhetsautentiseringsuppgifter vid körning. Om du måste lagra autentiseringsuppgifter i en skriptfil måste du skydda filen för att förhindra obehörig åtkomst.
[ @publisher_security_mode = ] publisher_security_mode
Säkerhetsläget att använda när man ansluter till en Publisher vid synkronisering.
@publisher_security_mode är smallint, med standardvärdet .1 Följande värden definierar säkerhetsläget:
-
0specificerar autentisering av SQL Server. -
1specificerar Windows-autentisering. -
2specificerar autentisering av Microsoft Entra-lösenord, med start från SQL Server 2022 (16.x) CU 6. -
3specificerar Microsoft Entra integrerad autentisering, med start från SQL Server 2022 (16.x) CU 6. -
4specificerar Microsoft Entra-tokenautentisering, med start från SQL Server 2022 (16.x) CU 6.
Important
Använd Windows-autentisering när det är möjligt.
[ @publisher_login = ] N'publisher_login'
Inloggningen att använda när man ansluter till en utgivare vid synkronisering.
@publisher_login är sysname, med standardvärdet .NULL
[ @publisher_password = ] N'publisher_password'
Lösenordet som används vid anslutning till utgivaren.
@publisher_password är sysname, med standardvärdet .NULL
Important
Använd inte ett tomt lösenord. Använd ett starkt lösenord. När det är möjligt uppmanar du användarna att ange säkerhetsautentiseringsuppgifter vid körning. Om du måste lagra autentiseringsuppgifter i en skriptfil måste du skydda filen för att förhindra obehörig åtkomst.
[ @job_login = ] N'job_login'
Inloggningen för Windows-kontot där agenten körs.
@job_login är nvarchar(257), med en standard på NULL. Detta Windows-konto används alltid för agentanslutningar till distributören samt för anslutningar till abonnenten och Publisher vid användning av Windows Integrerad autentisering.
[ @job_password = ] N'job_password'
Lösenordet till Windows-kontot som agenten körs under. @job_password är sysname, utan standard.
Important
När det är möjligt uppmanar du användarna att ange säkerhetsautentiseringsuppgifter vid körning. Om du måste lagra autentiseringsuppgifter i en skriptfil måste du skydda filen för att förhindra obehörig åtkomst.
[ @job_name = ] N'job_name'
Namnet på ett befintligt agentjobb.
@job_name är sysname, med standardvärdet .NULL Denna parameter specificeras endast när prenumerationen synkroniseras med ett befintligt jobb istället för ett nyskapat jobb (standard). Om du inte är medlem i sysadmin-rollen med fast server måste du specificera @job_login och @job_password när du anger @job_name.
[ @frequency_type = ] frequency_type
Ett värde som indikerar när Merge Agent körs. @frequency_type är int, och kan vara ett av följande värden.
| Value | Description |
|---|---|
1 |
En gång |
2 |
På begäran |
4 |
Daglig |
8 |
En gång i veckan |
16 |
Monthly |
32 |
Månadssläkting |
64 |
Automatisk start |
128 |
Återkommande |
NULL (standardinställning) |
Note
Att ange ett värde på 64 gör att Merge Agent körs i kontinuerligt läge. Detta motsvarar att sätta parametern -Continuous för agenten. Mer information finns i Replication Merge Agent.
[ @frequency_interval = ] frequency_interval
Dagarna då Merge Agent körs. @frequency_interval är int, och kan vara ett av följande värden.
| Value | Description |
|---|---|
1 |
Sunday |
2 |
Måndag |
3 |
Tuesday |
4 |
Onsdag |
5 |
Torsdag |
6 |
Fredag |
7 |
lördag |
8 |
Dag |
9 |
Vardagar |
10 |
Helgdagar |
NULL (standardinställning) |
[ @frequency_relative_interval = ] frequency_relative_interval
Datumet för Merge Agent. Denna parameter används när @frequency_type sätts till 32 (månatlig relativ).
@frequency_relative_interval är int, och kan vara ett av följande värden.
| Value | Description |
|---|---|
1 |
First |
2 |
Second |
4 |
Third |
8 |
Fourth |
16 |
Sist |
NULL (standardinställning) |
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
Upprepningsfaktorn som används av @frequency_type.
@frequency_recurrence_factor är int, med standardvärdet .0
[ @frequency_subday = ] frequency_subday
Hur ofta ska man boka om under den definierade perioden. @frequency_subday är int, och kan vara ett av följande värden.
| Value | Description |
|---|---|
1 |
En gång |
2 |
Second |
4 |
Minut |
8 |
Timme |
NULL (standardinställning) |
[ @frequency_subday_interval = ] frequency_subday_interval
Pausen för @frequency_subday.
@frequency_subday_interval är int, med standardvärdet .NULL
[ @active_start_time_of_day = ] active_start_time_of_day
Den tid på dygnet då Merge Agent först schemaläggs och formateras som HHmmss.
@active_start_time_of_day är int, med standardvärdet .0
[ @active_end_time_of_day = ] active_end_time_of_day
Den tid på dygnet då Merge Agent slutar schemaläggas och formateras som HHmmss.
@active_end_time_of_day är int, med standardvärdet .235959
[ @active_start_date = ] active_start_date
Datumet då Merge Agent först schemaläggs och formateras som yyyyMMdd.
@active_start_date är int, med standardvärdet .0
[ @active_end_date = ] active_end_date
Datumet då Merge Agent slutar schemalagas, formaterat som yyyyMMdd.
@active_end_date är int, med standardvärdet .99991231
[ @enabled_for_syncmgr = ] N'enabled_for_syncmgr'
Specificerar om prenumerationen kan synkroniseras via Windows Synchronization Manager.
@enabled_for_syncmgr är nvarchar(5), med standardvärdet .false
- Om
false, är prenumerationen inte registrerad hos Synchronization Manager. - Om
true, är prenumerationen registrerad i Synchronization Manager och kan synkroniseras utan att starta SQL Server Management Studio.
Returnera kodvärden
0 (lyckades) eller 1 (fel).
Remarks
sp_addmergepushsubscription_agent används i sammanslagningsreplikering och använder funktionalitet liknande sp_addpushsubscription_agent.
Examples
-- 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
Permissions
Endast medlemmar av sysadmin-fasta serverrollen eller db_owner fasta databasrollen kan köra sp_addmergepushsubscription_agent.