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 pull-prenumeration till en sammanslagningspublicering. Denna lagrade procureur utförs hos prenumeranten i prenumerationsdatabasen.
Transact-SQL syntaxkonventioner
Syntax
sys.sp_addmergepullsubscription_agent
[ [ @name = ] N'name' ]
, [ @publisher = ] N'publisher'
, [ @publisher_db = ] N'publisher_db'
, [ @publication = ] N'publication'
[ , [ @publisher_security_mode = ] publisher_security_mode ]
[ , [ @publisher_login = ] N'publisher_login' ]
[ , [ @publisher_password = ] N'publisher_password' ]
[ , [ @publisher_encrypted_password = ] publisher_encrypted_password ]
[ , [ @subscriber = ] N'subscriber' ]
[ , [ @subscriber_db = ] N'subscriber_db' ]
[ , [ @subscriber_security_mode = ] subscriber_security_mode ]
[ , [ @subscriber_login = ] N'subscriber_login' ]
[ , [ @subscriber_password = ] N'subscriber_password' ]
[ , [ @distributor = ] N'distributor' ]
[ , [ @distributor_security_mode = ] distributor_security_mode ]
[ , [ @distributor_login = ] N'distributor_login' ]
[ , [ @distributor_password = ] N'distributor_password' ]
[ , [ @encrypted_password = ] encrypted_password ]
[ , [ @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 ]
[ , [ @optional_command_line = ] N'optional_command_line' ]
[ , [ @merge_jobid = ] merge_jobid OUTPUT ]
[ , [ @enabled_for_syncmgr = ] N'enabled_for_syncmgr' ]
[ , [ @ftp_address = ] N'ftp_address' ]
[ , [ @ftp_port = ] ftp_port ]
[ , [ @ftp_login = ] N'ftp_login' ]
[ , [ @ftp_password = ] N'ftp_password' ]
[ , [ @alt_snapshot_folder = ] N'alt_snapshot_folder' ]
[ , [ @working_directory = ] N'working_directory' ]
[ , [ @use_ftp = ] N'use_ftp' ]
[ , [ @reserved = ] N'reserved' ]
[ , [ @use_interactive_resolver = ] N'use_interactive_resolver' ]
[ , [ @offloadagent = ] N'offloadagent' ]
[ , [ @offloadserver = ] N'offloadserver' ]
[ , [ @job_name = ] N'job_name' ]
[ , [ @dynamic_snapshot_location = ] N'dynamic_snapshot_location' ]
[ , [ @use_web_sync = ] use_web_sync ]
[ , [ @internet_url = ] N'internet_url' ]
[ , [ @internet_login = ] N'internet_login' ]
[ , [ @internet_password = ] N'internet_password' ]
[ , [ @internet_security_mode = ] internet_security_mode ]
[ , [ @internet_timeout = ] internet_timeout ]
[ , [ @hostname = ] N'hostname' ]
[ , [ @job_login = ] N'job_login' ]
[ , [ @job_password = ] N'job_password' ]
[ ; ]
Arguments
[ @name = ] N'namn'
Namnet på agenten.
@name är sysname, med standardvärdet .NULL
[ @publisher = ] N'publisher'
Namnet på Publisher-servern. @publisher är sysname, utan standard.
[ @publisher_db = ] N'publisher_db'
Namnet på Publisher-databasen. @publisher_db är sysname, utan standard.
[ @publication = ] N'publicering'
Namnet på publikationen. @publication är sysname, utan standard.
[ @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 int, 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.
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.
[ @publisher_encrypted_password = ] publisher_encrypted_password
Att ställa in @publisher_encrypted_password stöds inte längre. Försök att sätta denna bitparameter till 1 resulterar i ett fel.
[ @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 int, med standardvärdet .1 Om 0, specificerar SQL Server-autentisering. Om 1, specificerar Windows-autentisering.
Note
Denna parameter är föråldrad och behålls för bakåtkompatibilitet mellan skript. Om ett värde anges för denna parameter returneras ett varningsmeddelande, men värdet ignoreras.
[ @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.
Note
Denna parameter är föråldrad och behålls för bakåtkompatibilitet mellan skript. Om ett värde anges för denna parameter returneras ett varningsmeddelande, men värdet ignoreras.
[ @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.
Note
Denna parameter är föråldrad och behålls för bakåtkompatibilitet mellan skript. Om ett värde anges för denna parameter returneras ett varningsmeddelande, men värdet ignoreras.
[ @distributor = ] N'distributor'
Namnet på distributören. @distributor är sysname, med standarden @publisher; det vill säga, Publisher är också distributören.
[ @distributor_security_mode = ] distributor_security_mode
Säkerhetsläget att använda när man ansluter till en distributör vid synkronisering.
@distributor_security_mode är int, 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.
[ @distributor_login = ] N'distributor_login'
Distributörens inloggning används vid anslutning till en distributör vid synkronisering.
@distributor_login är sysname, med standardvärdet .NULL
@distributor_login krävs om @distributor_security_mode är satt till 0.
[ @distributor_password = ] N'distributor_password'
Distributörens lösenord.
@distributor_password är sysname, med standardvärdet .NULL
@distributor_password krävs om @distributor_security_mode är satt till 0.
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.
[ @encrypted_password = ] encrypted_password
Att ställa in @encrypted_password stöds inte längre. Försök att sätta denna bitparameter till 1 resulterar i ett fel.
[ @frequency_type = ] frequency_type
Ett värde som indikerar när Merge Agent körs. @frequency_type är int, och kan vara ett av dessa 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
Dagen eller dagarna då Merge Agent körs.
@frequency_interval är int, med standardvärdet , NULLoch kan vara ett av dessa 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 dessa 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 .NULL
[ @frequency_subday = ] frequency_subday
Hur ofta ska man boka om under den definierade perioden. @frequency_subday är int, och kan vara ett av dessa 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 .NULL
[ @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 .NULL
[ @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 .NULL
[ @active_end_date = ] active_end_date
Datumet då Merge Agent slutar schemalagas, formaterat som yyyyMMdd.
@active_end_date är int, med standardvärdet .NULL
[ @optional_command_line = ] N'optional_command_line'
En valfri kommandoprompt som tillhandahålls till Merge Agent. @optional_command_line är nvarchar(255), med en tom sträng som standard.
Kan användas för att tillhandahålla ytterligare parametrar till Merge Agent, som i följande exempel som ökar standardfrågetimeout till 600 sekunder:
@optional_command_line = N'-QueryTimeOut 600'
[ @merge_jobid = ] merge_jobid UTGÅNG
Utgångsparametern för jobb-ID:t.
@merge_jobid är en OUTPUT parameter av typen binär(16), med standardvärdet .NULL
[ @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.
[ @ftp_address = ] N'ftp_address'
Denna parameter är föråldrad och behålls för bakåtkompatibilitet mellan skript.
[ @ftp_port = ] ftp_port
Denna parameter är föråldrad och behålls för bakåtkompatibilitet mellan skript.
[ @ftp_login = ] N'ftp_login'
Denna parameter är föråldrad och behålls för bakåtkompatibilitet mellan skript.
[ @ftp_password = ] N'ftp_password'
Denna parameter är föråldrad och behålls för bakåtkompatibilitet mellan skript.
[ @alt_snapshot_folder = ] N'alt_snapshot_folder'
Specificerar platsen från vilken snapshot-filerna ska hämtas.
@alt_snapshot_folder är nvarchar(255), med en standard på NULL. Om NULL, kommer snapshot-filerna att hämtas från den standardplats som angavs av Publisher.
[ @working_directory = ] N'working_directory'
Namnet på den arbetskatalog som används för att tillfälligt lagra data och schemafiler för publiceringen när FTP används för att överföra snapshot-filer.
@working_directory är nvarchar(255), med en standard på NULL.
[ @use_ftp = ] N'use_ftp'
Specificerar användningen av FTP istället för det typiska protokollet för att hämta snapshots.
@use_ftp är nvarchar(5), med en standard på false.
[ @reserved = ] Inte reserverat'
Identifieras endast i informationssyfte. Stöds ej. Framtida kompatibilitet garanteras inte.
[ @use_interactive_resolver = ] N'use_interactive_resolver'
Använder interaktiv resolver för att lösa konflikter för alla artiklar som möjliggör interaktiv lösning.
@use_interactive_resolver är nvarchar(5), med en standard på false.
[ @offloadagent = ] N'lossningsmedel'
Note
Denna parameter är föråldrad och behålls för bakåtkompatibilitet mellan skript. Att sätta remote_agent_activation till ett annat värde än false genererar ett fel.
[ @offloadserver = ] N'avlasta server'
Note
Denna parameter är föråldrad och behålls för bakåtkompatibilitet mellan skript. Att sätta remote_agent_server_name till ett icke-NULL-värde kommer att generera ett fel.
[ @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 ska 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.
[ @dynamic_snapshot_location = ] N'dynamic_snapshot_location'
Vägen till mappen där snapshotfilerna läses ifrån om en filtrerad datasnapshot ska användas.
@dynamic_snapshot_location är nvarchar(260), med standardvärdet .NULL För mer information, se Parameteriserade filter – Parameteriserade radfilter.
[ @use_web_sync = ] use_web_sync
Indikerar att webbsynkronisering är aktiverad.
@use_web_sync är bit, med standardvärdet .0
1 specificerar att pull-prenumerationen kan synkroniseras över internet med HTTP.
[ @internet_url = ] N'internet_url'
Platsen för replikationslyssnaren (REPLISAPI.DLL) för webbsynkronisering.
@internet_url är nvarchar(260), med en standard på NULL.
@internet_url är en fullt kvalificerad URL, i formatet http://server.domain.com/directory/replisapi.dll. Om servern är konfigurerad att lyssna på en annan port än port 80 måste portnumret också anges i formatet http://server.domain.com:<portnumber>/directory/replisapi.dll, där <portnumber> representerar porten.
[ @internet_login = ] N'internet_login'
Inloggningen som Merge Agent använder när den ansluter till webbservern som är värd för webbsynkronisering med HTTP Basic Authentication.
@internet_login är sysname, med standardvärdet .NULL
[ @internet_password = ] N'internet_password'
Lösenordet som Merge Agent använder när de ansluter till webbservern som hostar webbsynkronisering med HTTP Basic Authentication.
@internet_password är nvarchar(524), med en standard på NULL.
Important
Använd inte ett tomt lösenord. Använd ett starkt lösenord.
[ @internet_security_mode = ] internet_security_mode
Den autentiseringsmetod som används av Merge Agent när de ansluter till webbservern under webbsynkronisering med HTTPS. @internet_security_mode är int, och kan vara ett av dessa värden.
| Value | Description |
|---|---|
0 |
Grundläggande autentisering används. |
1 (standardinställning) |
Windows integrerad autentisering används. |
Note
Vi rekommenderar att använda grundläggande autentisering med webbsynkronisering. För att använda webbsynkronisering måste du skapa en TLS-anslutning till webbservern. För mer information, se Konfigurera webbsynkronisering.
[ @internet_timeout = ] internet_timeout
Den tid, i sekunder, innan en webbsynkroniseringsbegäran går ut.
@internet_timeout är int, med en standard på 300 sekunder.
[ @hostname = ] N'hostname'
Åsidosätter värdet av HOST_NAME() när denna funktion används i WHERE klausulen i ett parameteriserat filter.
@hostname är sysname, med standardvärdet .NULL
[ @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 prenumeranten samt för anslutningar till distributören och Publisher vid användning av Windows Integrated autentisering.
[ @job_password = ] N'job_password'
Lösenordet till Windows-kontot som agenten körs under.
@job_password är sysname, med standardvärdet .NULL
Caution
Spara inte autentiseringsinformation i skriptfiler. För bästa säkerhet bör inloggningsnamn och lösenord tillhandahållas vid körning.
Returnera kodvärden
0 (lyckades) eller 1 (fel).
Remarks
sp_addmergepullsubscription_agent används i sammanslagningsreplikering och använder funktionalitet liknande sp_addpullsubscription_agent.
För ett exempel på hur man korrekt anger säkerhetsinställningar vid exekvering sp_addmergepullsubscription_agent, se Create a Pull Subscription.
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".
-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks2022';
SET @hostname = N'adventure-works\david8';
-- At the subscription database, create a pull subscription
-- to a merge publication.
USE [AdventureWorks2022Replica]
EXEC sp_addmergepullsubscription
@publisher = @publisher,
@publication = @publication,
@publisher_db = @publicationDB;
-- Add an agent job to synchronize the pull subscription.
EXEC sp_addmergepullsubscription_agent
@publisher = @publisher,
@publisher_db = @publicationDB,
@publication = @publication,
@distributor = @publisher,
@job_login = $(Login),
@job_password = $(Password),
@hostname = @hostname;
GO
Permissions
Endast medlemmar av sysadmin-fasta serverrollen eller db_owner fasta databasrollen kan köra sp_addmergepullsubscription_agent.