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
Opmerking
Deze functie blijft ondersteund in versies van SQL Server van 2012 tot en met 2016. Deze functie wordt verwijderd in een toekomstige versie van SQL Server. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie.
Met transactionele replicatie kunnen wijzigingen die zijn aangebracht bij een Abonnee, worden doorgegeven aan de Publisher met behulp van directe of in de wachtrij geplaatste update-abonnementen. U kunt programmatisch een bijwerkend abonnement maken met behulp van opgeslagen replicatieprocedures.
Configureer updatable abonnementen op de pagina Updatable Subscriptions van de wizard Nieuw abonnement. Deze pagina is alleen beschikbaar als u een transactionele publicatie hebt ingeschakeld voor bijwerkbare abonnementen. Zie voor meer informatie over het inschakelen van bijwerkbare abonnementen, Bijwerkbare Abonnementen Inschakelen voor Transactionele Publicaties.
Een abonnement dat kan worden bijgewerkt vanuit Publisher configureren
Maak verbinding met Publisher in Microsoft SQL Server Management Studio en vouw vervolgens het serverknooppunt uit.
Vouw de map Replicatie uit en vouw vervolgens de map Lokale publicaties uit.
Klik met de rechtermuisknop op een transactionele publicatie die is ingeschakeld voor het bijwerken van abonnementen en klik vervolgens op Nieuwe abonnementen.
Volg pagina's in de wizard om opties voor het abonnement in te stellen, zoals waar de distributie-agent moet worden uitgevoerd.
Controleer of Repliceren is geselecteerd op de pagina Updatable Subscriptions van de wizard Nieuw abonnement.
Selecteer een optie in de vervolgkeuzelijst Doorvoeren in Publisher :
Als u abonnementen direct wilt bijwerken, selecteert u Wijzigingen gelijktijdig doorvoeren. Als u deze optie selecteert en de publicatie het bijwerken van abonnementen in de wachtrij toestaat (de standaardinstelling voor publicaties die zijn gemaakt met de wizard Nieuwe publicatie), wordt de abonnementseigenschap update_mode ingesteld op failover. Met deze modus kunt u later indien nodig overschakelen naar bijwerken in de wachtrij.
Om gebruik te maken van een update-abonnement met wachtrij, selecteert u Wijzigingen in wachtrij plaatsen en indien mogelijk doorvoeren. Als u deze optie selecteert en de publicatie het direct bijwerken van abonnementen toestaat (de standaardinstelling voor publicaties die zijn gemaakt met de wizard Nieuwe publicatie), en de abonnee SQL Server 2005 of een latere versie uitvoert, wordt de abonnementseigenschap update_mode ingesteld op failover in de wachtrij. Met deze modus kunt u zo nodig overschakelen naar direct bijwerken.
Raadpleeg Schakelen tussen updatemodi voor een updatable transactioneel abonnement voor informatie over het schakelen tussen updatemodi.
De Inlogpagina voor updatable abonnementen wordt weergegeven voor abonnementen die direct worden bijgewerkt of als update_mode is ingesteld op failover in de wachtrij. Geef op de pagina Aanmelden voor updatable Abonnementen een gekoppelde server op waarmee verbindingen met publisher worden gemaakt voor het direct bijwerken van abonnementen. Verbindingen worden gebruikt door triggers die bij de abonnee worden geactiveerd en wijzigingen doorgegeven aan de Uitgever. Selecteer een van de volgende opties:
Maak een gekoppelde server die verbinding maakt met behulp van SQL Server-verificatie. Selecteer deze optie als u geen externe server of gekoppelde server hebt gedefinieerd tussen de abonnee en de uitgever. Replicatie maakt een gekoppelde server voor u. Het account dat u opgeeft, moet al bestaan bij publisher.
Gebruik een gekoppelde server of externe server die u al hebt gedefinieerd. Selecteer deze optie als u een externe server of gekoppelde server hebt gedefinieerd tussen de abonnee en de uitgever met behulp van sp_addserver (Transact-SQL), sp_addlinkedserver (Transact-SQL), SQL Server Management Studio of een andere methode.
Voor informatie over de machtigingen die vereist zijn voor het gekoppelde serveraccount, zie de Wachtrij-Updatingsabonnementen van De Abonnee Beveiligen.
Voltooi de configureerhulp.
Een updatable abonnement van de abonnee configureren
Maak verbinding met de abonnee in SQL Server Management Studio en vouw vervolgens het serverknooppunt uit.
Vouw de map Replicatie uit.
Klik met de rechtermuisknop op de map Lokale abonnementen en klik vervolgens op Nieuwe abonnementen.
Selecteer op de pagina Publicatie van de wizard Nieuw abonnement de optie SQL Server Publisher zoeken in de vervolgkeuzelijst Publisher .
Maak verbinding met publisher in het dialoogvenster Verbinding maken met server .
Selecteer een transactionele publicatie die is ingeschakeld voor het bijwerken van abonnementen op de pagina Publicatie .
Volg de pagina's in de wizard om opties voor het abonnement op te geven, zoals waar de Distributieagent moet draaien.
Controleer of Repliceren is geselecteerd op de pagina Updatable Subscriptions van de wizard Nieuw abonnement.
Selecteer een optie in de vervolgkeuzelijst Doorvoeren in Publisher :
Als u abonnementen direct wilt bijwerken, selecteert u Wijzigingen gelijktijdig doorvoeren. Als u deze optie selecteert en de publicatie het bijwerken van abonnementen in de wachtrij toestaat (de standaardinstelling voor publicaties die zijn gemaakt met de wizard Nieuwe publicatie), wordt de abonnementseigenschap update_mode ingesteld op failover. Met deze modus kunt u zo nodig overschakelen naar bijwerken in de wachtrij.
Als u wachtrij-updates voor abonnementen wilt gebruiken, selecteert u Wijzigingen in de wachtrij en voert u ze door indien mogelijk. Als u deze optie selecteert en de publicatie het direct bijwerken van abonnementen toestaat (de standaardinstelling voor publicaties die zijn gemaakt met de wizard Nieuwe publicatie), en de abonnee SQL Server 2005 of een latere versie uitvoert, wordt de abonnementseigenschap update_mode ingesteld op failover in de wachtrij. Met deze modus kunt u zo nodig overschakelen naar direct bijwerken.
Voor informatie over het schakelen tussen updatemodi, zie Schakelen tussen updatemodi voor een bijwerkbaar transactioneel abonnement.
De pagina Inloggen voor bijwerkbare abonnementen wordt weergegeven voor abonnementen die directe bijwerking gebruiken of update_mode ingesteld op geplande failover. Geef op de pagina Aanmelden voor updatable Abonnementen een gekoppelde server op waarmee verbindingen met publisher worden gemaakt voor het direct bijwerken van abonnementen. Verbindingen worden gebruikt door triggers die bij de abonnee worden geactiveerd en wijzigingen doorgegeven aan de Uitgever. Selecteer een van de volgende opties:
Maak een gekoppelde server die verbinding maakt met behulp van SQL Server-verificatie. Selecteer deze optie als u geen externe server of gekoppelde server hebt gedefinieerd tussen de abonnee en de uitgever. Replicatie maakt een gekoppelde server voor u. Het account dat u opgeeft, moet al bestaan bij publisher.
Gebruik een gekoppelde server of externe server die u al hebt gedefinieerd. Selecteer deze optie als u een externe server of gekoppelde server hebt gedefinieerd tussen de abonnee en de uitgever met behulp van sp_addserver (Transact-SQL), sp_addlinkedserver (Transact-SQL), SQL Server Management Studio of een andere methode.
Voor informatie over de machtigingen die vereist zijn voor het gekoppelde serveraccount, zie de Wachtrij-Updatingsabonnementen van De Abonnee Beveiligen.
Voltooi de configureerhulp.
Een pull-abonnement direct bijwerken
Controleer bij Publisher of de publicatie ondersteuning biedt voor het direct bijwerken van abonnementen door sp_helppublication uit te voeren.
- Als de waarde van
allow_sync_tranin de resultatenset1is, ondersteunt de publicatie directe bijwerkabonnementen. - Als de waarde van
allow_sync_tranin de resultatenset0is, moet de publicatie opnieuw worden gemaakt met direct bijwerken van abonnementen ingeschakeld.
- Als de waarde van
Controleer in Publisher of de publicatie pull-abonnementen ondersteunt door sp_helppublication uit te voeren.
- Als de waarde van
allow_pullin de resultatenset1is, ondersteunt de publicatie pull-abonnementen. - Als de waarde
allow_pull0is, voert u sp_changepublication uit, waarbij uallow_pullopgeeft voor@propertyentruevoor@value.
- Als de waarde van
Voer sp_addpullsubscription uit bij de abonnee. Geef
@publisheren@publicationop, en een van de volgende waarden voor@update_mode:-
sync tran- schakelt het abonnement in voor onmiddellijke updates. -
failover- schakelt het abonnement in voor onmiddellijke updates met in de wachtrij geplaatste update als failoveroptie.
Opmerking
failoververeist dat de publicatie ook is ingeschakeld voor het bijwerken van abonnementen in de wachtrij.-
Voer sp_addpullsubscription_agent uit bij de abonnee. Geef het volgende op:
- De
@publisher,@publisher_dben@publicationparameters. - De Microsoft Windows-referenties waaronder de Distributie-agent bij de Abonnee draait voor
@job_loginen@job_password.
Opmerking
Verbindingen die zijn gemaakt met geïntegreerde Windows-verificatie, worden altijd gemaakt met behulp van de Windows-referenties die zijn opgegeven door
@job_loginen@job_password. De distributieagent maakt altijd de lokale verbinding met de abonnee met behulp van geïntegreerde Windows-verificatie. De agent maakt standaard verbinding met de distributeur met behulp van geïntegreerde Windows-verificatie.- (Optioneel) Een waarde voor
0en de aanmeldingsgegevens van@distributor_security_modeMicrosoft SQL Server voor@distributor_loginen@distributor_password, als u SQL Server-verificatie moet gebruiken bij het maken van verbinding met de distributeur. - Een planning voor de distributieagenttaak voor dit abonnement.
- De
Voer sp_link_publication uit bij de abonnee op de abonnementsdatabase. Geef
@publisher,@publicationde naam van de publicatiedatabase voor@publisher_dben een van de volgende waarden op voor@security_mode:-
0- GEBRUIK SQL Server-verificatie bij het maken van updates bij publisher. Voor deze optie moet u een geldige aanmelding opgeven bij Publisher voor@loginen@password. -
1- Gebruik de beveiligingscontext van de gebruiker die wijzigingen aanbrengt bij de abonnee wanneer u verbinding maakt met de Uitgever. Zie sp_link_publication voor beperkingen met betrekking tot deze beveiligingsmodus. -
2- Gebruik een bestaande, door de gebruiker gedefinieerde gekoppelde serveraanmelding die is gemaakt met sp_addlinkedserver.
-
Voer bij de uitgever sp_addsubscription uit met de specificatie
@publication,@subscriber,@destination_db, en een waarde van pull voor@subscription_type, en dezelfde waarde die is opgegeven in stap 3 voor@update_mode. Hiermee wordt het pull-abonnement geregistreerd bij Publisher.
Maak een pushabonnement voor directe updates
Controleer bij Publisher of de publicatie ondersteuning biedt voor het direct bijwerken van abonnementen door sp_helppublication uit te voeren.
- Als de waarde van
allow_sync_tranin de resultatenset1is, ondersteunt de publicatie directe updates van1-abonnementen. - Als de waarde van de resultatenset
allow_sync_tranis, moet de publicatie opnieuw worden gemaakt met direct bijwerken van abonnementen0ingeschakeld.
- Als de waarde van
Controleer bij Publisher of de publicatie pushabonnementen ondersteunt door sp_helppublication uit te voeren.
- Als de waarde van
allow_pushin de resultaatset1is, ondersteunt de publicatie pushabonnementen. - Voer sp_changepublication uit als de waarde
allow_push0is, waarbij uallow_pushvoor@propertyentruevoor@valueopgeeft.
- Als de waarde van
Voer in Publisher sp_addsubscription uit. Geef
@publication,@subscriber,@destination_dbop, en een van de volgende waarden voor@update_mode:-
sync tran- biedt ondersteuning voor onmiddellijke updates. -
failover- maakt ondersteuning mogelijk voor direct bijwerken met in de wachtrij geplaatste updates als failoveroptie.
Opmerking
failoververeist dat de publicatie ook is ingeschakeld voor het bijwerken van abonnementen in de wachtrij.-
Voer in Publisher sp_addpushsubscription_agent uit. Geef de volgende parameters op:
@subscriber,@subscriber_db, en@publication.De Windows-referenties waaronder de Distributie-agent bij de Distributeur voor
@job_loginen@job_passwordwordt uitgevoerd.
Opmerking
Verbindingen die zijn gemaakt met geïntegreerde Windows-verificatie, worden altijd gemaakt met behulp van de Windows-referenties die zijn opgegeven door
@job_loginen@job_password. De distributieagent maakt altijd de lokale verbinding met de distributeur met behulp van geïntegreerde Windows-verificatie. De agent maakt standaard verbinding met de abonnee met behulp van geïntegreerde Windows-verificatie.- (Optioneel) Een waarde voor
0@subscriber_security_modeen de SQL Server-aanmeldingsgegevens voor@subscriber_loginen@subscriber_password, als u SQL Server-verificatie moet gebruiken bij het maken van verbinding met de abonnee. - Een planning voor de distributieagenttaak voor dit abonnement.
Voer sp_link_publication uit bij de abonnee op de abonnementsdatabase. Geef
@publisher,@publicationde naam van de publicatiedatabase voor@publisher_dben een van de volgende waarden op voor@security_mode:-
0- GEBRUIK SQL Server-verificatie bij het maken van updates bij publisher. Voor deze optie moet u een geldige aanmelding opgeven bij Publisher voor@loginen@password. -
1- Gebruik de beveiligingscontext van de gebruiker die wijzigingen aanbrengt bij de abonnee wanneer u verbinding maakt met de Uitgever. Zie sp_link_publication voor beperkingen met betrekking tot deze beveiligingsmodus. -
2- Gebruik een bestaande, door de gebruiker gedefinieerde gekoppelde serveraanmelding die is gemaakt met sp_addlinkedserver.
-
Een pull-abonnement voor wachtrij-bijwerking maken
Controleer in Publisher of de publicatie ondersteuning biedt voor het bijwerken van abonnementen in de wachtrij door sp_helppublication uit te voeren.
- Als de waarde van
allow_queued_tranin de resultatenset1is, ondersteunt de publicatie het direct bijwerken van abonnementen. - Als de waarde van
allow_queued_tranin de resultatenset0is, moet de publicatie opnieuw worden gemaakt met gequeueerde updates van abonnementen ingeschakeld.
- Als de waarde van
Controleer in Publisher of de publicatie pull-abonnementen ondersteunt door sp_helppublication uit te voeren.
- Als de waarde van
allow_pullin de resultatenset1is, ondersteunt de publicatie pull-abonnementen. - Als de waarde van
allow_pull0is, voert u sp_changepublication uit doorallow_pullvoor@propertyop te geven entruevoor@value.
- Als de waarde van
Voer sp_addpullsubscription uit bij de abonnee. Geef
@publisheren@publicationop, en specificeer een van de volgende waarden voor@update_mode:-
queued tran- stelt het abonnement in voor updates in de wachtrij. -
queued failover- biedt ondersteuning voor wachtrij-bijwerking met directe updates als failoveroptie.
Opmerking
queued failoververeist dat de publicatie ook is ingeschakeld voor het direct bijwerken van abonnementen. Als u een failover wilt uitvoeren om direct bij te werken, moet u sp_link_publication gebruiken om de referenties te definiëren waaronder wijzigingen bij de abonnee worden gerepliceerd naar de Uitgever.-
Voer sp_addpullsubscription_agent uit bij de abonnee. Geef de volgende parameters op:
-
@publisher,
@publisher_db, en@publication. - De Windows-referenties waaronder de distributieagent bij de abonnee wordt uitgevoerd
@job_loginen@job_password.
Opmerking
Verbindingen die zijn gemaakt met geïntegreerde Windows-verificatie, worden altijd gemaakt met behulp van de Windows-referenties die zijn opgegeven door
@job_loginen@job_password. De distributieagent maakt altijd de lokale verbinding met de abonnee met behulp van geïntegreerde Windows-verificatie. De agent maakt standaard verbinding met de distributeur met behulp van geïntegreerde Windows-verificatie.- (Optioneel) Een waarde voor
0@distributor_security_modeen de SQL Server-aanmeldingsgegevens voor@distributor_loginen@distributor_password, als u SQL Server-verificatie moet gebruiken bij het maken van verbinding met de distributeur. - Een planning voor de distributieagenttaak voor dit abonnement.
-
@publisher,
Voer bij de uitgever sp_addsubscriber uit om de abonnee te registreren bij de uitgever, waarbij u een waarde voor pull opgeeft tussen
@publicationen@subscriber, en dezelfde waarde gebruikt als in stap 3 voor@update_mode. Hiermee wordt het pull-abonnement geregistreerd bij Publisher.
Een geüpdatet push-abonnement in de wachtrij maken
Controleer in Publisher of de publicatie ondersteuning biedt voor het bijwerken van abonnementen in de wachtrij door sp_helppublication uit te voeren.
- Als de waarde van allow_queued_tran in de resultatenset 1 is, ondersteunt de publicatie het direct bijwerken van abonnementen.
- Als de waarde van allow_queued_tran in de resultatenset 0 is, moet de publicatie opnieuw worden gemaakt met abonnementen met wachtrij-updates ingeschakeld. Voor meer informatie, zie Hoe: het bijwerken van abonnementen voor transactionele publicaties inschakelen (Replicatie Transact-SQL programmeren).
Controleer bij Publisher of de publicatie pushabonnementen ondersteunt door sp_helppublication uit te voeren.
- Als de waarde van
allow_pushin de resultatenset1is, ondersteunt de publicatie pushabonnementen. - Als de waarde van
allow_push0is, voer sp_changepublication uit, waarbij allow_push wordt opgegeven voor@propertyentruevoor@value.
- Als de waarde van
Voer in Publisher sp_addsubscription uit. Specificeer
@publication,@subscriber,@destination_db, en een van de volgende waarden voor@update_mode:-
queued tran- schakelt het abonnement in voor wachtrij-updates. -
queued failover- biedt ondersteuning voor het bijwerken in de wachtrij met onmiddellijke updates als failoveroptie.
Opmerking
De optie voor failover in de wachtrij vereist dat de publicatie ook is ingeschakeld voor het direct bijwerken van abonnementen. Als u een failover wilt uitvoeren om direct bij te werken, moet u sp_link_publication gebruiken om de referenties te definiëren waaronder wijzigingen bij de abonnee worden gerepliceerd naar de Uitgever.
-
Voer in Publisher sp_addpushsubscription_agent uit. Geef de volgende parameters op:
-
@subscriber,@subscriber_db, en@publication. - Windows-referenties waaronder de distributie-agent bij de Distributor wordt uitgevoerd voor
@job_loginen@job_password.
Opmerking
Verbindingen die zijn gemaakt met geïntegreerde Windows-verificatie, worden altijd gemaakt met behulp van de Windows-referenties die zijn opgegeven door
@job_loginen@job_password. De distributieagent maakt altijd de lokale verbinding met de distributeur met behulp van geïntegreerde Windows-verificatie. De agent maakt standaard verbinding met de abonnee met behulp van geïntegreerde Windows-verificatie.- (Optioneel) Een waarde voor
0@subscriber_security_modeen de SQL Server-aanmeldingsgegevens voor@subscriber_loginen@subscriber_password, als u SQL Server-verificatie moet gebruiken bij het maken van verbinding met de abonnee. - Een planning voor de distributieagenttaak voor dit abonnement.
-
Opties voor conflictoplossing voor bijgeplaatste updates instellen
Opties voor conflictoplossing instellen voor publicaties die ondersteuning bieden voor het bijwerken van abonnementen in de wachtrij op de pagina Abonnementsopties van het dialoogvenster Publicatie-eigenschappen<>. Zie Publicatie-eigenschappen weergeven en wijzigen voor meer informatie over het openen van dit dialoogvenster.
Selecteer op de pagina Abonnementsopties van het dialoogvenster Publicatie-eigenschappen - <Publicatie> een van de volgende waarden voor de beleidsoptie Conflictoplossing :
- De Publisher-wijziging behouden
- De wijziging van de abonnee behouden
- Het abonnement opnieuw initialiseren
Example
In dit voorbeeld wordt een pull-abonnement direct bijgewerkt naar een publicatie die ondersteuning biedt voor het direct bijwerken van abonnementen. Aanmeldings- en wachtwoordwaarden worden tijdens runtime opgegeven met behulp van sqlcmd-scriptvariabelen.
Opmerking
Dit script maakt gebruik van sqlcmd-scriptvariabelen. Ze zijn in de vorm $(MyVariable). Zie de sectie Replicatiescripts uitvoeren in het onderwerp Concepten van opgeslagen procedures voor replicatiesysteem voor informatie over het gebruik van scriptvariabelen op de opdrachtregel en in SQL Server Management Studio.
-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @publisher AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS NVARCHAR(512);
SET @publication = N'AdvWorksProductTran';
SET @publicationDB = N'AdventureWorks2022';
SET @publisher = $(PubServer);
SET @login = $(Login);
SET @password = $(Password);
-- At the subscription database, create a pull subscription to a transactional
-- publication using immediate updating with queued updating as a failover.
EXEC sp_addpullsubscription
@publisher = @publisher,
@publication = @publication,
@publisher_db = @publicationDB,
@update_mode = N'failover',
@subscription_type = N'pull';
-- Add an agent job to synchronize the pull subscription,
-- which uses Windows Authentication when connecting to the Distributor.
EXEC sp_addpullsubscription_agent
@publisher = @publisher,
@publisher_db = @publicationDB,
@publication = @publication,
@job_login = @login,
@job_password = @password;
-- Add a Windows Authentication-based linked server that enables the
-- Subscriber-side triggers to make updates at the Publisher.
EXEC sp_link_publication
@publisher = @publisher,
@publication = @publication,
@publisher_db = @publicationDB,
@security_mode = 0,
@login = @login,
@password = @password;
GO
USE AdventureWorks2022;
GO
-- Execute this batch at the Publisher.
DECLARE @publication AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @subscriber AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @subscriptionDB = N'AdventureWorks2022Replica';
SET @subscriber = $(SubServer);
-- At the Publisher, register the subscription, using the defaults.
USE AdventureWorks2022;
EXEC sp_addsubscription
@publication = @publication,
@subscriber = @subscriber,
@destination_db = @subscriptionDB,
@subscription_type = N'pull',
@update_mode = N'failover';
GO