Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Van toepassing op:SQL Server
Transactionele replicatie is een goede oplossing voor het probleem van het verplaatsen van gegevens tussen continu verbonden servers. Met behulp van de wizard Replicatie kunt u eenvoudig een replicatietopologie configureren en beheren.
In deze zelfstudie leert u hoe u een transactionele replicatietopologie configureert voor continu verbonden servers. Zie het overzicht van transactionele replicatie voor meer informatie over hoe transactionele replicatie werkt.
Wat u leert
In deze zelfstudie leert u hoe u gegevens van de ene database naar de andere publiceert met behulp van transactionele replicatie.
In deze zelfstudie leert u het volgende:
- Maak een uitgever via transactionele replicatie.
- Maak een abonnee voor de transactionele uitgever.
- Valideer het abonnement en meet de latentie.
Vereiste voorwaarden
Deze zelfstudie is bedoeld voor gebruikers die bekend zijn met basisdatabasebewerkingen, maar die beperkte ervaring hebben met replicatie. Voordat u met deze zelfstudie begint, moet u de zelfstudie: SQL Server voorbereiden voor replicatie.
U hebt SQL Server, SQL Server Management Studio (SSMS) en een AdventureWorks-database nodig om deze zelfstudie te voltooien:
Installeer op de uitgeverserver (bron):
- Elke editie van SQL Server, met uitzondering van SQL Server Express of SQL Server Compact. Deze edities kunnen geen replicatie-uitgevers zijn.
- De
AdventureWorks2025voorbeelddatabase. Ter verbetering van de beveiliging worden de voorbeelddatabases niet standaard geïnstalleerd.
Installeer op de abonneeserver (bestemming) een editie van SQL Server, met uitzondering van SQL Server Compact. SQL Server Compact kan geen abonnee zijn in transactionele replicatie.
Installeer SQL Server Management Studio-.
Installeer SQL Server 2017 Developer Edition.
Download de AdventureWorks-voorbeelddatabase. Zie Een database herstellen voor instructies over het herstellen van een database in SSMS.
Opmerking
Replicatie wordt niet ondersteund op SQL Server-exemplaren die meer dan twee versies van elkaar zijn.
In SQL Server Management Studio moet u verbinding maken met de uitgever en abonnee met behulp van een aanmelding die lid is van de vaste serverfunctie sysadmin . Zie Functies op serverniveau voor meer informatie over deze rol.
Geschatte tijd om deze zelfstudie te voltooien: 60 minuten
De uitgever configureren voor transactionele replicatie
In deze sectie maakt u een transactionele publicatie met behulp van SQL Server Management Studio om een gefilterde subset van de tabel Product in de AdventureWorks2025 voorbeelddatabase te publiceren. U voegt ook de SQL Server-aanmelding die door de distributieagent wordt gebruikt, toe aan de publicatietoegangslijst (PAL).
Een publicatie maken en artikelen definiëren
Maak verbinding met de uitgever in SQL Server Management Studio en vouw vervolgens het serverknooppunt uit.
Klik met de rechtermuisknop op SQL Server Agent en selecteer Start. De SQL Server Agent moet worden uitgevoerd voordat u de publicatie maakt. Als deze stap uw agent niet start, moet u dit handmatig doen vanuit SQL Server Configuration Manager.
Vouw de map Replicatie uit, klik met de rechtermuisknop op de map Lokale publicaties en selecteer Nieuwe publicatie. Met deze stap wordt de wizard Nieuwe publicatie gestart:
Selecteer op de pagina Publicatiedatabase de optie
AdventureWorks2025En selecteer vervolgens Volgende.Selecteer op de pagina Publicatietype de optie Transactionele publicatie en selecteer vervolgens Volgende:
Vouw op de pagina Artikelen het knooppunt Tabellen uit en schakel het selectievakje Product in. Vervolgens Product uitvouwen en de selectievakjes naast ListPrice en StandardCost deselecteren. Kies Volgende.
Selecteer Toevoegen op de pagina Rijen filteren.
Selecteer in het dialoogvenster Filter toevoegen de kolom SafetyStockLevel . Selecteer de rechterpijl om de kolom toe te voegen aan de WHERE-clausule van de filterquery. Voer vervolgens handmatig de WHERE-clausule aanpassing als volgt in:
WHERE [SafetyStockLevel] < 500
Selecteer OK en klik vervolgens op Volgende.
Schakel het selectievakje Een momentopname maken onmiddellijk in en houd de momentopname beschikbaar om abonnementen te initialiseren en selecteer Volgende:
Schakel op de pagina Agentbeveiliging het selectievakje Beveiligingsinstellingen van de momentopnameagent gebruiken uit.
Selecteer Beveiligingsinstellingen voor de momentopnameagent. Voer <Publisher_Machine_Name\repl_snapshot> in het vak Procesaccount in, geef het wachtwoord voor dit account op en selecteer VERVOLGENS OK.
Herhaal de vorige stap om < in te stellen> als het procesaccount voor de logboeklezeragent. Selecteer vervolgens OK.
Voer in op de pagina Wizard voltooienAdvWorksProductTrans in het vak Publicatienaam en selecteer Voltooien:
Nadat de publicatie is gemaakt, selecteert u Sluiten om de wizard te voltooien.
U kunt de volgende fout tegenkomen als uw SQL Server Agent niet actief is wanneer u de publicatie probeert te maken. Deze fout geeft aan dat uw publicatie met succes is gemaakt, maar dat de Momentopname-agent niet kon worden gestart. Als dit gebeurt, moet u de SQL Server Agent starten en de momentopnameagent handmatig starten. In de volgende sectie vindt u instructies.
De status van het genereren van momentopnamen weergeven
Maak verbinding met de uitgever in SQL Server Management Studio, vouw het serverknooppunt uit en vouw vervolgens de map Replicatie uit.
Klik in de map Lokale publicaties met de rechtermuisknop op AdvWorksProductTrans en selecteer vervolgens Status van momentopnameagent weergeven:
De huidige status van de momentopnameagenttaak voor de publicatie wordt weergegeven. Controleer of de momentopnametaak is geslaagd voordat u verdergaat met de volgende sectie.
Als uw SQL Server Agent niet werd uitgevoerd toen u de publicatie maakte, ziet u dat de momentopnameagent nooit is uitgevoerd wanneer u de status van de momentopnameagent voor uw publicatie controleert. Als dat het geval is, selecteert u Starten om de momentopnameagent te starten:
Als u hier een fout ziet, raadpleegt u Problemen met momentopnameagent oplossen.
Voeg de login van de distributieagent toe aan de PAL
Maak verbinding met de uitgever in SQL Server Management Studio, vouw het serverknooppunt uit en vouw vervolgens de map Replicatie uit.
Klik in de map Lokale publicaties met de rechtermuisknop op AdvWorksProductTrans en selecteer Eigenschappen. Het dialoogvenster Publicatie-eigenschappen wordt weergegeven.
a. Selecteer de pagina Publicatietoegangslijst en selecteer Toevoegen.
b. Selecteer in het dialoogvenster <Publisher_Machine_Name>\repl_distribution en selecteer OK.
Zie De concepten voor replicatieprogrammering voor meer informatie.
Een abonnement maken op de transactionele publicatie
In deze sectie voegt u een abonnee toe aan de publicatie die u eerder hebt gemaakt. In deze zelfstudie wordt gebruikgemaakt van een externe abonnee (NODE2\SQL2016), maar u kunt ook lokaal een abonnement toevoegen aan de uitgever.
Het abonnement maken
Maak verbinding met de uitgever in SQL Server Management Studio, vouw het serverknooppunt uit en vouw vervolgens de map Replicatie uit.
Klik in de map Lokale publicaties met de rechtermuisknop op de publicatie AdvWorksProductTrans en selecteer vervolgens Nieuwe abonnementen. De wizard voor nieuwe abonnementen wordt gestart:
Selecteer Op de pagina PublicatieadvWorksProductTrans en selecteer vervolgens Volgende:
Selecteer op de pagina 'Locatie van Distributieagent' 'Alle agents uitvoeren bij de distributeur' en klik vervolgens op 'Volgende'. Zie Abonneren op publicaties voor meer informatie over pull- en pushabonnementen.
Als op de pagina Abonnees de naam van het abonnee-exemplaar niet wordt weergegeven, selecteert u Abonnee toevoegen en selecteert u Vervolgens SQL Server-abonnee toevoegen in de vervolgkeuzelijst. Met deze stap opent u het dialoogvenster Verbinding maken met server . Voer de naam van het abonnee-exemplaar in en selecteer Verbinding maken.
Nadat de abonnee is toegevoegd, schakelt u het selectievakje in naast de instantienaam van uw abonnee. Selecteer vervolgens Nieuwe database onder Abonnementsdatabase.
Het dialoogvenster Nieuwe database wordt weergegeven. Voer ProductReplica in het vak Databasenaam in, selecteer OK en selecteer vervolgens Volgende:
Selecteer op de pagina Beveiliging van distributieagent de knop met het beletselteken (...). Voer <Publisher_Machine_Name\repl_distribution> in het vak Procesaccount in, voer het wachtwoord voor dit account in, selecteer OK en selecteer vervolgens Volgende.
Selecteer Voltooien om de standaardwaarden op de resterende pagina's te accepteren en voltooi de wizard.
Databasemachtigingen instellen bij de abonnee
Maak verbinding met de abonnee in SQL Server Management Studio. Vouw Beveiliging uit, klik met de rechtermuisknop op Aanmeldingen en selecteer Vervolgens Nieuwe aanmelding.
a. Selecteer zoeken op de pagina Algemeen onder Aanmeldingsnaamde optie Zoeken en voeg de aanmelding toe voor <Subscriber_Machine_Name>\repl_distribution.
b. Op de pagina Gebruikerstoewijzingen geeft u de login db_owner lidmaatschap voor de ProductReplica-database.
Selecteer OK om het dialoogvenster Nieuwe aanmelding te sluiten.
De synchronisatiestatus van het abonnement weergeven
Maak verbinding met de uitgever in SQL Server Management Studio. Vouw het serverknooppunt uit en vouw vervolgens de map Replicatie uit.
Vouw in de map Lokale publicaties de publicatie AdvWorksProductTrans uit, klik met de rechtermuisknop op het abonnement in de ProductReplica-database en selecteer Synchronisatiestatus weergeven. De huidige synchronisatiestatus van het abonnement wordt weergegeven:
Als het abonnement niet zichtbaar is onder AdvWorksProductTrans, selecteert u de F5-sleutel om de lijst te vernieuwen.
Voor meer informatie, zie:
- Een abonnement initialiseren met een momentopname
- Een push-abonnement maken
- Abonneren op publicaties
Replicatielatentie meten
In deze sectie gebruikt u tracertokens om te controleren of wijzigingen worden gerepliceerd naar de abonnee en om de latentie te bepalen. Latentie is de tijd die nodig is voordat een wijziging die bij de uitgever is aangebracht, zichtbaar is voor de abonnee.
Maak verbinding met de uitgever in SQL Server Management Studio. Vouw het serverknooppunt uit, klik met de rechtermuisknop op de map Replicatie en selecteer Replicatiecontrole starten:
Klap een uitgeversgroep uit in het linkerdeelvenster, klap de uitgeverinstantie vervolgens uit en selecteer de publicatie AdvWorksProductTrans.
a. Selecteer het tabblad Tracer-tokens .
b. Selecteer Tracer invoegen.
c. Bekijk de verstreken tijd voor het tracertoken in de volgende kolommen: Publisher to Distributor, Distributor to Subscriber, Total Latency. Een waarde van In behandeling geeft aan dat het token een bepaald punt nog niet heeft bereikt.
Voor meer informatie, zie:
- Latentie meten en verbindingen valideren voor transactionele replicatie
- Fouten vinden met de transactionele replicatieagents