sql >> Database >  >> RDS >> Database

Snapshot-replicatie maken

Het concept van snapshotreplicatie is eenvoudig. Het genereert en distribueert de momentopname van schema en gegevens van artikelen, verscheen op een bepaald tijdstip en werkt de wijzigingen op abonnementen bij. Wanneer we snapshot-replicatie maken, maakt SQL Server een Snapshot Agent Job die een momentopname van publicatiedatabase-objecten genereert. Snapshot wordt opgeslagen op een netwerklocatie of op de harde schijf. U kunt het interval definiëren om de momentopname te genereren met behulp van het SQL-taakschema.

Demo instellen

Voor deze demo heb ik twee SQL Server-instanties in één databaseserver gemaakt. Instantienamen en details zijn de volgende:

[tabel id=54 /]

In de demo-configuratie heb ik geen distributeur gemaakt, daarom zal de uitgeversinstantie ook als distributeur fungeren. Ik ga tabellen en gegevens repliceren die bij dePersoon horen schema van de AdventureWorks2014-database.

Uitgever configureren

Om de uitgever te configureren, opent u de SQL Server-beheerstudio, vouwt u de database-instantie uit, vouwt u de Replicatie uit knooppunt, klik met de rechtermuisknop op Local Publication en selecteer Nieuwe publicatie . Zie de volgende afbeelding:

Nieuwe publicatiewizard wordt gestart. Op het scherm is een korte samenvatting van de wizard gegeven. U kunt dit scherm overslaan door Deze startpagina niet meer weergeven . aan te vinken selectievakje. Klik op Volgende om naar het volgende scherm te gaan. Zie de volgende afbeelding:

Selecteer in het volgende scherm de database die als uitgever optreedt. In deze demo gebruik ik de AdventureWorks2014 database, selecteer daarom de AdventureWorks2014 database uit de databaselijst en klik op Volgende . Zie de volgende afbeelding:

Selecteer in het volgende scherm een ​​publicatietype. De typen worden vermeld in de keuzelijst Publicatietypen en voor afzonderlijke publicatietypen worden de beschrijvingen ervan ook uitgelegd in Beschrijving van publicatietype tekstvak. Selecteer Snapshot Replicatie n en klik op Volgende . Zie de volgende afbeelding:

Bij replicatie worden de databaseobjecten Artikelen genoemd. Op de Artikelen scherm, wordt de lijst met database-objecten binnen de publicatiedatabase weergegeven. Ik ga gegevens repliceren van alle tabellen die tot het Persoonsschema behoren, selecteer daarom de tabellen die tot het Persoonsschema behoren uit de lijst met artikelen en klik op Volgende . Zie de volgende afbeelding:

Om replicatie te initialiseren, moeten we een momentopname genereren. Op de Momentopname-agent scherm, configureert u het interval voor het genereren van snapshots. U kunt de momentopname onmiddellijk genereren, of u kunt de specifieke tijd plannen om de momentopname van de database te genereren. Standaard wordt de momentopname elk uur gegenereerd, maar we kunnen deze wijzigen. Om een ​​momentopname met een specifiek interval te genereren, klikt u op Wijzigen . Het Nieuwe takenschema dialoogvenster wordt geopend. Configureer het gewenste schema en klik op OK . Zie de volgende afbeelding:

In deze demo genereer ik onmiddellijk een momentopname, dus controleer de Een momentopname maken en de momentopname beschikbaar houden om het abonnement te initialiseren optie en klik op Volgende.

Configureer op het volgende scherm de SQL Agent-beveiliging. Om de Agent-beveiliging te configureren, klikt u op de Beveiligingsinstellingen knop. De Snapshot Agent-beveiliging dialoogvenster wordt geopend. Geef in het dialoogvenster het account op waaronder de abonnee verbinding maakt met de uitgever. Geef bovendien de accountgegevens op waaronder de SQL Server-agenttaak wordt uitgevoerd. Voor deze demo worden SQL Server-taken uitgevoerd onder het SQL Server Agent-serviceaccount, dus selecteer Uitvoeren onder het SQL Server Agent-serviceaccount optie. Abonnees worden verbonden met de uitgever via SQL-login, dus selecteer de De volgende SQL Server-aanmeldingsoptie gebruiken en geef SQL-login en wachtwoord op. Maak in deze demo verbinding met de sa Log in. Klik op OK om het dialoogvenster te sluiten en klik op Nex t. Zie de volgende afbeelding:

Op het volgende scherm kun je ervoor kiezen om een ​​publicatie te maken of de scripts te genereren om de publicatie te maken. Selecteer de Genereer een scriptbestand om de publicatie te maken optie om de scripts van replicatiestappen te genereren. We zullen een publicatie maken, dus selecteer de optie Maak de publicatie optie en klik op Volgende . Zie de volgende afbeelding:

Geef op het volgende scherm de naam van de publicatie op, bekijk de samenvatting van de taken die moeten worden uitgevoerd om replicatie te maken en klik op Voltooien om de publicatie te maken en de wizard Nieuwe publicatie te sluiten. Zie de volgende afbeelding:

Zoals ik aan het begin van het artikel al zei, wanneer we een snapshot-replicatie maken, maakt SQL een taak die een snapshot maakt en de snapshotbestanden opslaat in de standaardmap.

Vouw SQL Server Agent uit om ze te bekijken>> uitbreiden Vacatures . Zie de volgende afbeelding:

Nadat Publicatie is geconfigureerd, configureert u abonnees.

Abonnee configureren

Als u de abonnee wilt configureren, maakt u eerst verbinding met een ander SQL-exemplaar. Nadat u verbinding heeft gemaakt met de instantie, vouwt u replicatie uit en klikt u met de rechtermuisknop op Lokaal abonnement . Zie de volgende afbeelding:

Nieuwe abonnementwizard opent. Op het scherm is een korte samenvatting van de wizard gegeven. U kunt dit scherm overslaan door Deze startpagina niet meer weergeven . aan te vinken selectievakje. Klik op Volgende om naar het volgende scherm te gaan. Zie de volgende afbeelding:

Kies in het volgende scherm de publicatieserver. Klik op de Uitgever vervolgkeuzelijst en selecteer Zoek SQL Server Publisher van de lijst. Er wordt een dialoogvenster geopend om de uitgever te verbinden. Geef in het tekstvak servernaam de hostnaam van de uitgeversserver op en klik op verbinden. Zie de volgende afbeelding:

Zodra de verbinding met de uitgever tot stand is gebracht, wordt de Snapshot_Replication publicatie en de AdventureWorks2014 database wordt getoond in de Databases en publicatie tekstvak. Selecteer Snapshot_Replicatie en klik op Volgende . Zie de volgende afbeelding:

Kies op het volgende scherm de locatie van de distributieagent. Voor deze demo gebruik ik Pull Subscription , selecteer daarom de optie Elke agent uitvoeren op zijn abonnee optie en klik opVolgende :

Selecteer op het volgende scherm een ​​abonnementsdatabase. Ik heb een database gemaakt met de naam Personen die fungeert als een abonneedatabase. In de abonnementendatabase vervolgkeuzelijst, selecteer de Personen database uit de lijst. Klik na het selecteren van een abonnementsdatabase op Volgende . Zie de volgende afbeelding:

Configureer op het volgende scherm de beveiliging van de distributieagent. Om de beveiliging te configureren, klikt u op de […] knop. De Beveiliging van distributieagenten dialoogvenster wordt geopend. Geef in het eerste gedeelte het domeinaccount op waaronder het distributieagentproces wordt uitgevoerd. Distributieagent wordt uitgevoerd onder de SQL Server-agentservice, dus selecteer Uitvoeren onder de SQL Server-agentserviceaccount optie.

Hier heb ik de distributieserver niet geconfigureerd, vandaar dat de uitgever optreedt als distributeur. Abonnee maakt verbinding met Publisher / Distributor met behulp van SQL Login. Gebruik de sa . om de verdeler aan te sluiten login en wachtwoord. Zie de volgende afbeelding:

Klik op OK om het dialoogvenster te sluiten. En op de Distribution Agent Security scherm, klik op Volgende . Zie de volgende afbeelding:

Configureer op het volgende scherm het synchronisatieschema van het abonnement. U kunt ervoor kiezen om continu te draaien of de geplande uitvoering te configureren. Selecteer Continu uitvoeren in het Agentenschema vervolgkeuzelijst. Klik op Volgende . Zie de volgende afbeelding:

Kies op het volgende scherm of u het abonnement onmiddellijk wilt initialiseren met de momentopname van publicatiegegevens en schema of na de eerste synchronisatie. We zullen het abonnement onmiddellijk initialiseren, dus kies Onmiddellijk van de Initialiseren wanneer vervolgkeuzelijst. Klik op Volgende . Zie de volgende afbeelding:

Op het volgende scherm kun je ervoor kiezen om direct een abonnement aan te maken of de scripts te genereren om een ​​abonnement aan te maken. Selecteer Genereer een scriptbestand om het abonnement te maken . Optie om de scripts van replicatiestappen te genereren. We zullen een publicatie maken, dus selecteer de optie Maak het abonnement aan en klik op Nex t. Zie de volgende afbeelding:

Op het volgende scherm wordt een lijst met taken weergegeven die zijn uitgevoerd om een ​​abonnement te maken. U kunt ze bekijken en klikken op Voltooien . Zie de volgende afbeelding:

Zodra het abonnement is aangemaakt, kun je het abonnement zien onder het Lokaal abonnement knooppunt. Zie de volgende afbeelding:

Momentopnameschema wijzigen

Zoals ik al zei, wanneer we een publicatie maken, kunnen we een momentopname-interval configureren vanuit de Snapshot Agent scherm. We kunnen het momentopname-interval wijzigen door het schema van een SQL-taak voor snapshotreplicatie te wijzigen. Vouw hiervoor op de publisher-server SQL Server Agent . uit>> Vouw Vacatures uit en klik met de rechtermuisknop op de Snapshot-replicatietaak (TTI412-VM\SQL2017-AdventureWorks2014-Snapshot_Replication-4) en selecteer Eigenschappen . Zie de volgende afbeelding:

Het dialoogvenster Taakeigenschappen wordt geopend. Selecteer de Schema's pagina, selecteer het schema en klik op Bewerken . Zie de volgende afbeelding:

Het Vacatureschema dialoogvenster wordt geopend. configureer het juiste schema en klik op OK .

De bovenstaande configuratie genereert elk uur een momentopname.

Locatie van de momentopnamebestanden wijzigen

We kunnen de snapshotbestanden ook in een andere map plaatsen. Voor deze demo worden de snapshotbestanden opgeslagen in de standaardmap die E:\ReplicationSnapshot is. . Ik zal de snapshot-bestanden van de locatie wijzigen. De nieuwe locatie wordt E:\Snapshot\PersonsSchema .

We kunnen de locatie van de momentopname wijzigen vanuit de publicatie-eigenschappen. Om publicatie-eigenschappen te openen, klikt u met de rechtermuisknop op Lokale publicatie op de uitgeversserver en selecteer Eigenschappen. Zie de volgende afbeelding:

De Publicatie-eigenschappen dialoogvenster wordt geopend. Selecteer in het dialoogvenster Momentopname . Op de Momentopname scherm, wis de Bestanden in de standaardmap optie en selecteer de Plaats bestanden in de volgende map optie. Geef een nieuw pad op in het tekstvak en klik op OK . Zie de volgende afbeelding:

Wanneer we deze wijziging uitvoeren, wordt de huidige momentopname ongeldig. Daarom krijgt u na het wijzigen van deze instelling een waarschuwing zoals weergegeven in de volgende afbeelding:

Klik op ja. Het zal een nieuwe snapshot genereren en snapshotbestanden opslaan op E:\Snapshots\PersonsSchema\unc . Zie de volgende afbeelding:

Replicatiestatus bekijken

U kunt Replicatiemonitor . gebruiken om de replicatiestatus te bekijken. Vouw de Replicatie . uit om de replicatiemonitor te openen n node>> uitbreiden Lokale publicaties>> klik met de rechtermuisknop op Snapshot_Replication en selecteer Replicatiemonitor starten . Zie de volgende afbeelding.

Met de replicatiemonitor kunt u het volgende bekijken:

  1. Status van replicatie
  2. Lijst met abonnementen
  3. Laatste synchronisatiedatum en tijd.

Met behulp van de replicatiemonitor kunt u de status van agent en taken met betrekking tot de taak bekijken. Selecteer Agent . om het te bekijken op de Replicatiemonitor dialoog venster. Zie de volgende afbeelding:

Onder de Agent tabblad kunt u de volgende details bekijken:

  1. Status van publicatietaak.
  2. Naam van publicatietaak.
  3. Laatste startdatum en -tijd van publicatietaak.
  4. Duur tot voltooiing van de publicatietaak.
  5. De laatste actie is ondernomen door publicatietaak.

Samenvatting

In dit artikel had ik uitgelegd:

  1. Hoog niveau is samenvatting van snapshotreplicatie.
  2. Uitgever en abonnee configureren.
  3. Replicatiemonitor en het gebruik ervan.

Handige hulpmiddelen:

dbForge Data Compare voor SQL Server – krachtige SQL-vergelijkingstool die met big data kan werken.

dbForge Schema Compare voor SQL Server – betrouwbare tool die u tijd en moeite bespaart bij het vergelijken en synchroniseren van databases op SQL Server.


  1. MySQL-kolommen met DEFAULT NULL - stilistische keuze, of niet?

  2. Doctrine 2 mysql FIELD-functie in volgorde door

  3. NULL-waarden binnen de NOT IN-clausule

  4. Bouw een nieuwsbriefsysteem met PHP en MySQL