Best practices voor replicatiebeheer

van toepassing op:SQL ServerAzure SQL Managed Instance

Nadat je replicatie hebt geconfigureerd, is het belangrijk om te begrijpen hoe je een replicatietopologie moet beheren. Dit artikel biedt basisrichtlijnen voor best practices op verschillende gebieden, met links naar meer informatie voor elk gebied. Naast het volgen van de best practice-richtlijnen uit dit artikel, overweeg ook om de veelgestelde vragen door te nemen om vertrouwd te raken met veelgestelde vragen en kwesties: Veelgestelde vragen voor replicatiebeheerders.

Verdeel de best practice-richtlijnen in twee gebieden:

  • De volgende informatie behandelt best practices die u zou moeten implementeren voor alle replicatietopologieën:

    • Ontwikkel en test een strategie voor back-up en herstel.

    • Schrijf een script voor de replicatietopologie.

    • Drempelwaarden en waarschuwingen maken.

    • Bewaak de replicatietopologie.

    • Stel zo nodig prestatiebasislijnen in en stem de replicatie af.

  • De volgende informatie behandelt best practices die u zou moeten overwegen, maar die mogelijk niet vereist zijn voor uw topologie:

    • Valideer regelmatig gegevens.

    • Pas agentparameters aan via profielen.

    • Publicatie- en distributieretentieperioden aanpassen.

    • Informatie over het wijzigen van artikel- en publicatie-eigenschappen als de toepassingsvereisten veranderen.

    • Informatie over het aanbrengen van schemawijzigingen als de toepassingsvereisten veranderen.

Een strategie voor back-up en herstel ontwikkelen en testen

Maak regelmatig een back-up van alle databases en test periodiek of je die back-ups kunt herstellen. Gerepliceerde databases zijn niet anders. Maak regelmatig een back-up van de volgende databases:

  • Publicatiedatabase

  • Distributiedatabase

  • Abonnementsdatabases

  • msdb-database en hoofddatabase bij publisher, distributeur en alle abonnees

Gerepliceerde databases vereisen speciale aandacht bij het back-uppen en herstellen van data. Zie Back-up maken en gerepliceerde databases herstellenvoor meer informatie.

Script voor de replicatietopologie

Script alle replicatiecomponenten in een topologie als onderdeel van een rampenherstelplan. Je kunt ook scripts gebruiken om repetitieve taken te automatiseren. Een script bevat de Transact-SQL systeemopgeslagen procedures die nodig zijn om de replicatiecomponenten te implementeren, zoals een publicatie of abonnement. Maak scripts aan in een wizard (zoals de New Publication Wizard) of in SQL Server Management Studio nadat je een component hebt gemaakt. Je kunt het script bekijken, aanpassen en uitvoeren met SQL Server Management Studio of sqlcmd. Sla scripts op met back-upbestanden voor het geval je een replicatietopologie moet herconfigureren. Zie Scripting Replicationvoor meer informatie.

Rescript een component als je eigenschapswijzigingen aanbrengt. Als je aangepaste opgeslagen procedures met transactionele replicatie gebruikt, sla dan een kopie van elke procedure op met de scripts. Werk de kopie bij als de procedure verandert. Procedures veranderen doorgaans door schemawijzigingen of veranderende applicatievereisten. Zie Opgeven hoe wijzigingen worden doorgegeven voor transactionele artikelenvoor meer informatie over aangepaste procedures.

Prestatiebasislijnen instellen en replicatie zo nodig afstemmen

Voordat je replicatie configureert, maak jezelf vertrouwd met de factoren die de replicatieprestaties beïnvloeden:

  • Server- en netwerkhardware

  • Databaseontwerp

  • Configuratie van distributeur

  • Publicatieontwerp en -opties

  • Filterontwerp en gebruik

  • Abonnementsopties

  • Opties voor momentopnamen

  • Agentparameters

  • Onderhoud

Nadat je replicatie hebt geconfigureerd, ontwikkel je een prestatiebasislijn. Deze basislijn helpt je te begrijpen hoe replicatie zich gedraagt met een werklast die typisch is voor je applicaties en topologie. Gebruik Replication Monitor en System Monitor om typische getallen te bepalen voor de volgende vijf dimensies van replicatieprestaties:

  • Latentie: de hoeveelheid tijd die het kost voor een datawijziging om zich tussen knooppunten in een replicatietopologie voort te planten.

  • Doorvoer: de hoeveelheid replicatieactiviteit (gemeten in opdrachten die gedurende een bepaalde periode worden geleverd) die een systeem in de loop van de tijd kan ondersteunen.

  • Gelijktijdigheid: het aantal replicatieprocessen dat tegelijkertijd op een systeem kan worden uitgevoerd.

  • Duur van de synchronisatie: hoe lang het duurt voordat een bepaalde synchronisatie is voltooid.

  • Resourceverbruik: hardware- en netwerkresources die worden gebruikt als gevolg van replicatieverwerking.

Latentie en doorvoer zijn het meest relevant voor transactionele replicatie, omdat systemen die zijn gebouwd op transactionele replicatie over het algemeen lage latentie en hoge doorvoer vereisen. Gelijktijdigheid en duur van synchronisatie zijn het meest relevant voor het samenvoegen van replicatie, omdat systemen die zijn gebouwd op samenvoegreplicatie vaak een groot aantal abonnees hebben en een Uitgever een aanzienlijk aantal gelijktijdige synchronisaties met deze abonnees kan hebben.

Nadat je de basiswaarden hebt vastgesteld, stel je drempels in in Replication Monitor. Zie Drempelwaarden en waarschuwingen instellen in Replicatiemonitor en Waarschuwingen gebruiken voor gebeurtenissen van replicatieagentenvoor meer informatie. Als je een prestatieprobleem tegenkomt, bekijk dan de suggesties in de eerder genoemde artikelen over het verbeteren van prestaties. Breng veranderingen toe op gebieden die de problemen die je tegenkomt beïnvloeden.

Drempelwaarden en waarschuwingen maken

Replication Monitor stelt je in staat drempels in te stellen die gerelateerd zijn aan status en prestaties. Stel de juiste drempels in voor je topologie. Wanneer een drempel wordt bereikt, wordt een waarschuwing weergegeven en kan een waarschuwing optioneel worden gestuurd naar een e-mailaccount, een pieper of een ander apparaat. Zie Drempelwaarden en waarschuwingen instellen in replicatiemonitorvoor meer informatie.

Naast de waarschuwingen die kunnen worden gekoppeld aan monitoringdrempels, biedt replicatie vooraf gedefinieerde waarschuwingen die reageren op acties van replicatieagenten. Gebruik deze meldingen om op de hoogte te blijven van de staat van de replicatietopologie. Lees het artikel waarin de waarschuwingen worden beschreven en gebruik er een die aansluit bij jouw administratieve behoeften. Je kunt indien nodig ook extra waarschuwingen aanmaken. Voor meer informatie, zie Waarschuwingen gebruiken voor replicatieagent-gebeurtenissen.

De replicatietopologie bewaken

Nadat je de replicatietopologie hebt gemaakt en drempels en waarschuwingen hebt geconfigureerd, monitor je de replicatie regelmatig. Het bewaken van een replicatietopologie is een belangrijk aspect van het implementeren van replicatie. Omdat replicatie-activiteit verdeeld is, moet je activiteit en status volgen op alle computers die bij replicatie betrokken zijn. Gebruik de volgende tools om replicatie te monitoren:

  • Replication Monitor is het belangrijkste hulpmiddel voor het monitoren van replicatie. Het stelt je in staat om de algehele gezondheid van een replicatietopologie te monitoren. Zie Replicatie bewakenvoor meer informatie.

  • Transact-SQL en RMO (Replication Management Objects) bieden interfaces voor het bewaken van replicatie. Zie Replicatie bewakenvoor meer informatie.

  • Systeemmonitor kan ook handig zijn voor het bewaken van replicatieprestaties. Zie Bewakingsreplicatie met System Monitorvoor meer informatie.

Gegevens periodiek valideren

Replicatie vereist geen validatie, maar je zou validatie periodiek moeten uitvoeren voor transactionele replicatie en merge-replicatie. Validatie verifieert dat gegevens bij de abonnee overeenkomen met gegevens bij de Publisher. Succesvolle validatie geeft aan dat op dat moment alle wijzigingen van de Publisher worden gerepliceerd naar de Subscriber (en van de Subscriber naar de Publisher als updates worden ondersteund bij de Subscriber) en dat de twee databases synchroon zijn.

Voer validatie uit volgens het back-upschema van de publicatiedatabase. Als de publicatiedatabase bijvoorbeeld één keer per week een volledige back-up heeft, voer dan één keer per week validatie uit nadat de back-up is voltooid. Zie Gerepliceerde gegevens validerenvoor meer informatie.

Agentprofielen gebruiken om indien nodig agentparameters te wijzigen

Agentprofielen bieden een handige methode voor het instellen van parameters voor replicatieagenten. Je kunt ook parameters specificeren op de agent-commandoregel, maar het is meestal beter om een vooraf gedefinieerd agentprofiel te gebruiken of een nieuw profiel aan te maken als je de waarde van een parameter moet aanpassen. Als je bijvoorbeeld merge-replicatie gebruikt en een abonnee stapt over van een breedbandverbinding naar een inbelverbinding, overweeg dan het slow link-profiel voor de Merge Agent te gebruiken. Dit profiel gebruikt een set parameters die beter geschikt zijn voor de langzamere communicatielink. Zie Replicatieagentprofielenvoor meer informatie.

Bewaarperioden voor publicatie en distributie aanpassen indien nodig

Transactionele replicatie en samenvoegingsreplicatie maken gebruik van bewaarperioden om respectievelijk te bepalen hoe lang transacties worden opgeslagen in de distributiedatabase en hoe vaak een abonnement moet synchroniseren. Gebruik eerst de standaardinstellingen, maar houd je topologie in de gaten om te bepalen of de instellingen aangepast moeten worden. In het geval van samenvoegingsreplicatie bepaalt bijvoorbeeld de bewaarperiode van de publicatie (die standaard 14 dagen is) hoe lang metagegevens worden opgeslagen in systeemtabellen. Als abonnementen altijd binnen vijf dagen synchroniseren, overweeg dan om de instelling naar een lager getal te zetten. Deze wijziging vermindert metadata en zorgt mogelijk voor betere prestaties. Voor meer informatie zie Verloop en deactivering.

Meer informatie over het wijzigen van publicaties als de toepassingsvereisten veranderen

Nadat je een publicatie hebt gemaakt, moet je mogelijk artikelen toevoegen of verwijderen, of de eigenschappen van publicaties en artikelen wijzigen. De meeste wijzigingen zijn toegestaan nadat een publicatie is aangemaakt, maar in sommige gevallen moet je een nieuwe snapshot van een publicatie genereren en abonnementen op de publicatie opnieuw initialiseren. Zie Eigenschappen van publicatie en artikel wijzigen en Artikelen toevoegen aan en verwijderen uit bestaande publicatiesvoor meer informatie.

Informatie over het aanbrengen van schemawijzigingen als de toepassingsvereisten veranderen

In veel gevallen moet je schemawijzigingen aanbrengen nadat een applicatie in productie is. In een replicatietopologie moet je deze wijzigingen vaak naar alle abonnees doorgeven. Replicatie ondersteunt een breed scala aan schemawijzigingen voor gepubliceerde objecten. Wanneer je een van de volgende schemawijzigingen aanbrengt op het juiste gepubliceerde object op een Microsoft SQL Server Publisher, wordt de wijziging standaard doorgegeven aan alle SQL Server abonnees:

  • ALTER TABLE

  • ALTER VIEW

  • ALTER PROCEDURE

  • ALTER FUNCTION

  • ALTER TRIGGER

Zie Schemawijzigingen aanbrengen in publicatiedatabasesvoor meer informatie.