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 geplande agent-taak toe die wordt gebruikt om een pull-abonnement te synchroniseren met een transactionele publicatie. Deze opgeslagen procedure wordt uitgevoerd bij de abonnee in de abonnementsdatabase.
Transact-SQL syntaxis-conventies
Syntax
sys.sp_addpullsubscription_agent
[ @publisher = ] N'publisher'
[ , [ @publisher_db = ] N'publisher_db' ]
, [ @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' ]
[ , [ @distributor = ] N'distributor' ]
[ , [ @distribution_db = ] N'distribution_db' ]
[ , [ @distributor_security_mode = ] distributor_security_mode ]
[ , [ @distributor_login = ] N'distributor_login' ]
[ , [ @distributor_password = ] N'distributor_password' ]
[ , [ @optional_command_line = ] N'optional_command_line' ]
[ , [ @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 ]
[ , [ @distribution_jobid = ] distribution_jobid OUTPUT ]
[ , [ @encrypted_distributor_password = ] encrypted_distributor_password ]
[ , [ @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' ]
[ , [ @publication_type = ] publication_type ]
[ , [ @dts_package_name = ] N'dts_package_name' ]
[ , [ @dts_package_password = ] N'dts_package_password' ]
[ , [ @dts_package_location = ] N'dts_package_location' ]
[ , [ @reserved = ] N'reserved' ]
[ , [ @offloadagent = ] N'offloadagent' ]
[ , [ @offloadserver = ] N'offloadserver' ]
[ , [ @job_name = ] N'job_name' ]
[ , [ @job_login = ] N'job_login' ]
[ , [ @job_password = ] N'job_password' ]
[ , [ @job_security_mode = ] job_security_mode ]
[ ; ]
Arguments
[ @publisher = ] N'uitgever'
De naam van de uitgever. @publisher is sysname, zonder standaardinstelling.
Note
De servernaam kan worden opgegeven als <Hostname>,<PortNumber> voor een standaardexemplaren of <Hostname>\<InstanceName>,<PortNumber> voor een benoemd exemplaar. Geef het poortnummer voor uw verbinding op wanneer SQL Server is geïmplementeerd in Linux of Windows met een aangepaste poort en de browserservice is uitgeschakeld. Het gebruik van aangepaste poortnummers voor externe distributeur is van toepassing op SQL Server 2019 (15.x) en latere versies.
[ @publisher_db = ] N'publisher_db'
De naam van de Publisher-database.
@publisher_db is een systeemnaam, met als standaard NULL.
@publisher_db wordt genegeerd door Oracle Publishers.
[ @publication = ] N'publicatie'
De naam van de publicatie. @publication is sysname, zonder standaard.
[ @subscriber = ] N'abonnee'
De naam van de abonnee-instantie of de naam van de AG-luisteraar als de abonneedatabase zich in een beschikbaarheidsgroep bevindt.
@subscriber is sysname, met als standaard .NULL
Note
Deze parameter is verouderd en wordt behouden voor achterwaartse compatibiliteit van scripts.
Wanneer je voor sp_addpullsubscription_agent een abonnee draait die deel uitmaakt van een AG, stel @subscriber dan in op de naam van de AG-luisteraar. Als je SQL Server 2016 (13.x) en eerdere versies uitvoert, of SQL Server 2017 (14.x) vóór CU 16, wordt de opgeslagen procedure uitgevoerd zonder foutmelding, maar de @subscriber parameter op de Replicatie Distribution Agent verwijst niet naar de naam van de AG-luisteraar; De parameter wordt aangemaakt met de naam van de abonneeserver, waarop het commando wordt uitgevoerd. Om dit probleem te verbeteren, werk handmatig de parameter Distribution Agent job@subscriber bij met de naam van de AG luisteraar.
[ @subscriber_db = ] N'subscriber_db'
De naam van de abonnementsdatabase.
@subscriber_db is systeemnaam, met als standaard .NULL
Note
Deze parameter is verouderd en wordt behouden voor achterwaartse compatibiliteit van scripts.
[ @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 NULL.
-
0specificeert SQL Server-authenticatie -
1specificeert Windows-authenticatie
Note
Deze parameter is verouderd en wordt behouden voor achterwaartse compatibiliteit van scripts. De Distribution Agent maakt altijd verbinding met de lokale abonnee via Windows-authenticatie. Als een andere waarde dan NULL of 1 voor deze parameter is gespecificeerd, wordt er een waarschuwingsbericht teruggegeven.
[ @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
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 wachtwoord van de abonnee.
@subscriber_password is vereist als @subscriber_security_mode is ingesteld op 0.
@subscriber_password is een systeemnaam, met als standaard NULL. Als een abonneewachtwoord wordt gebruikt, wordt dit automatisch versleuteld.
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 de door @publisher gespecificeerde waarde.
[ @distribution_db = ] N'distribution_db'
De naam van de distributiedatabase.
@distribution_db is een systeemnaam, met als standaard NULL.
[ @distributor_security_mode = ] distributor_security_mode
Note
Microsoft Entra ID werd voorheen Azure Active Directory (Azure AD) genoemd.
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 vanaf SQL Server 2022 (16.x) CU 6. -
3specificeert Microsoft Entra geïntegreerde authenticatie vanaf SQL Server 2022 (16.x) CU 6. -
4specificeert Microsoft Entra tokenauthenticatie vanaf 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 vereist als @distributor_security_mode is ingesteld op 0.
@distributor_password is sysname, 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.
[ @optional_command_line = ] N'optional_command_line'
Een optionele opdrachtprompt werd geleverd aan de Distribution Agent. Een voorbeeld hiervan is -DefinitionFile C:\Distdef.txt of -CommitBatchSize 10.
@optional_command_line is nvarchar(4000), met als standaard een lege string.
[ @frequency_type = ] frequency_type
De frequentie waarmee je de Distribution Agent moet inplannen. @frequency_type is int, en kan een van de volgende waarden zijn.
| Value | Description |
|---|---|
1 |
Eenmaal |
2 (standaard) |
Op aanvraag |
4 |
Dagelijks |
8 |
Wekelijks |
16 |
Maandelijks |
32 |
Maandelijkse verwant |
64 |
Autostart |
128 |
Terugkerend |
Note
Het specificeren van een waarde van 64 zorgt ervoor dat de Distribution Agent in continue modus draait. Dit komt overeen met het instellen van de -Continuous parameter voor de agent. Zie Replication Distribution Agentvoor meer informatie.
[ @frequency_interval = ] frequency_interval
De waarde die moet worden toegepast op de frequentie die door @frequency_type wordt ingesteld.
@frequency_interval is int, met als standaard .1
[ @frequency_relative_interval = ] frequency_relative_interval
De datum van de distributieagent. Deze parameter wordt gebruikt wanneer @frequency_type is ingesteld op 32 (maandelijkse relatieve).
@frequency_relative_interval is int, en kan een van de volgende waarden zijn.
| Value | Description |
|---|---|
1 (standaard) |
First |
2 |
Second |
4 |
Third |
8 |
Fourth |
16 |
Laatste |
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
De door @frequency_type gebruikte recurrence factor
@frequency_recurrence_factor is int, met als standaard .1
[ @frequency_subday = ] frequency_subday
Geeft aan hoe vaak je verzet moet worden tijdens de vastgestelde periode. @frequency_subday is int, en kan een van de volgende waarden zijn.
| Value | Description |
|---|---|
1 (standaard) |
Eenmaal |
2 |
Second |
4 |
Minuut |
8 |
Uur |
[ @frequency_subday_interval = ] frequency_subday_interval
De pauze voor @frequency_subday.
@frequency_subday_interval is int, met als standaard .1
[ @active_start_time_of_day = ] active_start_time_of_day
Het tijdstip waarop de Distributieagent voor het eerst wordt ingepland, opgemaakt als HHmmss.
@active_start_time_of_day is int, met als standaard .0
[ @active_end_time_of_day = ] active_end_time_of_day
Het tijdstip waarop de Distributieagent stopt met inplannen, geformatteerd als HHmmss.
@active_end_time_of_day is int, met als standaard .0
[ @active_start_date = ] active_start_date
De datum waarop de Distributieagent voor het eerst wordt ingepland, geformatteerd als yyyyMMdd.
@active_start_date is int, met een standaard van 0.
[ @active_end_date = ] active_end_date
De datum waarop de Distributieagent stopt met het inplannen zijn, geformatteerd als yyyyMMdd.
@active_end_date is int, met als standaard .0
[ @distribution_jobid = ] distribution_jobid OUTPUT
De ID van de Distribution Agent voor deze klus.
@distribution_jobid is een OUTPUT parameter van het type binair(16), met als standaard .NULL
[ @encrypted_distributor_password = ] encrypted_distributor_password
@encrypted_distributor_password is bit, met als standaard .0
Note
Het instellen van @encrypted_distributor_password wordt niet langer ondersteund. Als je probeert deze bitparameter op 1 te zetten, krijg je een fout.
[ @enabled_for_syncmgr = ] N'enabled_for_syncmgr'
Specificeert of het abonnement gesynchroniseerd kan worden via Microsoft 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'
Hiermee geeft u de locatie van de alternatieve map voor de momentopname.
@alt_snapshot_folder is nvarchar(255), met een standaard van NULL.
[ @working_directory = ] N'working_directory'
De naam van de werkmap die wordt gebruikt voor het opslaan van gegevens- en schemabestanden voor de publicatie.
@working_directory is nvarchar(255), met als standaard .NULL De naam moet worden opgegeven in UNC-indeling.
[ @use_ftp = ] N'use_ftp'
Specificeert het gebruik van FTP in plaats van het reguliere protocol om snapshots op te halen.
@use_ftp is nvarchar(5), met als standaard .false
[ @publication_type = ] publication_type
Specificeert het replicatietype van de publicatie.
@publication_type is tinyint, met als standaard .0
- Als
0, is publicatie een transactietype. - Als
1, is publicatie een momentopnametype. - Als
2, is publicatie een samenvoegtype.
[ @dts_package_name = ] N'dts_package_name'
Specificeert de naam van het DTS-pakket.
@dts_package_name is systeemnaam, met als standaard .NULL Om bijvoorbeeld een pakket van DTSPub_Packagete specificeren, zou de parameter zijn @dts_package_name = N'DTSPub_Package'.
[ @dts_package_password = ] N'dts_package_password'
Geeft het wachtwoord op het pakket op, als dat er is.
@dts_package_password is sysname, met standaard NULL, wat betekent dat er geen wachtwoord op het pakket staat.
Note
Je moet een wachtwoord opgeven als @dts_package_name is opgegeven.
[ @dts_package_location = ] N'dts_package_location'
Specificeert de pakketlocatie.
@dts_package_location is nvarchar(12), met als standaard .subscriber De locatie van het pakket kan distributor of subscriber.
[ @reserved = ] Niet gereserveerd'
Alleen ter informatie geïdentificeerd. Wordt niet ondersteund. Toekomstige compatibiliteit is niet gegarandeerd.
[ @offloadagent = ] N'lossagent'
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. Het instellen van @offloadagent op een andere waarde dan false genereert een fout.
[ @offloadserver = ] N'offloadserver'
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. Het instellen van @offloadserver op een andere waarde dan false genereert een foutmelding.
[ @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 is 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.
[ @job_login = ] N'job_login'
De login voor het Windows-account waaronder de agent draait. @job_login is nvarchar(257), zonder standaard. Dit Windows-account wordt altijd gebruikt voor agentverbindingen met de abonnee.
[ @job_password = ] N'job_password'
Het wachtwoord voor het Windows-account waaronder de agent draait. @job_password is sysname, zonder standaard.
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.
[ @job_security_mode = ] job_security_mode
Alleen ter informatie geïdentificeerd. Wordt niet ondersteund. Toekomstige compatibiliteit is niet gegarandeerd.
Codewaarden retourneren
0 (geslaagd) of 1 (mislukt).
Remarks
sp_addpullsubscription_agent wordt gebruikt bij snapshotreplicatie en transactionele replicatie.
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;
SET @publication = N'AdvWorksProductTran';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks2022';
-- At the subscription database, create a pull subscription
-- to a transactional publication.
USE [AdventureWorks2022Replica]
EXEC sp_addpullsubscription
@publisher = @publisher,
@publication = @publication,
@publisher_db = @publicationDB;
-- Add an agent job to synchronize the pull subscription.
EXEC sp_addpullsubscription_agent
@publisher = @publisher,
@publisher_db = @publicationDB,
@publication = @publication,
@distributor = @publisher,
@job_login = $(Login),
@job_password = $(Password);
GO
Permissions
Alleen leden van de sysadmin-vaste serverrol of db_owner vaste databaserol kunnen uitvoeren sp_addpullsubscription_agent.