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 en pull-prenumeration till en snapshot eller transaktionell publikation. Denna lagrade procedur utförs på prenumeranten i databasen där pull-prenumerationen ska skapas.
Transact-SQL syntaxkonventioner
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'
Namnet på utgivaren. @publisher är sysname, utan standard.
Note
Servernamn kan anges som <Hostname>,<PortNumber> för en standardinstans eller <Hostname>\<InstanceName>,<PortNumber> för en namngiven instans. Ange portnumret för anslutningen när SQL Server distribueras i Linux eller Windows med en anpassad port och webbläsartjänsten är inaktiverad. Användningen av anpassade portnummer för fjärrdistributör gäller för SQL Server 2019 (15.x) och senare versioner.
[ @publisher_db = ] N'publisher_db'
Namnet på Publisher-databasen.
@publisher_db är sysname, med standardvärdet .NULL
@publisher_db ignoreras av Oracle Publishers.
[ @publication = ] N'publicering'
Namnet på publikationen. @publication är sysname, utan standard.
[ @independent_agent = ] N'independent_agent'
Specificerar om det finns en fristående Distribution Agent för denna publikation.
@independent_agent är nvarchar(5), med en standard på true.
- Om
true, finns det en fristående Distribution Agent för denna publikation. - Om
false, finns det en Distribution Agent för varje Publisher-databas/Subscriber-databaspar.
@independent_agent är en egenskap till publikationen och måste ha samma värde som Publisher.
[ @subscription_type = ] N'subscription_type'
Typen av prenumeration.
@subscription_type är nvarchar(9), med en standard på anonymous. Du måste ange ett värde på pull för @subscription_type, om du inte vill skapa en prenumeration utan att registrera prenumerationen på Publisher. I detta fall måste du specificera ett värde på anonymous. Detta är nödvändigt i fall där du inte kan etablera en SQL Server-anslutning till Publisher under prenumerationskonfiguration.
[ @description = ] Ingen beskrivning'
Beskrivningen av publikationen.
@description är nvarchar(100), med en standard på NULL.
[ @update_mode = ] N'update_mode'
Typ av uppdatering. @update_mode är nvarchar(30) och kan vara ett av följande värden.
| Value | Beskrivning |
|---|---|
read only (standardinställning) |
Prenumerationen är endast läsbar. Eventuella ändringar hos Abonnenten skickas inte tillbaka till Publisher. Bör användas när uppdateringar inte görs hos prenumeranten. |
synctran |
Möjliggör stöd för omedelbar uppdatering av prenumerationer. |
queued tran |
Möjliggör prenumeration för köad uppdatering. Dataändringar kan göras hos prenumeranten, lagras i en kö och sedan spridas till utgivaren. |
failover |
Möjliggör prenumerationen för omedelbar uppdatering med köad uppdatering som failover. Dataändringar kan göras hos prenumeranten och omedelbart spridas till utgivaren. Om Publisher och Subscriber inte är anslutna kan dataändringar som gjorts hos Subscriber lagras i en kö tills Subscriber och Publisher återansluts. |
queued failover |
Notera: Stöds inte för Oracle Publishers. Möjliggör prenumerationen som en köad uppdateringsprenumeration med möjlighet att byta till omedelbart uppdateringsläge. Dataändringar kan göras hos prenumeranten och lagras i en kö tills en anslutning etableras mellan prenumeranten och utgivaren. När en kontinuerlig anslutning etableras kan uppdateringsläget ändras till omedelbar uppdatering. |
[ @immediate_sync = ] immediate_sync
Anger om synkroniseringsfilerna skapas eller återskapas varje gång ögonblicksbildsagenten körs.
@immediate_sync är bit, med standardvärdet , 1och måste sättas till samma värde som @immediate_sync i sp_addpublication.
@immediate_sync är en egenskap till publikationen och måste ha samma värde som Publisher.
Returnera kodvärden
0 (lyckades) eller 1 (fel).
Remarks
sp_addpullsubscription används vid snapshot-replikering och transaktionell replikation.
Viktigt!
För köade uppdateringsprenumerationer, använd SQL Server-autentisering för anslutningar till prenumeranter och ange ett separat konto för anslutningen till varje prenumerant. När man skapar en pull-prenumeration som stödjer köuppdatering, ställer replikering alltid in att anslutningen använder Windows-autentisering (för pull-prenumerationer kan replikering inte komma åt metadata hos den prenumerant som krävs för att använda SQL Server-autentisering). I det här fallet bör du köra sp_changesubscription för att ändra anslutningen till att använda SQL Server Authentication efter att prenumerationen är konfigurerad.
Om tabellen MSreplication_subscriptions inte finns hos Prenumeranten, sp_addpullsubscription skapa den. Den lägger också till en rad i MSreplication_subscriptions tabellen. För pull-prenumerationer bör sp_addsubscription anropas vid Publisher först.
Exempel
-- 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
Endast medlemmar av sysadmin-fasta serverrollen eller db_owner fasta databasrollen kan köra sp_addpullsubscription.
Relaterat innehåll
- Skapa en pull-prenumeration
- Skapa en uppdaterbar prenumeration till en transaktionspublikation
- Prenumerera på publikationer
- sp_addpullsubscription_agent (Transact-SQL)
- sp_change_subscription_properties (Transact-SQL)
- sp_droppullsubscription (Transact-SQL)
- sp_helppullsubscription (Transact-SQL)
- sp_helpsubscription_properties (Transact-SQL)
- System sparade procedurer (Transact-SQL)