1. Inleiding tot SQL Server kopiëren

1.1 Wat is SQL Server Replicatie?

SQL Server Replicatie is een verzameling technologieën voor het kopiëren en distribueren van data en databaseobjecten van de ene database naar de andere, waarna de gegevens tussen de databases worden gesynchroniseerd om consistentie te waarborgen. Deze functie stelt u in staat om meerdere kopieën van uw data te creëren en te onderhouden op verschillende servers en locaties, waardoor de beschikbaarheid en betrouwbaarheid van de data gegarandeerd zijn.

1.2 Doel en voordelen van replicatie

SQL Server Replicatie vervult meerdere cruciale zakelijke behoeften en biedt aanzienlijke voordelen voor databasebeheer en gegevensdistributie:

  • Gegevensverdeling over locaties: Met replicatie kunt u gegevens delen tussen regionale kantoren of wereldwijde locaties, waardoor de operationele efficiëntie verbetert doordat lokale toegang tot de benodigde gegevens wordt gegarandeerd. Dit vermindert de netwerklatentie en zorgt voor betere prestaties voor geografisch verspreide gebruikers.
  • Hoge beschikbaarheid en rampenherstel: Door replica's van cruciale gegevens op meerdere servers te bewaren, biedt replicatie redundantie die bescherming biedt tegen hardwarestoringen en rampen. In geval van een storing van de primaire server kunnen de gerepliceerde kopieën als back-upbronnen dienen, waardoor de downtime en het gegevensverlies tot een minimum worden beperkt.
  • Load balancing en schaalbaarheid: Replicatie verdeelt leesbewerkingen over meerdere servers, waardoor wordt voorkomen dat één server een knelpunt vormt. Deze aanpak verbetert de systeemprestaties en zorgt ervoor dat uw infrastructuur horizontaal kan schalen naarmate de data- en gebruikersvraag toeneemt.
  • Realtime rapportage en analyse: Door rapportage- en analysequery's over te dragen naar gerepliceerde servers wordt de belasting van productiedatabases verminderd. Gebruikers kunnen complexe analytische query's uitvoeren op bijna realtime data zonder de operationele systemen te beïnvloeden, waardoor zowel de prestaties als de actualiteit van de data gewaarborgd blijven.
  • Gegevensintegratie en -consolidatie: Replicatie maakt het mogelijk om gegevens uit verschillende bronnen samen te voegen tot één geconsolideerd overzicht. Dit is met name waardevol voor organisaties met meerdere vestigingen die gegevens op het hoofdkantoor moeten samenvoegen, of voor het creëren van gecentraliseerde datawarehouses vanuit gedistribueerde operationele systemen.

2. SQL Server Replicatiearchitectuur en -componenten

SQL Server De replicatiearchitectuur bestaat uit verschillende onderling verbonden componenten die samenwerken om gegevens te distribueren en te synchroniseren binnen uw database-infrastructuur. In dit gedeelte worden de kerncomponenten besproken, waaronder uitgevers, distributeurs, abonnees, publicaties, artikelen, abonnementen en de agents die de gegevensstroom ertussen coördineren.

  • Uitgever: Een uitgever is een SQL Server Een instantie die een of meer databases host met gegevens die gerepliceerd moeten worden. Deze fungeert als de gezaghebbende bron in de replicatietopologie.
  • Distributeur: Een distributeur is een SQL Server Een instantie die de gegevensstroom tussen uitgevers en abonnees beheert. De distributeurinstantie host de distributiedatabase, waarin replicatiemetadata en transacties worden opgeslagen.
  • Abonnee: Een abonnee is een SQL Server Een instantie die gerepliceerde gegevens van uitgevers ontvangt en opslaat. Een enkele abonnee-instantie kan meerdere abonneedatabases hosten, die elk gegevens van verschillende publicaties ontvangen.
  • Publicatie: Een publicatie definieert welke gegevens worden gerepliceerd en hoe deze worden verspreid onder abonnees. Het groepeert gerelateerde artikelen en stelt de replicatiemethode vast die van toepassing is op alle daarin opgenomen objecten.
  • Artikel: Een artikel is de fundamentele bouwsteen van replicatie en vertegenwoordigt een individueel databaseobject dat naar abonnees wordt gedistribueerd.
  • Abonnement: Een abonnement legt de relatie vast tussen een publicatie en een abonnee, en definieert hoe en wanneer gegevens aan de bestemmingsdatabase worden geleverd.
  • agenten: Agenten zijn gespecialiseerde processen die het daadwerkelijke werk uitvoeren van het verplaatsen en synchroniseren van gegevens tussen replicatiecomponenten.

SQL Server Replicatiearchitectuur en -componenten

3. Soorten SQL Server kopiëren

SQL Server Het biedt verschillende replicatietypen, elk ontworpen voor specifieke scenario's voor gegevensdistributie en zakelijke vereisten. Inzicht in de kenmerken, voordelen en beperkingen van elk type is essentieel voor het kiezen van de juiste aanpak voor uw omgeving.

3.1 Snapshot-replicatie

Snapshotreplicatie maakt op een bepaald tijdstip een momentopname van de te publiceren gegevens en distribueert vervolgens een exacte, complete kopie naar de abonnees. Er wordt pas gecontroleerd op latere wijzigingen wanneer de volgende momentopname wordt gegenereerd. Snapshotreplicatie is de eenvoudigste vorm van replicatie en is daarom geschikt voor scenario's waarin gegevens zelden veranderen of waarin het acceptabel is dat de gegevens enigszins verouderd zijn.

Veelvoorkomende toepassingen zijn onder andere het verspreiden van referentiegegevens zoals prijslijsten of wisselkoersen die periodiek worden bijgewerkt, het leveren van initiële datasets voor datawarehouses en scenario's waarbij een volledige dataverversing de voorkeur heeft boven het bijhouden van individuele wijzigingen. Een bedrijf zou bijvoorbeeld snapshotreplicatie kunnen gebruiken om dagelijks bijgewerkte productcatalogi naar filiaalvestigingen te distribueren.

De belangrijkste voordelen van snapshotreplicatie zijn de eenvoud, de lage onderhoudskosten en de mogelijkheid om gegevens te repliceren zonder primaire sleutels. Er zijn echter ook aanzienlijke nadelen, zoals de grote impact van het genereren van snapshots vanwege tabelvergrendelingen, de hoge latentie tussen updates en de inefficiëntie bij grote datasets of gegevens die frequent veranderen. Alle wijzigingen die bij abonnees worden aangebracht, gaan verloren wanneer de volgende snapshot wordt toegepast.

3.2 Transactionele replicatie

Transactionele replicatie zorgt ervoor dat wijzigingen van de uitgever vrijwel in realtime bij abonnees terechtkomen door individuele transacties te repliceren zodra ze plaatsvinden. Het begint met een eerste momentopname om de basislijn vast te stellen, waarna het transactielogboek continu wordt gecontroleerd op wijzigingen in gepubliceerde artikelen en deze stapsgewijs aan abonnees worden doorgegeven.

Transactionele replicatie is ideaal voor server-naar-server-scenario's die een hoge doorvoer en lage latentie vereisen. Veelvoorkomende toepassingen zijn onder andere het verbeteren van de schaalbaarheid en beschikbaarheid door leesbewerkingen over te dragen naar abonneeservers, het ondersteunen van datawarehousing en rapportage met bijna realtime gegevens, het integreren van gegevens van meerdere locaties naar een centrale locatie en het overdragen van batchverwerking naar dedicated servers. Een e-commerceplatform kan bijvoorbeeld transactionele replicatie gebruiken om gesynchroniseerde voorraadgegevens in regionale databases te onderhouden.

De voordelen van transactionele replicatie zijn onder andere gegevensoverdracht met lage latentie, hoge doorvoer voor grote transactievolumes en de mogelijkheid om niet-gerepliceerde wijzigingen aan te brengen bij abonnees. Nadelen zijn de grotere complexiteit in vergelijking met snapshotreplicatie, de vereiste van primaire sleutels op gerepliceerde tabellen en de mogelijkheid dat de replicatie mislukt als er conflicten optreden, zoals schendingen van primaire sleutels bij abonnees.

3.3 Samenvoegingsreplicatie

Merge-replicatie is specifiek ontworpen voor omgevingen waar abonnees offline of met een onderbroken internetverbinding moeten werken en vervolgens wijzigingen synchroniseren wanneer er weer een verbinding beschikbaar is. Dit replicatietype maakt het mogelijk om gegevens onafhankelijk van elkaar te wijzigen bij zowel de uitgever als de abonnees, waarbij wijzigingen worden bijgehouden met behulp van triggers en metadatatabellen, en wijzigingen automatisch worden samengevoegd tijdens de synchronisatie.

Merge-replicatie is ontworpen voor mobiele applicaties en gedistribueerde serveromgevingen waar autonome wijzigingen plaatsvinden. Toepassingsvoorbeelden zijn onder andere verkoopautomatisering, waarbij mobiele gebruikers offline werken en later synchroniseren, kassasystemen die onafhankelijk werken en periodiek gegevens consolideren, en gedistribueerde applicaties waarbij meerdere locaties gedeelde gegevens moeten bijwerken. Een winkelketen zou bijvoorbeeld merge-replicatie kunnen gebruiken zodat elke winkel de lokale voorraad kan beheren en tegelijkertijd kan synchroniseren met het centrale magazijnsysteem.

De voordelen van merge-replicatie zijn onder andere ondersteuning voor autonome abonnees die wijzigingen kunnen aanbrengen, tolerantie voor intermitterende netwerkverbindingen en flexibele conflictoplossing. Nadelen zijn onder andere een grotere complexiteit bij de installatie en het onderhoud, prestatieverlies door het bijhouden van metadata en triggers, het toevoegen van unieke identificatiekolommen aan tabellen en de mogelijkheid van conflicten die beheer en oplossing vereisen.

3.4 Peer-to-peer replicatie

Peer-to-peer-replicatie is gebaseerd op transactionele replicatie en maakt het mogelijk dat meerdere serverinstanties (drie of meer knooppunten) als gelijkwaardige peers fungeren, waarbij elk knooppunt tegelijkertijd als uitgever en abonnee optreedt. In deze topologie bewaren alle knooppunten identieke kopieën van de gegevens en kunnen ze zowel lees- als schrijfbewerkingen uitvoeren, wat een werkelijk gedistribueerde multi-masteromgeving oplevert.

Peer-to-peer-replicatie is geschikt voor toepassingen die schaalbare leesbewerkingen en hoge beschikbaarheid vereisen. Gebruiksscenario's zijn onder andere webapplicaties die catalogusquery's over meerdere knooppunten verdelen met behoud van consistente gegevens, scenario's die onderhoud of upgrades zonder downtime vereisen door knooppunten afzonderlijk offline te halen, en wereldwijde applicaties met datacenters in verschillende regio's. Een wereldwijde softwareondersteuningsorganisatie zou bijvoorbeeld peer-to-peer-replicatie kunnen gebruiken tussen vestigingen in verschillende tijdzones, zodat elke locatie lokaal toegang heeft tot actuele gegevens.

De voordelen van peer-to-peer-replicatie zijn onder andere verbeterde leesprestaties door schaalvergroting, hogere beschikbaarheid met meerdere actieve knooppunten en bijna realtime gegevensconsistentie. Nadelen zijn de vereiste van de Enterprise Edition, de complexiteit van het beheren van multi-node-topologieën, de noodzaak van een identiek schema en identieke gegevens op alle knooppunten, en de mogelijkheid van conflicten wanneer schrijfbewerkingen niet correct zijn gepartitioneerd.

3.5 Bidirectionele replicatie

Bidirectionele replicatie is een specifieke transactionele replicatietopologie die speciaal is ontworpen voor omgevingen met twee servers, waarbij beide servers wijzigingen met elkaar moeten uitwisselen. Elke server publiceert gegevens en abonneert zich op dezelfde gegevens van de andere server, waardoor een eenvoudige tweewegsynchronisatiestroom ontstaat. Hoewel peer-to-peer-replicatie ook twee knooppunten kan ondersteunen, biedt bidirectionele replicatie betere prestaties voor dit specifieke scenario.

Bidirectionele replicatie is geschikt voor scenario's die twee actieve servers met gesynchroniseerde gegevens vereisen, zoals actieve-actieve configuraties voor hoge beschikbaarheid of geografisch verspreide applicaties waarbij elke locatie lokale schrijftoegang nodig heeft. De topologie vereist een zorgvuldig applicatieontwerp om gegevensupdates te scheiden en conflicten te voorkomen.

De voordelen zijn onder andere geoptimaliseerde prestaties voor scenario's met twee servers, een eenvoudigere configuratie in vergelijking met peer-to-peer-replicatie, bijna realtime synchronisatie en lagere overhead dan merge-replicatie. Nadelen zijn de beperking tot precies twee servers, het ontbreken van ingebouwde conflictoplossing waardoor een zorgvuldig applicatieontwerp nodig is, en de noodzaak van de juiste partitioneringsstrategieën om conflicten te voorkomen.

3.6 Bijwerkbare abonnementen

Updatebare abonnementen breiden transactionele replicatie uit, waardoor abonnees af en toe wijzigingen kunnen aanbrengen in gerepliceerde gegevens die vervolgens worden doorgegeven aan de uitgever en andere abonnees. In tegenstelling tot samenvoegingsreplicatie of peer-to-peer-topologieën, die zijn ontworpen voor frequente bidirectionele updates, zijn updatebare abonnementen bedoeld voor scenario's waarbij de primaire gegevensstroom eenrichtingsverkeer is (van uitgever naar abonnees), maar abonnees af en toe correcties of updates moeten uitvoeren.

Updatebare abonnementen zijn geschikt voor scenario's waarbij de meeste updates bij de uitgever plaatsvinden, maar abonnees af en toe ook updates moeten doorvoeren, zoals bijvoorbeeld veldkantoren die voornamelijk gegevens lezen maar ook lokale correcties of updates moeten aanbrengen. De topologie vereist een zorgvuldige planning om conflicten te minimaliseren en de consistentie van de gegevens te waarborgen.

De belangrijkste voordelen zijn onder andere de mogelijkheid om beperkte schrijfbewerkingen uit te voeren bij abonnees, terwijl de prestatiekenmerken van transactionele replicatie behouden blijven. Nadelen zijn onder andere de toegenomen complexiteit, de kans op conflicten die moeten worden opgelost, de prestatievermindering door het tweefasencommitprotocol in de modus voor directe updates, en de vereiste dat alle gerepliceerde tabellen primaire sleutels hebben.

3.7 Vergelijking van verschillende soorten replicaties

Replicatietype Update tijd Aantal uitgevers Aanwijzingen Gebruik scenario's
Momentopname Punt in de tijd 1 Eénrichtingsverkeer (Uitgever → Abonnees) Referentiegegevens die zelden veranderen (prijslijsten, wisselkoersen)
transactionele Dichtbij werkelijke tijd 1 Eénrichtingsverkeer (Uitgever → Abonnees) Scenario's met hoge doorvoer (voorraadbeheer in e-commerce, datawarehousing, rapportage)
gaan Periodiek (wanneer aangesloten) 1 Bidirectioneel (Uitgever ↔ Abonnees) Mobiele applicaties, offline medewerkers (verkoopautomatisering, buitendienst)
Peer-to-Peer Dichtbij werkelijke tijd Meerdere (3 of meer) Bidirectioneel (alle knooppunten) Wereldwijde implementaties met meerdere datacenters (kantoren over de hele wereld met lokale lees- en schrijftoegang)
bidirectionele Dichtbij werkelijke tijd 2 Bidirectioneel (beide servers) Actieve-actieve configuraties met twee datacenters (hoge beschikbaarheid op twee locaties)
Bijwerkbare abonnementen Dichtbij werkelijke tijd 1 Voornamelijk éénrichtingsverkeer (af en toe updates in omgekeerde richting) Filialen die voornamelijk lezen, maar af en toe ook bijwerken (lokale correcties).

4. Instellen SQL Server kopiëren

4.1 Voorwaarden en vereisten

4.1.1 Softwarevereisten

SQL Server replicatie vereist compatibele SQL Server versies voor alle deelnemers in de topologie. De versie van de distributeur moet gelijk zijn aan of hoger zijn dan de versie van de uitgever, en de versie van de abonnee mag maximaal twee versies van de uitgever verschillen. Bijvoorbeeld: SQL Server De uitgever van 2016 kan dit repliceren naar SQL Server abonnees van 2012, 2014, 2016, 2017 of 2019.

4.1.2 Toestemmingsvereisten

Voor het configureren van replicatie zijn specifieke machtigingen op elk niveau vereist. Gebruikers met de vaste serverrol sysadmin kunnen alle replicatieconfiguratietaken uitvoeren. Voor meer gedetailleerde machtigingen moeten gebruikers lid zijn van de databaserol db_owner voor zowel de uitgever- als de abonneedatabase.

4.2 Stap 1: Distributie configureren

Het configureren van de distributie is de eerste stap in de installatie. SQL Server replicatie.

Om de distributie te configureren met SQL Server Beheer Studio:

  1. Maak verbinding met de SQL Server bijvoorbeeld in SQL Server Beheer Studio.
  2. Klik in Object Explorer met de rechtermuisknop op de kopiëren map en selecteer Configureer distributie.
    Start met het configureren van de distributie in SQL Server Replicatie.
  3. Klik in de wizard 'Distributie configureren' op Volgende op de welkomstpagina.
    Configuratiewizard voor distributie
  4. Op de Distributeur Kies op deze pagina een van de volgende opties op basis van uw topologievereisten:
    • Lokale distributeurSelecteer “ServerName zal als zijn eigen distributeur fungeren; SQL Server Er wordt een distributiedatabase en logboek aangemaakt als u wilt dat de uitgever en distributeur op dezelfde instantie draaien (de huidige instantie). Deze configuratie is eenvoudiger in te stellen en geschikt voor kleinere omgevingen of wanneer netwerklatentie tussen uitgever en distributeur problemen zou veroorzaken.
    • Distributeur op afstandSelecteer “Gebruik de volgende server als distributeur” en klik Toevoegen U kunt een externe distributieserver specificeren als u de distributieverwerking wilt uitbesteden aan een aparte instantie. Deze configuratie verbetert de prestaties bij grote replicatievolumes door de werklast over meerdere servers te verdelen. U moet de naam van de externe distributeur opgeven en een wachtwoord specificeren dat de uitgever gebruikt om verbinding te maken met de distributeur.

    Configureer de distributeur in SQL Server kopiëren

  5. Klik op het tabblad Volgende Om de locatie van de snapshotmap te specificeren, gebruikt u een UNC-pad (zoals \\servernaam\share\map) in plaats van een lokaal pad om ervoor te zorgen dat de map via het netwerk toegankelijk is.
    Configureer de snapshotmap in de wizard 'Distributie configureren'.
  6. Op de Distributiedatabase Op deze pagina kunt u de standaardnaam van de distributiedatabase accepteren (meestal "distribution") of een aangepaste naam opgeven, en vervolgens de locaties voor de data- en logbestanden configureren.
    Configureer de distributiedatabase in SQL Server kopiëren
  7. Op de Uitgevers Controleer op deze pagina of de huidige server is ingeschakeld als uitgever. Als u de huidige server configureert als distributeur, kunt u extra uitgevers toevoegen die deze distributeur zullen gebruiken.
    Configureer de uitgevers in SQL Server kopiëren
  8. Bekijk de acties van de wizard en klik. Voltooien Om de distributie te configureren.
    Voltooi de configuratie in SQL Server kopiëren

4.3 Stap 2: Publicatie maken

Na het configureren van de distributie is de volgende stap het maken van een publicatie die definieert welke dataobjecten naar abonnees worden gerepliceerd.

Om een ​​publicatie te maken met behulp van SQL Server Beheer Studio:

  1. Vouw in Object Explorer de kopiëren map.
  2. Klik met de rechtermuisknop Lokale publicaties en selecteer Nieuwe publicatie.
  3. De wizard voor nieuwe publicaties start; klik Volgende op de welkomstpagina.
  4. Selecteer de database die u wilt publiceren uit de Publicatiedatabase pagina. Dit maakt publiceren op de geselecteerde database automatisch mogelijk.
  5. Op de Publicatietype selecteer op de pagina het replicatietype: Momentopname publicatieTransactionele publicatie, Peer-to-peer-publicatieof Publicatie samenvoegen.
  6. Op de Artikelen pagina, vouw de uit Tabellen knooppunt en selecteer tabellen die als artikelen moeten worden opgenomen.
  7. Optioneel uitbreiden Opgeslagen proceduresWeergaves, of andere objecttypen om extra artikelen op te nemen.
  8. Klik op het tabblad Artikeleigenschappen om filtering of andere artikelspecifieke instellingen te configureren.
  9. Op de Tabelrijen filteren Voeg op de pagina indien nodig rijfilters toe.
  10. Op de Snapshot Agent Kies op deze pagina wanneer u de momentopname wilt maken: direct, op een specifiek tijdstip of volgens een schema.
  11. Op de Agentbeveiliging Geef op deze pagina de beveiligingscontext voor de Snapshot Agent op.
  12. Op de Tovenaarsacties 4040 hand404040 details hand4040 hand 3 details hand40 hand40 hand details details details details hand 3 Maak de publicatie aan.
  13. Geef een publicatienaam op en klik Voltooien.
    Maak een nieuwe publicatie aan in SQL Server kopiëren

4.4 Stap 3: Abonnement aanmaken

Na het aanmaken van een publicatie is de volgende stap het aanmaken van abonnementen die de publicatie koppelen aan abonneedatabases.

Abonnementen kunnen push-abonnementen zijn (beheerd door de distributeur) of pull-abonnementen (beheerd door de abonnee). De belangrijkste verschillen zitten in waar u het abonnement aanmaakt en welke agentlocatie u selecteert, wat de actie van het abonnement bepaalt (push of pull).

Voor push-abonnementen (beheerd door de distributeur):

  1. Op de uitgever server, uitbreiden kopiëren -> Lokale publicaties.
  2. Klik met de rechtermuisknop op de publicatie en selecteer Nieuwe abonnementen.

Voor Pull-abonnement (beheerd door de abonnee):

  1. Op de abonnee server, uitbreiden kopiëren, klik met de rechtermuisknop Lokale abonnementenEn Select Nieuwe abonnementen.
  2. Op de Publicatie pagina op Find SQL Server Uitgever en verbinding maken met de server van de uitgever.

Dezelfde stappen in de wizard gelden voor beide abonnementstypen:

  1. Klik in de wizard voor nieuwe abonnementen op Volgende op de welkomstpagina.
  2. Selecteer de publicatie en klik Volgende.
  3. Op de Locatie van de distributieagent op de pagina de locatie van de agent kiezen:
    • Push-abonnementSelecteer "Alle agents bij de distributeur uitvoeren" - de distributeur zal de wijzigingen naar de abonnees doorsturen.
    • Abonnement optrekkenSelecteer "Elke agent bij zijn abonnee uitvoeren" - elke abonnee ontvangt de wijzigingen van de distributeur.
  4. Op de abonnees selecteer de bestaande abonnementsservers op de pagina of klik Voeg Subscriber om nieuwe toe te voegen.
  5. Selecteer voor elke abonnee de gewenste database of maak een nieuwe database aan. Opmerking: De abonnementsdatabase moet verschillen van de uitgeversdatabase, zelfs als dezelfde database wordt gebruikt. SQL Server aanleg.
  6. Op de Beveiliging van distributieagenten Klik op de pagina op de knop 'Eigenschappen' voor elk abonnement om de beveiligingscontext te configureren.
  7. Op de Synchronisatieschema Kies op deze pagina voor continue synchronisatie of geplande synchronisatie.
  8. Op de Abonnementen initialiseren 4040 hand404040 details hand4040 hand 3 details hand40 hand40 hand details details details details hand 3 Per direct om te initialiseren tijdens het voltooien van de wizard of Bij de eerste synchronisatie.
  9. Controleer de acties van de wizard en klik. Voltooien.
    Maak een nieuw abonnement aan in SQL Server Replicatie met de wizard voor nieuwe abonnementen.

5. Monitoring en beheer SQL Server kopiëren

5.1 Replicatie bewaken met Replication Monitor

Om Replication Monitor te starten:

  1. In SQL Server Management Studio, uitbreiden kopiëren in Objectverkenner.
  2. Klik met de rechtermuisknop kopiëren en selecteer Start replicatiemonitor.
  3. Als er geen uitgevers geregistreerd zijn, klik dan hier. Uitgever toevoegen in het linkerdeelvenster.
  4. Kies Toevoegen SQL Server Uitgever en verbinding maken met de server van de uitgever.
  5. De uitgever verschijnt in het linkerpaneel met uitklapbare knooppunten voor publicaties en abonnementen.

Gebruik de replicatiemonitor om de SQL Server Replicatie.

5.2 Prestatiebewaking

5.2.1 Monitorlatentie

Replicatielatentie is de tijdsvertraging tussen het moment dat een wijziging plaatsvindt bij de uitgever en het moment dat die wijziging wordt toegepast bij de abonnee. Monitor de latentie om ervoor te zorgen dat de gegevens actueel blijven en voldoen aan de bedrijfsvereisten.

Gebruik Replication Monitor om latentiemetingen te bekijken op het tabblad Alle abonnementen. De kolom Latentie toont de gemiddelde latentie in seconden. Voor transactionele replicatie bieden tracer-tokens nauwkeurige latentiemetingen door markeringstransacties in te voegen die worden bijgehouden in de replicatiepipeline.

Om tracer-tokens te gebruiken:

  1. Selecteer in Replication Monitor een transactionele publicatie.
  2. Klik op de knop Tracer-tokens .
  3. Klik op het tabblad Tracer invoegen een markertransactie injecteren.
  4. Volg het token tijdens de reis van uitgever naar distributeur naar abonnee.
  5. Bekijk de benodigde tijd voor elk segment om knelpunten te identificeren.

Voeg een tracer-token toe om nauwkeurigere latentiemetingen te verkrijgen. SQL Server kopiëren

5.2.2 Doorvoer bewaken

Doorvoer meet het volume aan gerepliceerde data over een bepaalde tijd, meestal uitgedrukt in transacties per seconde of commando's per seconde. Monitor de doorvoer om ervoor te zorgen dat de replicatie gelijke tred kan houden met de activiteit van de uitgever.

Hoewel Replication Monitor een basisstatus van de synchronisatie weergeeft, zijn de leveringssnelheid en gedetailleerde doorvoerstatistieken niet zichtbaar in de grafische gebruikersinterface. Gebruik T-SQL-query's op de distributiedatabase om de doorvoer te bewaken:

USE distribution
GO

-- Direct join to avoid subquery
SELECT TOP 20
    h.time AS [Time],
    a.name AS [Agent Name],
    h.runstatus AS [Status],
    h.delivered_transactions AS [Delivered Transactions],
    h.delivered_commands AS [Delivered Commands],
    h.delivery_rate AS [Delivery Rate (commands/sec)],
    h.delivery_latency AS [Delivery Latency (ms)],
    h.comments AS [Comments]
FROM MSdistribution_history h
JOIN MSdistribution_agents a ON h.agent_id = a.id
WHERE a.name LIKE '%MyPublication2%'
AND h.runstatus IN (2, 3, 4, 6)
ORDER BY h.time DESC
GO

Statuscodes: 1 = Start, 2 = Bezig, 3 = Geslaagd, 4 = Inactief, 5 = Opnieuw proberen, 6 = Mislukt. Vergelijk de leveringssnelheid met de transactiesnelheid van de uitgever om situaties te identificeren waarin de replicatie achterloopt. Prestatiemeters in Windows Prestatiemeter Geef aanvullende doorvoerstatistieken op voor elke replicatieagent.

5.2.3 Kn knelpunten identificeren

Replicatieknelpunten kunnen op meerdere punten in de topologie voorkomen. Bij de uitgever kunnen een te lange tijd voor het genereren van snapshots of vertragingen bij de Log Reader Agent wijzen op resourcebeperkingen. Monitor het CPU-, geheugen- en schijfgebruik op de uitgever tijdens replicatieactiviteiten.

Controleer bij de distributeur of er zich transacties ophopen in de distributiedatabase. Een groot aantal onverwerkte opdrachten wijst erop dat de distributeur de levering niet kan bijhouden. Monitor de serverbronnen van de distributeur en overweeg het gebruik van een dedicated externe distributeur voor scenario's met een hoog volume.

Controleer niet-gedistribueerde opdrachten om de prestatieknelpunten te vinden in SQL Server kopiëren

Bij de abonnee kan een trage verwerking van wijzigingen het gevolg zijn van onvoldoende resources, ontbrekende indexen of beperkingen die invoegbewerkingen vertragen. Monitor het resourcegebruik en de queryprestaties van de abonnee wanneer de distributieagent actief is. Beperkingen in de netwerkbandbreedte tussen componenten kunnen ook knelpunten veroorzaken, met name bij grote hoeveelheden data.

5.3 Replicatieagenten beheren

5.3.1 Agenten starten en stoppen

Om een ​​replicatieagent te starten of te stoppen:

  1. In SQL Server Management Studio, uitbreiden SQL Server Agent -> Werken bij.
  2. Zoek de taak van de replicatieagent (de naam bevat meestal de publicatie- en abonnementsgegevens).
  3. Klik met de rechtermuisknop op de taak en selecteer Start baan or Stop baan.

Start of stop een replicatieagent in SQL Server kopiëren

5.3.2 Agentprofielen configureren

Agentprofielen bevatten parameterreeksen die het gedrag van de agent bepalen. SQL Server Het biedt standaardprofielen die geoptimaliseerd zijn voor veelvoorkomende scenario's, en u kunt aangepaste profielen maken voor specifieke behoeften.

Om agentprofielen te wijzigen:

  1. Vouw in Object Explorer het volgende uit: kopiëren.
  2. Klik met de rechtermuisknop kopiëren en selecteer Distributeur eigenschappen.
  3. Klik op de knop Profielstandaarden .
  4. Selecteer een agenttype (Snapshot, Log Reader, Distribution of Merge) uit het keuzemenu.
  5. Selecteer een profiel en klik Aanbod om parameterwaarden te bekijken.
  6. Klik op het tabblad Nieuw profiel Een aangepast profiel maken op basis van een bestaand profiel.
  7. Wijzig de parameters naar wens en klik. OK.

Configureer het agentprofiel

Wijs een profiel toe aan een agent door de abonnementsinstellingen te bewerken en het gewenste profiel te selecteren in het keuzemenu 'Agentprofiel'.

5.3.3 Agentparameters en -instellingen

Agentparameters verfijnen de prestaties en het gedrag. Belangrijke parameters voor de distributieagent zijn onder andere CommitBatchSize (aantal transacties per commit), CommitBatchThreshold (aantal commando's vóór commit), SubscriptionStreams (parallelle verbindingen voor snellere levering) en QueryTimeout (time-out voor commando's).

Voor de Log Reader Agent zijn belangrijke parameters onder andere ReadBatchSize (aantal transacties dat per scan wordt gelezen), ReadBatchThreshold (aantal opdrachten vóór aflevering) en PollingInterval (vertraging tussen logscans). Pas deze parameters aan op basis van het transactievolume en de latentievereisten.

Configureer de agenteigenschappen

5.4 Overwegingen met betrekking tot back-up en herstel

Het maken van back-ups van databases die bij replicatie betrokken zijn, vereist speciale aandacht. Voor de uitgeverdatabase zijn regelmatige volledige back-ups en back-ups van het transactielogboek essentieel. Markeer de databaseback-up voor replicatieondersteuning door de optie WITH REPLICATION te gebruiken bij het maken van back-ups van databases in transactionele replicatie. Maak regelmatig back-ups van de distributiedatabase om de replicatieconfiguratie te beschermen.

Bij het herstellen van een uitgeversdatabase naar dezelfde server met dezelfde naam, gebruikt u de optie WITH KEEP_REPLICATION om de replicatiestatus te behouden. Deze optie zorgt ervoor dat transacties die nog niet door de Log Reader Agent zijn verwerkt, gemarkeerd blijven voor replicatie, waardoor de replicatie automatisch kan worden voortgezet zonder dat abonnementen opnieuw hoeven te worden geïnitialiseerd.

In rampenherstelscenario's waarbij back-ups niet beschikbaar of beschadigd zijn, of waarbij de databasebestanden onbruikbaar zijn, kunnen gespecialiseerde hersteltools nodig zijn. DataNumen SQL Recovery Kan gegevens extraheren uit beschadigde of ontoegankelijke MDF- en NDF-bestanden, wat een laatste redmiddel biedt wanneer standaard herstelprocedures falen.

Voor meer details over SQL Server back-up, zie onze uitgebreide gids.

6. Veelgestelde vragen (FAQ)

V: Wat is het verschil tussen snapshot-replicatie en transactionele replicatie?

A: Snapshotreplicatie maakt een volledige kopie van de gegevens op een specifiek moment en past deze toe op de abonnee. Dit is geschikt voor gegevens die zelden veranderen. Transactionele replicatie begint met een initiële snapshot en repliceert vervolgens continu individuele transacties zodra deze plaatsvinden. Dit zorgt voor bijna realtime synchronisatie van gegevens die frequent veranderen.

V: Kan ik repliceren tussen verschillende SQL Server versies?

A: Ja, SQL Server Replicatie ondersteunt versiecompatibiliteit binnen een beperkt bereik. De versie van de distributeur moet gelijk zijn aan of hoger zijn dan de versie van de uitgever, en de abonnee mag maximaal twee versies van de uitgever verwijderd zijn. Bijvoorbeeld, als de uitgever... SQL Server In 2016 kan de abonnee zijn SQL Server 2012, 2014, 2016, 2017 of 2019.

V: Hoe ga ik om met conflicten bij het samenvoegen van replicaties?

A: Merge-replicatie biedt ingebouwde mechanismen voor conflictdetectie en -oplossing. U kunt conflictoplossers configureren op artikelniveau, waarbij u kunt kiezen uit ingebouwde oplossers of aangepaste conflictoplossers kunt implementeren. Conflicten worden doorgaans opgelost met behulp van prioriteits- of tijdstempelgebaseerde methoden, met de mogelijkheid om conflicten te loggen voor handmatige beoordeling.

V: Wat zijn de gevolgen van replicatie voor de prestaties?

A: Replicatie heeft op verschillende manieren invloed op de prestaties: de uitgever ondervindt overhead door het bijhouden van wijzigingen en het genereren van momentopnamen, de distributeur gebruikt resources om transacties op te slaan en door te sturen, en er wordt netwerkbandbreedte verbruikt tijdens de gegevensoverdracht. De impact varieert per replicatietype: momentopname-replicatie veroorzaakt periodieke pieken met een hoge impact, terwijl transactionele replicatie een consistentere maar continue belasting handhaaft.

V: Hoe beveilig ik mijn replicatietopologie?

A: Beveilig uw replicatietopologie door een aantal best practices toe te passen: gebruik Windows-verificatie of sterke SQL Server authenticatie, versleutel verbindingen met TLS, beveilig de snapshotmap met de juiste methoden. NTFS Beheer de machtigingen, configureer de Publication Access List (PAL) om de toegang te controleren, gebruik aparte serviceaccounts met minimale vereiste machtigingen voor elke replicatieagent en controleer regelmatig de beveiligingsinstellingen van de replicatie.

V: Kan ik gegevens repliceren naar Azure SQL Database?

A: Ja, u kunt gegevens repliceren naar Azure SQL Database met behulp van transactionele replicatie vanuit een on-premises omgeving. SQL Server of Azure SQL Managed Instance als uitgever en distributeur. Azure SQL Database kan fungeren als abonnee, maar niet als uitgever of distributeur. Samenvoegingsreplicatie en peer-to-peer-replicatie worden niet ondersteund met Azure SQL Database.

V: Hoe kan ik de replicatievertraging in de gaten houden?

A: Monitor de replicatievertraging met behulp van Replication Monitor in SQL Server Management Studio toont latentiemetingen voor elk abonnement. U kunt ook tabellen in de distributiedatabase opvragen, zoals MSdistribution_history en MSrepl_commands, prestatiemeters gebruiken die specifiek zijn voor replicatieagenten, of waarschuwingen instellen op basis van latentiedrempels om synchronisatievertragingen proactief te detecteren en aan te pakken.

V: Wat gebeurt er als een abonnee offline is?

A: Wanneer een abonnee offline is, hangt het gedrag af van het replicatietype. Bij transactionele replicatie worden transacties opgeslagen in de distributiedatabase totdat de abonnee weer online is, waarna de synchronisatie wordt hervat. Bij merge-replicatie worden wijzigingen aan beide zijden bijgehouden en samengevoegd wanneer de verbinding is hersteld. De instelling voor de bewaartermijn bepaalt hoe lang gegevens worden bewaard voordat ze opnieuw moeten worden geïnitialiseerd.

V: Hoe voeg ik nieuwe artikelen toe aan een bestaande publicatie?

A: Om nieuwe artikelen aan een bestaande publicatie toe te voegen, gebruikt u de volgende methode: SQL Server Gebruik Management Studio om de publicatie-eigenschappen te wijzigen en extra objecten te selecteren, of gebruik de opgeslagen procedure sp_addarticle. Nadat u artikelen hebt toegevoegd, genereert u een nieuwe momentopname en initialiseert u alle abonnementen opnieuw om ervoor te zorgen dat abonnees de nieuwe artikelen ontvangen. Afhankelijk van de publicatie-instellingen kan het nodig zijn om de abonnementen opnieuw te initialiseren. Sommige wijzigingen vereisen mogelijk een herinitialisatie van het abonnement.

V: Hoe verwijder ik replicatie uit een database?

A: Verwijder replicatie van een database door eerst alle abonnementen te verwijderen met sp_dropsubscription, vervolgens de publicatie te verwijderen met sp_droppublication en tot slot de publicatie op de database uit te schakelen met sp_replicationdboption. Als de server een distributeur is, schakelt u de distributie uit met sp_dropdistributor. Maak altijd een back-up van de databases voordat u de replicatieconfiguratie verwijdert.

Vraag: Wat is het verschil tussen: SQL Server Replicatie en AlwaysOn-beschikbaarheidsgroepen?

A: Replicatie is een oplossing voor gegevensdistributie en -integratie die op objectniveau werkt, terwijl Altijd aan-beschikbaarheidsgroepen Het is een oplossing voor hoge beschikbaarheid en noodherstel die op databaseniveau werkt.

7. Conclusie

SQL Server Replicatie biedt een robuust raamwerk voor het distribueren en synchroniseren van gegevens over meerdere databases en locaties. De technologie ondersteunt diverse scenario's door middel van verschillende replicatietypen.

De juiste replicatiestrategie kiezen hangt af van uw specifieke behoeften. Houd rekening met de frequentie van gegevenswijzigingen, latentievereisten, of abonnees updates moeten kunnen uitvoeren, netwerkkenmerken en de mate van autonomie van de abonnees. Snapshotreplicatie werkt het beste voor referentiegegevens die zelden veranderen en waarbij latentie geen kritische factor is. Transactionele replicatie is geschikt voor scenario's met een hoog volume die een lage latentie en voornamelijk eenrichtingsverkeer vereisen.

Kies voor merge-replicatie wanneer abonnees behoefte hebben aan autonome werking met offline mogelijkheden en bidirectionele synchronisatie. Implementeer peer-to-peer-replicatie voor load balancing van leesbewerkingen over meerdere actieve knooppunten met bijna realtime consistentie. Overweeg hybride benaderingen die meerdere replicatietypen combineren voor complexe scenario's met uiteenlopende vereisten.

Referenties


Over de auteur

Yuan Sheng is een senior databasebeheerder (DBA) met meer dan 10 jaar ervaring in SQL Server omgevingen en enterprise databasebeheer. Hij heeft honderden databaseherstelscenario's succesvol opgelost in financiële dienstverlening, gezondheidszorg en productiebedrijven.

Yuan is gespecialiseerd in SQL Server Databaseherstel, oplossingen voor hoge beschikbaarheid en prestatieoptimalisatie. Zijn uitgebreide praktijkervaring omvat het beheer van multi-terabyte databases, de implementatie van Always-On Availability Groups en de ontwikkeling van geautomatiseerde back-up- en herstelstrategieën voor bedrijfskritische bedrijfssystemen.

Met zijn technische expertise en praktische aanpak richt Yuan zich op het creëren van uitgebreide handleidingen die databasebeheerders en IT-professionals helpen complexe problemen op te lossen. SQL Server uitdagingen efficiënt. Hij blijft op de hoogte van de nieuwste SQL Server releases en de evoluerende databasetechnologieën van Microsoft, waarbij hij regelmatig herstelscenario's test om ervoor te zorgen dat zijn aanbevelingen overeenkomen met de beste praktijken in de praktijk.

Heb vragen over SQL Server herstel of heeft u aanvullende begeleiding nodig bij het oplossen van databaseproblemen? Yuan verwelkomt feedback en suggesties om deze technische middelen te verbeteren.