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á pull předplatné na snapshot nebo transakční publikaci. Tato uložená procedura se vykonává na předplatiteli v databázi, kde má být pull subscription vytvořena.
Syntax
sys.sp_addpullsubscription
[ @publisher = ] N'publisher'
[ , [ @publisher_db = ] N'publisher_db' ]
, [ @publication = ] N'publication'
[ , [ @independent_agent = ] N'independent_agent' ]
[ , [ @subscription_type = ] N'subscription_type' ]
[ , [ @description = ] N'description' ]
[ , [ @update_mode = ] N'update_mode' ]
[ , [ @immediate_sync = ] immediate_sync ]
[ ; ]
Arguments
[ @publisher = ] N'publisher'
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'publikace'
Název publikace. @publication je sysname, bez výchozího nastavení.
[ @independent_agent = ] N'independent_agent'
Specifikuje, zda existuje samostatný Distribution Agent pro tuto publikaci.
@independent_agent je nvarchar(5), s výchozím hodnotou true.
- Pokud
true, existuje samostatný Distribution Agent pro tuto publikaci. - Pokud
false, existuje jeden Distribution Agent pro každou dvojici databáze Publisher/Subscriber databáze.
@independent_agent je vlastností publikace a musí mít stejnou hodnotu jako Publisher.
[ @subscription_type = ] N'subscription_type'
Typ předplatného.
@subscription_type je nvarchar(9), s výchozím hodnotou anonymous. Musíte zadat hodnotu pull pro @subscription_type, pokud nechcete vytvořit předplatné bez registrace na Publisher. V tomto případě musíte zadat hodnotu .anonymous To je nutné v případech, kdy nelze během konfigurace předplatného navázat spojení SQL Server s Publisher.
[ @description = ] N'popis"
Popis publikace.
@description je nvarchar(100), s výchozím hodnotou NULL.
[ @update_mode = ] N'update_mode'
Typ aktualizace. @update_mode je nvarchar(30) a může mít jednu z následujících hodnot.
| Value | Description |
|---|---|
read only (výchozí) |
Předplatné je jen pro čtení. Jakékoliv změny na Subscriber nejsou posílány zpět Publisher. Mělo by se používat, když nejsou na odběrateli aktualizovány. |
synctran |
Umožňuje podporu okamžité aktualizace předplatného. |
queued tran |
Umožňuje předplatné pro aktualizace ve frontě. Úpravy dat lze provádět u odběratele, uložit do fronty a následně je předat vydavateli. |
failover |
Umožňuje okamžité aktualizace předplatného s aktualizací ve frontě jako failover. Úpravy dat lze provádět u předplatitele a ihned je předat vydavateli. Pokud nejsou Publisher a Subscriber propojeni, lze úpravy dat provedené u Subscriber uložit do fronty, dokud nejsou Subscriber a Publisher znovu propojeni. |
queued failover |
Poznámka: Oracle Publishers to nepodporuje. Umožňuje předplatné jako frontové aktualizované předplatné s možností přepnout na režim okamžité aktualizace. Úpravy dat lze provádět u předplatitele a ukládat je do fronty, dokud není navázáno spojení mezi předplatitelem a vydavatelem. Když je navázáno nepřetržité spojení, režim aktualizace lze změnit na okamžité aktualizace. |
[ @immediate_sync = ] immediate_sync
Určuje, jestli jsou synchronizační soubory vytvořeny nebo znovu vytvořeny při každém spuštění agenta snímků.
@immediate_sync je bit, s výchozím nastavením 1, a musí být nastaven na stejnou hodnotu jako @immediate_sync v sp_addpublication.
@immediate_sync je vlastností publikace a musí mít stejnou hodnotu jako Publisher.
Hodnoty návratového kódu
0 (úspěch) nebo 1 (selhání).
Remarks
sp_addpullsubscription se používá při replikaci snapshotů a transakční replikaci.
Important
Pro aktualizace předplatného ve frontě použijte SQL Server Authentication pro připojení k předplatitelům a zadejte pro připojení ke každému předplatiteli jiný účet. Při vytváření pull předplatného podporujícího frontové aktualizace replikace vždy nastaví spojení na Windows Authentication (u pull odběrů replikace nemůže přistupovat k metadatům u odběratele potřebného k použití SQL Server Authentication). V takovém případě byste měli po nastavení předplatného provést sp_changesubscription a změnit připojení tak, aby se používalo SQL Server autentizace.
Pokud tabulka MSreplication_subscriptions u odběratele neexistuje, sp_addpullsubscription vytvoří ji. Přidává také řadu do MSreplication_subscriptions tabulky. Pro pull předplatné by sp_addsubscription měli nejdříve zavolat na Publisher.
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.
Související obsah
- Vytvořte si pull předplatné
- Vytvořte aktualizovatelný odběr transakční publikace
- Přihlásit se k odběru publikací
- sys.sp_addpullsubscription_agent (Transact-SQL)
- sys.sp_change_subscription_properties (Transact-SQL)
- sys.sp_droppullsubscription (Transact-SQL)
- sys.sp_helppullsubscription (Transact-SQL)
- sys.sp_helpsubscription_properties (Transact-SQL)
- uložené procedury systému (Transact-SQL)