Share via


Zelfstudie: Replicatie configureren tussen twee volledig verbonden servers (transactioneel)

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 AdventureWorks2025 voorbeelddatabase. 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

  1. Maak verbinding met de uitgever in SQL Server Management Studio en vouw vervolgens het serverknooppunt uit.

  2. 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.

  3. 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:

    Selecties voor het starten van de wizard Nieuwe Publicatie

  4. Selecteer op de pagina Publicatiedatabase de optie AdventureWorks2025En selecteer vervolgens Volgende.

  5. Selecteer op de pagina Publicatietype de optie Transactionele publicatie en selecteer vervolgens Volgende:

    Pagina Publicatietype met het publicatietype geselecteerd

  6. 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.

    Pagina Artikelen, met geselecteerde artikelen om te publiceren

  7. Selecteer Toevoegen op de pagina Rijen filteren.

  8. 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  
    

    De pagina Filtertabelstromen en het dialoogvenster Filter toevoegen

  9. Selecteer OK en klik vervolgens op Volgende.

  10. Schakel het selectievakje Een momentopname maken onmiddellijk in en houd de momentopname beschikbaar om abonnementen te initialiseren en selecteer Volgende:

    Pagina Momentopnameagent met selectievakje ingeschakeld

  11. 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.

    De pagina Agentbeveiliging en het dialoogvenster Agentbeveiliging momentopnamen

  12. Herhaal de vorige stap om < in te stellen> als het procesaccount voor de logboeklezeragent. Selecteer vervolgens OK.

    Dialoogvenster voor Logboeklezeragentbeveiliging en pagina voor Agentbeveiliging

  13. Voer in op de pagina Wizard voltooienAdvWorksProductTrans in het vak Publicatienaam en selecteer Voltooien:

    Pagina 'De wizard voltooien' met de naam van de publicatie

  14. 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.

Waarschuwing dat de momentopnameagent niet kan worden gestart

De status van het genereren van momentopnamen weergeven

  1. Maak verbinding met de uitgever in SQL Server Management Studio, vouw het serverknooppunt uit en vouw vervolgens de map Replicatie uit.

  2. Klik in de map Lokale publicaties met de rechtermuisknop op AdvWorksProductTrans en selecteer vervolgens Status van momentopnameagent weergeven:
    Opdracht in het snelmenu voor het weergeven van de status van de momentopnameagent

  3. 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

  1. Maak verbinding met de uitgever in SQL Server Management Studio, vouw het serverknooppunt uit en vouw vervolgens de map Replicatie uit.

  2. 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.

    Selecties voor het toevoegen van een inlog aan de toegangslijst van de publicatie

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

  1. Maak verbinding met de uitgever in SQL Server Management Studio, vouw het serverknooppunt uit en vouw vervolgens de map Replicatie uit.

  2. 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:

    Selecties om de nieuwe abonnementswizard te starten

  3. Selecteer Op de pagina PublicatieadvWorksProductTrans en selecteer vervolgens Volgende:

    Publicatiepagina met geselecteerde publicatie

  4. 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.

    De pagina Locatie van distributieagent met de optie geselecteerd om alle agents bij de distributeur uit te voeren

  5. 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.

    Pagina Abonnees met selecties voor het toevoegen van een abonneeserver

  6. Het dialoogvenster Nieuwe database wordt weergegeven. Voer ProductReplica in het vak Databasenaam in, selecteer OK en selecteer vervolgens Volgende:

    Een naam invoeren voor de abonnementsdatabase

  7. 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.

    Informatie over distributieaccounts in het dialoogvenster Beveiliging van distributieagent

  8. Selecteer Voltooien om de standaardwaarden op de resterende pagina's te accepteren en voltooi de wizard.

Databasemachtigingen instellen bij de abonnee

  1. 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.

    Selecties voor het configureren van de inloggen bij de abonnee

  2. Selecteer OK om het dialoogvenster Nieuwe aanmelding te sluiten.

De synchronisatiestatus van het abonnement weergeven

  1. Maak verbinding met de uitgever in SQL Server Management Studio. Vouw het serverknooppunt uit en vouw vervolgens de map Replicatie uit.

  2. 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:

    Selecties voor het openen van het dialoogvenster Synchronisatiestatus weergeven

  3. Als het abonnement niet zichtbaar is onder AdvWorksProductTrans, selecteert u de F5-sleutel om de lijst te vernieuwen.

Voor meer informatie, zie:

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.

  1. 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:

    Opdracht Replicatiecontrole starten in het snelmenu

  2. 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.

    Informatie voor het tracertoken

Voor meer informatie, zie:

Volgende stap