Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Managed Instance
Voegt een nieuwe agenttaak toe die wordt gebruikt om synchronisatie van een pull-abonnement te plannen met een mergepublicatie. Deze opgeslagen procedure wordt uitgevoerd bij de abonnee in de abonnementsdatabase.
Transact-SQL syntaxis-conventies
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 = ] Naamloos
De naam van de agent.
@name is een systeemnaam, met als standaard .NULL
[ @publisher = ] N'uitgever'
De naam van de Publisher-server. @publisher is sysname, zonder standaardinstelling.
[ @publisher_db = ] N'publisher_db'
De naam van de Publisher-database. @publisher_db is systeemnaam, zonder standaard.
[ @publication = ] N'publicatie'
De naam van de publicatie. @publication is sysname, zonder standaard.
[ @publisher_security_mode = ] publisher_security_mode
De beveiligingsmodus die je gebruikt bij het verbinden met een uitgever bij synchronisatie.
@publisher_security_mode is int, met als standaard .1 De volgende waarden definiëren de beveiligingsmodus:
-
0specificeert SQL Server-authenticatie. -
1specificeert Windows-authenticatie. -
2specificeert Microsoft Entra-wachtwoordauthenticatie, beginnend met SQL Server 2022 (16.x) CU 6. -
3specificeert Microsoft Entra geïntegreerde authenticatie, beginnend met SQL Server 2022 (16.x) CU 6.
Important
Gebruik waar mogelijk Windows-verificatie.
[ @publisher_login = ] N'publisher_login'
De login die gebruikt wordt bij het verbinden met een uitgever bij synchronisatie.
@publisher_login is een systeemnaam, met als standaard .NULL
[ @publisher_password = ] N'publisher_password'
Het wachtwoord dat wordt gebruikt bij het verbinden met de uitgever.
@publisher_password is een systeemnaam, met als standaard NULL.
Important
Gebruik geen leeg wachtwoord. Gebruik een sterk wachtwoord. Indien mogelijk vraagt u gebruikers om beveiligingsreferenties in te voeren tijdens runtime. Als u referenties in een scriptbestand moet opslaan, moet u het bestand beveiligen om onbevoegde toegang te voorkomen.
[ @publisher_encrypted_password = ] publisher_encrypted_password
Het instellen van @publisher_encrypted_password wordt niet langer ondersteund. Pogingen om deze bitparameter zo in 1 te stellen, levert een fout op.
[ @subscriber = ] N'abonnee'
De naam van de abonnee.
@subscriber is sysname, met als standaard .NULL
[ @subscriber_db = ] N'subscriber_db'
De naam van de abonnementsdatabase.
@subscriber_db is systeemnaam, met als standaard .NULL
[ @subscriber_security_mode = ] subscriber_security_mode
De beveiligingsmodus om te gebruiken bij het verbinden met een abonnee tijdens synchronisatie.
@subscriber_security_mode is int, met als standaard 1. Als 0, specificeert SQL Server-authenticatie. Als 1, specificeert Windows-authenticatie.
Note
Deze parameter is verouderd en wordt behouden voor achterwaartse compatibiliteit van scripts. Als een waarde voor deze parameter wordt gespecificeerd, wordt een waarschuwingsbericht teruggegeven, maar de waarde wordt genegeerd.
[ @subscriber_login = ] N'subscriber_login'
De abonnee logt in bij het verbinden met een abonnee tijdens synchronisatie.
@subscriber_login is een systeemnaam, met als standaard .NULL
@subscriber_login is vereist als @subscriber_security_mode is ingesteld op 0.
Note
Deze parameter is verouderd en wordt behouden voor achterwaartse compatibiliteit van scripts. Als een waarde voor deze parameter wordt gespecificeerd, wordt een waarschuwingsbericht teruggegeven, maar de waarde wordt genegeerd.
[ @subscriber_password = ] N'subscriber_password'
Het abonneewachtwoord voor SQL Server-authenticatie.
@subscriber_password is een systeemnaam, met als standaard NULL.
@subscriber_password is vereist als @subscriber_security_mode is ingesteld op 0.
Note
Deze parameter is verouderd en wordt behouden voor achterwaartse compatibiliteit van scripts. Als een waarde voor deze parameter wordt gespecificeerd, wordt een waarschuwingsbericht teruggegeven, maar de waarde wordt genegeerd.
[ @distributor = ] N'distributeur'
De naam van de distributeur. @distributor is een systeemnaam, met als standaard @publisher; dat wil zeggen, de Publisher is ook de Distributeur.
[ @distributor_security_mode = ] distributor_security_mode
De beveiligingsmodus om te gebruiken bij het verbinden met een distributeur tijdens synchronisatie.
@distributor_security_mode is int, met als standaard .1 De volgende waarden definiëren de beveiligingsmodus:
-
0specificeert SQL Server-authenticatie. -
1specificeert Windows-authenticatie. -
2specificeert Microsoft Entra-wachtwoordauthenticatie, beginnend met SQL Server 2022 (16.x) CU 6. -
3specificeert Microsoft Entra geïntegreerde authenticatie, beginnend met SQL Server 2022 (16.x) CU 6. -
4specificeert Microsoft Entra tokenauthenticatie, beginnend met SQL Server 2022 (16.x) CU 6.
Important
Gebruik waar mogelijk Windows-verificatie.
[ @distributor_login = ] N'distributor_login'
De Distributor-login om te gebruiken bij het verbinden met een Distributor tijdens synchronisatie.
@distributor_login is een systeemnaam, met als standaard NULL.
@distributor_login is vereist als @distributor_security_mode is ingesteld op 0.
[ @distributor_password = ] N'distributor_password'
Het wachtwoord van de distributeur.
@distributor_password is sysname, met als standaard .NULL
@distributor_password is vereist als @distributor_security_mode is ingesteld op 0.
Important
Gebruik geen leeg wachtwoord. Gebruik een sterk wachtwoord. Indien mogelijk vraagt u gebruikers om beveiligingsreferenties in te voeren tijdens runtime. Als u referenties in een scriptbestand moet opslaan, moet u het bestand beveiligen om onbevoegde toegang te voorkomen.
[ @encrypted_password = ] encrypted_password
Het instellen van @encrypted_password wordt niet langer ondersteund. Pogingen om deze bitparameter zo in 1 te stellen, levert een fout op.
[ @frequency_type = ] frequency_type
Een waarde die aangeeft wanneer de Merge Agent draait. @frequency_type is int, en kan een van deze waarden zijn.
| Value | Description |
|---|---|
1 |
Eenmaal |
2 |
Op aanvraag |
4 |
Dagelijks |
8 |
Wekelijks |
16 |
Maandelijks |
32 |
Maandelijkse verwant |
64 |
Autostart |
128 |
Terugkerend |
NULL (standaard) |
Note
Het specificeren van een waarde van 64 zorgt ervoor dat de Merge Agent in continue modus draait. Dit komt overeen met het instellen van de -Continuous parameter voor de agent. Zie Replicatiesamenvoegagentvoor meer informatie.
[ @frequency_interval = ] frequency_interval
De dag of dagen waarop de Merge Agent draait.
@frequency_interval is int, met een standaard van NULL, en kan een van deze waarden zijn.
| Value | Description |
|---|---|
1 |
Zondag |
2 |
maandag |
3 |
Tuesday |
4 |
woensdag |
5 |
donderdag |
6 |
Vrijdag |
7 |
Zaterdag |
8 |
Dag |
9 |
Doordeweeks |
10 |
Weekenddagen |
NULL (standaard) |
[ @frequency_relative_interval = ] frequency_relative_interval
De datum van de Merge Agent. Deze parameter wordt gebruikt wanneer @frequency_type is ingesteld op 32 (maandelijkse relatieve).
@frequency_relative_interval is int, en kan een van deze waarden zijn.
| Value | Description |
|---|---|
1 |
First |
2 |
Second |
4 |
Third |
8 |
Fourth |
16 |
Laatste |
NULL (standaard) |
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
De door @frequency_type gebruikte recurrence factor
@frequency_recurrence_factor is int, met als standaard .NULL
[ @frequency_subday = ] frequency_subday
Hoe vaak moet je verzetten tijdens de vastgestelde periode? @frequency_subday is int, en kan een van deze waarden zijn.
| Value | Description |
|---|---|
1 |
Eenmaal |
2 |
Second |
4 |
Minuut |
8 |
Uur |
NULL (standaard) |
[ @frequency_subday_interval = ] frequency_subday_interval
De pauze voor @frequency_subday.
@frequency_subday_interval is int, met als standaard .NULL
[ @active_start_time_of_day = ] active_start_time_of_day
Het tijdstip waarop de Merge Agent voor het eerst wordt gepland, geformatteerd als HHmmss.
@active_start_time_of_day is int, met als standaard .NULL
[ @active_end_time_of_day = ] active_end_time_of_day
Het tijdstip waarop de Merge Agent stopt met worden gepland, geformatteerd als HHmmss.
@active_end_time_of_day is int, met als standaard .NULL
[ @active_start_date = ] active_start_date
De datum waarop de Merge Agent voor het eerst wordt gepland, geformatteerd als yyyyMMdd.
@active_start_date is int, met een standaard van NULL.
[ @active_end_date = ] active_end_date
De datum waarop de Merge Agent stopt met worden gepland, geformatteerd als yyyyMMdd.
@active_end_date is int, met als standaard .NULL
[ @optional_command_line = ] N'optional_command_line'
Een optionele opdrachtprompt die aan de Merge Agent wordt geleverd. @optional_command_line is nvarchar(255), met als standaard een lege string.
Kan worden gebruikt om extra parameters aan de Merge Agent te leveren, zoals in het volgende voorbeeld dat de standaard query-timeout verhoogt naar 600 seconden:
@optional_command_line = N'-QueryTimeOut 600'
[ @merge_jobid = ] merge_jobid UITGANG
De outputparameter voor de job-ID.
@merge_jobid is een OUTPUT parameter van het type binary(16), met als standaard .NULL
[ @enabled_for_syncmgr = ] N'enabled_for_syncmgr'
Geeft aan of het abonnement gesynchroniseerd kan worden via Windows Synchronization Manager.
@enabled_for_syncmgr is nvarchar(5), met als standaard .false Als false, is het abonnement niet geregistreerd bij Synchronization Manager. Als true, is het abonnement geregistreerd bij Synchronization Manager en kan het worden gesynchroniseerd zonder SQL Server Management Studio te starten.
[ @ftp_address = ] N'ftp_address'
Deze parameter is verouderd en wordt behouden voor achterwaartse compatibiliteit van scripts.
[ @ftp_port = ] ftp_port
Deze parameter is verouderd en wordt behouden voor achterwaartse compatibiliteit van scripts.
[ @ftp_login = ] N'ftp_login'
Deze parameter is verouderd en wordt behouden voor achterwaartse compatibiliteit van scripts.
[ @ftp_password = ] N'ftp_password'
Deze parameter is verouderd en wordt behouden voor achterwaartse compatibiliteit van scripts.
[ @alt_snapshot_folder = ] N'alt_snapshot_folder'
Geeft de locatie aan vanwaar de snapshotbestanden moeten worden opgehaald.
@alt_snapshot_folder is nvarchar(255), met een standaard van NULL. Als NULL, worden de snapshotbestanden opgepikt vanaf de standaardlocatie die door de Publisher is gespecificeerd.
[ @working_directory = ] N'working_directory'
De naam van de werkmap die tijdelijk wordt gebruikt om gegevens en schemabestanden voor de publicatie op te slaan wanneer FTP wordt gebruikt om snapshotbestanden over te dragen.
@working_directory is nvarchar(255), met als standaard .NULL
[ @use_ftp = ] N'use_ftp'
Specificeert het gebruik van FTP in plaats van het gebruikelijke protocol om snapshots op te halen.
@use_ftp is nvarchar(5), met als standaard .false
[ @reserved = ] Niet gereserveerd'
Alleen ter informatie geïdentificeerd. Wordt niet ondersteund. Toekomstige compatibiliteit is niet gegarandeerd.
[ @use_interactive_resolver = ] N'use_interactive_resolver'
Gebruikt een interactieve resolver om conflicten op te lossen voor alle artikelen die interactieve oplossing mogelijk maken.
@use_interactive_resolver is nvarchar(5), met als standaard .false
[ @offloadagent = ] N'lossagent'
Note
Deze parameter is verouderd en wordt behouden voor achterwaartse compatibiliteit van scripts. Het instellen van remote_agent_activation op een andere waarde dan false genereert een foutmelding.
[ @offloadserver = ] N'offloadserver'
Note
Deze parameter is verouderd en wordt behouden voor achterwaartse compatibiliteit van scripts. Het instellen van remote_agent_server_name op een niet-NULL waarde zal een fout opleveren.
[ @job_name = ] N'job_name'
De naam van een bestaande agentfunctie.
@job_name is sysname, met als standaard .NULL Deze parameter wordt alleen gespecificeerd wanneer het abonnement wordt gesynchroniseerd met een bestaande taak in plaats van een nieuw aangemaakte taak (de standaard). Als je geen lid bent van de sysadmin fixed server-rol, moet je @job_login en @job_password specificeren wanneer je @job_name specificeert.
[ @dynamic_snapshot_location = ] N'dynamic_snapshot_location'
Het pad naar de map waar de snapshotbestanden worden gelezen als een gefilterde datasnapshot wordt gebruikt.
@dynamic_snapshot_location is nvarchar(260), met een standaard van NULL. Voor meer informatie, zie Geparametriseerde Filters - Geparametriseerde Rijfilters.
[ @use_web_sync = ] use_web_sync
Geeft aan dat websynchronisatie is ingeschakeld.
@use_web_sync is bit, met als standaard .0
1 specificeert dat het pull-abonnement via HTTP via het internet gesynchroniseerd kan worden.
[ @internet_url = ] N'internet_url'
De locatie van de replicatieluisteraar (REPLISAPI.DLL) voor websynchronisatie.
@internet_url is nvarchar(260), met als standaard .NULL
@internet_url is een volledig gekwalificeerde URL, in het formaat http://server.domain.com/directory/replisapi.dll. Als de server is geconfigureerd om te luisteren op een poort anders dan poort 80, moet het poortnummer ook worden opgegeven in het formaat http://server.domain.com:<portnumber>/directory/replisapi.dll, waarbij <portnumber> de poort vertegenwoordigt.
[ @internet_login = ] N'internet_login'
De login die de Merge Agent gebruikt bij het verbinden met de webserver die Websynchronisatie host met HTTP Basic Authentication.
@internet_login is een systeemnaam, met als standaard NULL.
[ @internet_password = ] N'internet_password'
Het wachtwoord dat de Merge Agent gebruikt bij het verbinden met de webserver die websynchronisatie host met HTTP Basic Authentication.
@internet_password is nvarchar(524), met een standaard van NULL.
Important
Gebruik geen leeg wachtwoord. Gebruik een sterk wachtwoord.
[ @internet_security_mode = ] internet_security_mode
De authenticatiemethode die door de Merge Agent wordt gebruikt bij het verbinden met de webserver tijdens websynchronisatie met HTTPS. @internet_security_mode is int, en kan een van deze waarden zijn.
| Value | Description |
|---|---|
0 |
Basisauthenticatie wordt gebruikt. |
1 (standaard) |
Windows Integrated Authentication wordt gebruikt. |
Note
We raden aan om Basic Authentication met websynchronisatie te gebruiken. Om websynchronisatie te gebruiken, moet je een TLS-verbinding maken met de webserver. Voor meer informatie, zie Websynchronisatie configureren.
[ @internet_timeout = ] internet_timeout
De tijdsduur, in seconden, voordat een websynchronisatieverzoek verloopt.
@internet_timeout is int, met een standaard van 300 seconden.
[ @hostname = ] N'hostnaam'
Overschrijft de waarde van HOST_NAME() wanneer deze functie wordt gebruikt in de WHERE clausule van een geparametriseerd filter.
@hostname is sysname, met als standaard .NULL
[ @job_login = ] N'job_login'
De login voor het Windows-account waaronder de agent draait.
@job_login is nvarchar(257), met een standaard van NULL. Dit Windows-account wordt altijd gebruikt voor agentverbindingen met de abonnee en voor verbindingen met de distributeur en Publisher bij gebruik van Windows Integrated authenticatie.
[ @job_password = ] N'job_password'
Het wachtwoord voor het Windows-account waaronder de agent draait.
@job_password is systeemnaam, met als standaard .NULL
Caution
Sla authenticatiegegevens niet op in scriptbestanden. Voor de beste beveiliging moeten inlognamen en wachtwoorden tijdens runtime worden verstrekt.
Codewaarden retourneren
0 (geslaagd) of 1 (mislukt).
Remarks
sp_addmergepullsubscription_agent wordt gebruikt in merge-replicatie en gebruikt functionaliteit vergelijkbaar met sp_addpullsubscription_agent.
Voor een voorbeeld van hoe je beveiligingsinstellingen correct specificeert bij het uitvoeren sp_addmergepullsubscription_agent, zie 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
Alleen leden van de sysadmin-vaste serverrol of db_owner vaste databaserol kunnen uitvoeren sp_addmergepullsubscription_agent.