Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí na:SQL ServerAzure
SQL Managed Instance
Přidává novou úlohu plánovaného agenta, která slouží k synchronizaci pull předplatného s transakční publikací. Tato uložená procedura se vykonává u předplatitele v databázi předplatného.
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'vydavatele'
Název vydavatele. @publisher je sysname bez výchozího nastavení.
Note
Název serveru lze zadat jako <Hostname>,<PortNumber> výchozí instanci nebo <Hostname>\<InstanceName>,<PortNumber> pro pojmenovanou instanci. Zadejte číslo portu pro vaše připojení, když je SQL Server nasazen v Linuxu nebo Windows s vlastním portem a služba prohlížeče je zakázaná. Použití vlastních čísel portů pro vzdáleného distributora platí pro SQL Server 2019 (15.x) a novější verze.
[ @publisher_db = ] N'publisher_db'
Název databáze Publisheru.
@publisher_db je sysname, s výchozím nastavením NULL.
@publisher_db Oracle Publishers ignorují.
[ @publication = ] N'publication'
Název publikace. @publication je sysname bez výchozího nastavení.
[ @subscriber = ] N'subscriber'
Název instance Subscriber instance nebo jméno AG posluchače, pokud je databáze odběratelů ve skupině dostupnosti.
@subscriber je sysname s výchozím nastavením NULL.
Note
Tento parametr je zastaralý a je zachován kvůli zpětné kompatibilitě skriptů.
Při spuštění sp_addpullsubscription_agent pro odběratele, který je součástí AG, nastavte @subscriber na jméno posluchače AG. Pokud spustíte SQL Server verzí 2016 (13.x) a starších, nebo SQL Server 2017 (14.x) před CU 16, uložená procedura se spustí bez vrácení chyby, ale parametr @subscriber na replikaci Distribution Agent neodkazuje na jméno posluchače AG; parametr je vytvořen s názvem serveru předplatitele, na kterém je příkaz vykonán. Pro vyřešení tohoto problému ručně aktualizujte parametr Distribution Agent job@subscriber s hodnotou jména posluchače AG.
[ @subscriber_db = ] N'subscriber_db'
Název databáze předplatného.
@subscriber_db je sysname s výchozím nastavením NULL.
Note
Tento parametr je zastaralý a je zachován kvůli zpětné kompatibilitě skriptů.
[ @subscriber_security_mode = ] subscriber_security_mode
Bezpečnostní režim je vhodné použít při připojení k předplatiteli při synchronizaci.
@subscriber_security_mode je int, s výchozím nastavením NULL.
-
0specifikuje autentizaci SQL Server -
1specifikuje autentizaci Windows
Note
Tento parametr je zastaralý a je zachován kvůli zpětné kompatibilitě skriptů. Distribution Agent se vždy připojuje k místnímu předplatiteli pomocí Windows Authentication. Pokud je pro tento parametr zadána jiná hodnota než NULL nebo , 1 zobrazí se varovná zpráva.
[ @subscriber_login = ] N'subscriber_login'
Přihlášení předplatitele pro použití při připojení k předplatiteli při synchronizaci.
@subscriber_login je sysname s výchozím nastavením .NULL
Note
Tento parametr je zastaralý a je zachován kvůli zpětné kompatibilitě skriptů. Pokud je pro tento parametr zadána hodnota, zobrazí se varovná zpráva, ale tato hodnota je ignorována.
[ @subscriber_password = ] N'subscriber_password'
Heslo odběratele.
@subscriber_password je vyžadováno, pokud je @subscriber_security_mode nastaveno na 0.
@subscriber_password je sysname s výchozím nastavením NULL. Pokud je použito heslo předplatitele, automaticky se zašifruje.
Note
Tento parametr je zastaralý a je zachován kvůli zpětné kompatibilitě skriptů. Pokud je pro tento parametr zadána hodnota, zobrazí se varovná zpráva, ale tato hodnota je ignorována.
[ @distributor = ] N'distributor'
Jméno distributora. @distributor je sysname, s výchozí hodnotou určenou @publisher.
[ @distribution_db = ] N'distribution_db'
Název distribuční databáze.
@distribution_db je sysname, s výchozím nastavením NULL.
[ @distributor_security_mode = ] distributor_security_mode
Note
Microsoft Entra ID se dříve označovala jako Azure Active Directory (Azure AD).
Bezpečnostní režim pro použití při připojení k distributoru při synchronizaci.
@distributor_security_mode je int, s výchozím nastavením 1. Následující hodnoty definují bezpečnostní režim:
-
0specifikuje autentizaci SQL Serveru. -
1specifikuje autentizaci Windows. -
2specifikuje ověření heslem Microsoft Entra počínaje SQL Server 2022 (16.x) CU 6. -
3specifikuje integrovanou autentizaci Microsoft Entra počínaje SQL Server 2022 (16.x) CU 6. -
4specifikuje autentizaci Microsoft Entra token počínaje SQL Server 2022 (16.x) CU 6.
Important
Pokud je to možné, použijte ověřování systému Windows.
[ @distributor_login = ] N'distributor_login'
Přihlášení distributora pro použití při připojení k distributoru při synchronizaci.
@distributor_login je sysname, s výchozím nastavením NULL.
@distributor_login je vyžadováno, pokud je @distributor_security_mode nastaveno na 0.
[ @distributor_password = ] N'distributor_password'
Heslo distributora.
@distributor_password je vyžadováno, pokud je @distributor_security_mode nastaveno na 0.
@distributor_password je sysname s výchozím nastavením NULL.
Important
Nepoužívejte prázdné heslo. Použijte silné heslo. Pokud je to možné, vyzve uživatele, aby za běhu zadali přihlašovací údaje zabezpečení. Pokud musíte přihlašovací údaje uložit do souboru skriptu, musíte ho zabezpečit, abyste zabránili neoprávněnému přístupu.
[ @optional_command_line = ] N'optional_command_line'
Volitelný příkazový řádek poskytovaný Distribution Agent. Například -DefinitionFile C:\Distdef.txt nebo -CommitBatchSize 10.
@optional_command_line je nvarchar(4000), s výchozím prázdným řetězcem.
[ @frequency_type = ] frequency_type
Frekvence, s jakou plánovat Distribution Agent. @frequency_type je int a může mít jednu z následujících hodnot.
| Value | Description |
|---|---|
1 |
Jednorázový |
2 (výchozí) |
Na vyžádání |
4 |
Každý den |
8 |
Týdně |
16 |
Monthly |
32 |
Měsíční relativní |
64 |
Automatický start |
128 |
Opakovaná platba |
Note
Zadání hodnoty způsobí64, že Distribution Agent běží v kontinuálním režimu. To odpovídá nastavení parametru -Continuous pro agenta. Další informace naleznete v části Agent distribuce replikace.
[ @frequency_interval = ] frequency_interval
Hodnota se vztahuje na frekvenci nastavenou @frequency_type.
@frequency_interval je int, s výchozím nastavením 1.
[ @frequency_relative_interval = ] frequency_relative_interval
Datum distribučního agenta. Tento parametr se používá, když je @frequency_type nastaveno na 32 (měsíční relativní).
@frequency_relative_interval je int a může mít jednu z následujících hodnot.
| Value | Description |
|---|---|
1 (výchozí) |
First |
2 |
Second |
4 |
Třetí |
8 |
Čtvrtý |
16 |
Poslední |
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
Faktor opakování používaný @frequency_type.
@frequency_recurrence_factor je int, s výchozím hodnotou 1.
[ @frequency_subday = ] frequency_subday
Určuje, jak často se má přeplánovat během definovaného období. @frequency_subday je int a může být jednou z následujících hodnot.
| Value | Description |
|---|---|
1 (výchozí) |
Jednou |
2 |
Second |
4 |
Minuta |
8 |
Hodina |
[ @frequency_subday_interval = ] frequency_subday_interval
Přestávka na @frequency_subday.
@frequency_subday_interval je int, s výchozím nastavením 1.
[ @active_start_time_of_day = ] active_start_time_of_day
Denní doba, kdy je distribuční agent poprvé naplánován, formátovaná jako HHmmss.
@active_start_time_of_day je int, s výchozím nastavením 0.
[ @active_end_time_of_day = ] active_end_time_of_day
Denní doba, kdy distribuční agent přestává být plánován, formátovaná jako HHmmss.
@active_end_time_of_day je , s výchozím nastavením 0.
@active_start_date [ = ] active_start_date
Datum, kdy je distribuční agent poprvé naplánován, formátováno jako yyyyMMdd.
@active_start_date je int, s výchozím nastavením 0.
@active_end_date [ = ] active_end_date
Datum, kdy distribuční agent přestane být plánován, formátováno jako yyyyMMdd.
@active_end_date je int, s výchozím nastavením 0.
[ @distribution_jobid = ] distribution_jobid VÝSTUP
ID Distribution Agent pro tuto práci.
@distribution_jobid je OUTPUT parametr typu binární(16), s výchozím hodnotou NULL.
[ @encrypted_distributor_password = ] encrypted_distributor_password
@encrypted_distributor_password je bit, s výchozím nastavením 0.
Note
Nastavení @encrypted_distributor_password již není podporováno. Pokus nastavit tento bitový parametr na 1 povede k chybě.
[ @enabled_for_syncmgr = ] N'enabled_for_syncmgr'
Specifikuje, zda lze předplatné synchronizovat pomocí Microsoft Synchronization Manager.
@enabled_for_syncmgr je nvarchar(5), s výchozím hodnotou false.
- Pokud
false, předplatné není registrováno v Synchronization Manager. - Pokud
true, předplatné je registrováno v Synchronization Manager a lze ho synchronizovat bez nutnosti spouštět SQL Server Management Studio.
[ @ftp_address = ] N'ftp_address'
Tento parametr je zastaralý a je zachován kvůli zpětné kompatibilitě skriptů.
[ @ftp_port = ] ftp_port
Tento parametr je zastaralý a je zachován kvůli zpětné kompatibilitě skriptů.
[ @ftp_login = ] N'ftp_login'
Tento parametr je zastaralý a je zachován kvůli zpětné kompatibilitě skriptů.
[ @ftp_password = ] N'ftp_password'
Tento parametr je zastaralý a je zachován kvůli zpětné kompatibilitě skriptů.
[ @alt_snapshot_folder = ] N'alt_snapshot_folder'
Určuje umístění alternativní složky snímku.
@alt_snapshot_folder je nvarchar(255), s výchozím hodnotou NULL.
[ @working_directory = ] N'working_directory'
Název pracovního adresáře použitého k ukládání dat a souborů schématu publikace.
@working_directory je nvarchar(255), s výchozím hodnotou NULL. Název by měl být zadán ve formátu UNC.
[ @use_ftp = ] N'use_ftp'
Specifikuje použití FTP místo běžného protokolu pro získávání snímků.
@use_ftp je nvarchar(5), s výchozím hodnotou false.
[ @publication_type = ] publication_type
Specifikuje typ replikace publikace.
@publication_type je tinyint, s výchozím hodnotou 0.
- Pokud
0, publikace je typ transakce. - Pokud
1, publikace je typ snapshotu. - Pokud
2, publikace je typ sloučení.
[ @dts_package_name = ] N'dts_package_name'
Specifikuje název DTS balíčku.
@dts_package_name je sysname s výchozím nastavením NULL. Například pro specifikaci balíčku , DTSPub_Packageparametrem by byl @dts_package_name = N'DTSPub_Package'.
[ @dts_package_password = ] N'dts_package_password'
Specifikuje heslo na balení, pokud nějaké je.
@dts_package_password je sysname, s výchozím nastavením NULL, což znamená, že na balíčku není heslo.
Note
Pokud je uvedeno , musíte zadat heslo@dts_package_name je uvedeno.
[ @dts_package_location = ] N'dts_package_location'
Specifikuje umístění balíčku.
@dts_package_location je nvarchar(12), s výchozím hodnotou subscriber. Umístění balíčku může být distributor nebo subscriber.
[ @reserved = ] N'reserved'
Určeno pouze pro informační účely. Není podporováno. Budoucí kompatibilita není zaručena.
[ @offloadagent = ] N'offloadagent'
Tento parametr je zastaralý a je zachován kvůli zpětné kompatibilitě skriptů. Pokud je pro tento parametr zadána hodnota, zobrazí se varovná zpráva, ale tato hodnota je ignorována. Nastavení @offloadagent na jinou hodnotu než false generuje chybu.
[ @offloadserver = ] N'offloadserver
Tento parametr je zastaralý a je zachován kvůli zpětné kompatibilitě skriptů. Pokud je pro tento parametr zadána hodnota, zobrazí se varovná zpráva, ale tato hodnota je ignorována. Nastavení @offloadserver na jinou hodnotu generuje false chybu.
[ @job_name = ] N'job_name'
Název stávající pozice agenta.
@job_name je sysname s výchozím nastavením NULL. Tento parametr je specifikován pouze tehdy, když je předplatné synchronizováno s existující úlohou místo nově vytvořené úlohy (výchozí). Pokud nejste členem role pevného správce systému, musíte při určování @job_name specifikovat @job_login a @job_password.
[ @job_login = ] N'job_login'
Přihlášení k účtu Windows, pod kterým agent běží. @job_login je nvarchar(257), bez výchozího nastavení. Tento Windows účet se vždy používá pro připojení agentů k předplatiteli.
[ @job_password = ] N'job_password'
Heslo k Windows účtu, pod kterým agent běží. @job_password je sysname bez výchozího nastavení.
Important
Nepoužívejte prázdné heslo. Použijte silné heslo. Pokud je to možné, vyzve uživatele, aby za běhu zadali přihlašovací údaje zabezpečení. Pokud musíte přihlašovací údaje uložit do souboru skriptu, musíte ho zabezpečit, abyste zabránili neoprávněnému přístupu.
[ @job_security_mode = ] job_security_mode
Určeno pouze pro informační účely. Není podporováno. Budoucí kompatibilita není zaručena.
Hodnoty návratového kódu
0 (úspěch) nebo 1 (selhání).
Remarks
sp_addpullsubscription_agent se používá při replikaci snapshotů a transakční replikaci.
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
Pouze členové role pevného serveru správce systému nebo role pevné databáze db_owner mohou vykonávat sp_addpullsubscription_agent.