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
Samensmeltingsreplicatie is een goede oplossing voor het probleem van het verplaatsen van gegevens tussen een centrale server en mobiele clients die slechts af en toe verbonden zijn. Met behulp van de replicatiewizards kunt u eenvoudig een samenvoegingsreplicatietopologie configureren en beheren.
In deze zelfstudie leert u hoe u een replicatietopologie configureert voor mobiele clients. Zie het overzicht van samenvoegingsreplicatie voor meer informatie over samenvoegingsreplicatie.
Wat u leert
In deze zelfstudie leert u hoe u samenvoegreplicatie gebruikt om gegevens uit een centrale database te publiceren naar een of meer mobiele gebruikers, zodat elke gebruiker een uniek gefilterde subset van de gegevens krijgt.
In deze zelfstudie leert u het volgende:
- Configureer een uitgever voor samenvoegreplicatie.
- Voeg een mobiele abonnee toe voor de samenvoegpublicatie.
- Synchroniseer het abonnement met de samenvoegpublicatie.
Vereiste voorwaarden
Deze zelfstudie is bedoeld voor gebruikers die bekend zijn met fundamentele databasebewerkingen, 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-uitgever 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 Express of SQL Server Compact. De publicatie die in deze zelfstudie wordt gemaakt, biedt geen ondersteuning voor SQL Server Express of SQL Server Compact.
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
Een uitgever configureren voor samenvoegreplicatie
In deze sectie maakt u een samenvoegpublicatie met behulp van SQL Server Management Studio om een subset van de tabellen Employee, SalesOrderHeader en SalesOrderDetail te publiceren in de AdventureWorks2025 voorbeelddatabase. Deze tabellen worden gefilterd met geparameteriseerde rijfilters, zodat elk abonnement een unieke partitie van de gegevens bevat. U voegt ook de SQL Server-aanmelding die door de Merge Agent wordt gebruikt, toe aan de publicatietoegangslijst (PAL).
Samenvoegpublicatie maken en artikelen definiëren
Maak verbinding met de uitgever in SQL Server Management Studio en vouw vervolgens het serverknooppunt uit.
Start de SQL Server Agent door er met de rechtermuisknop op te klikken in Objectverkenner en Start te selecteren. Als deze stap de agent niet start, moet u dit handmatig doen vanuit SQL Server Configuration Manager.
Vouw de map Replicatie uit, klik met de rechtermuisknop op Lokale publicaties en selecteer Nieuwe publicatie. De wizard voor het publiceren wordt gestart:
Selecteer op de pagina Publicatiedatabase de optie
AdventureWorks2025En selecteer vervolgens Volgende.Selecteer op de pagina Publicatietypede optie Publicatie samenvoegen en selecteer vervolgens Volgende.
Controleer op de pagina Abonneetypen of alleen SQL Server 2008 (10.0.x) of hoger is geselecteerd en selecteer vervolgens Volgende:
Vouw op de pagina Artikelen het knooppunt Tabellen uit. Selecteer de volgende drie tabellen: Employee, SalesOrderHeader en SalesOrderDetail. Kies Volgende.
Opmerking
De tabel Werknemer bevat een kolom (OrganizationNode) met het gegevenstype hierarchyid . Dit gegevenstype wordt alleen ondersteund voor replicatie in SQL Server 2017.
Als u een build gebruikt die ouder is dan SQL Server 2017, wordt onder aan het scherm een bericht weergegeven om u te informeren over mogelijk gegevensverlies voor het gebruik van deze kolom in bidirectionele replicatie. Voor deze zelfstudie kunt u dit bericht negeren. Dit gegevenstype mag echter niet worden gerepliceerd in een productieomgeving, tenzij u de ondersteunde build gebruikt.
Zie Hiërarchie-id-kolommen gebruiken in replicatie voor meer informatie over het repliceren van het gegevenstype hierarchyid.
Op de pagina Filtertabelrijen selecteer Toevoegen en kies vervolgens Filter toevoegen.
Selecteer in het dialoogvenster Filter toevoegen de optie Werknemer (HumanResources) in Selecteer de tabel die u wilt filteren. Selecteer de kolom LoginID , selecteer de pijl-rechts om de kolom toe te voegen aan de WHERE-component van de filterquery en wijzig de WHERE-component als volgt:
WHERE [LoginID] = HOST_NAME()Selecteer Een rij in deze tabel gaat naar slechts één abonnement en selecteer OK.
Selecteer op de pagina Tabelrijen filteren, de optie Werknemer (Human Resources), selecteer Toevoegen en selecteer vervolgens Koppeling toevoegen om het geselecteerde filter uit te breiden.
a. Selecteer in het dialoogvenster Join toevoegen de optie Sales.SalesOrderHeader onder Gekoppelde tabel. Selecteer Handmatig de join-instructie schrijven en voltooi de join-instructie als volgt:
ON [Employee].[BusinessEntityID] = [SalesOrderHeader].[SalesPersonID]b. Selecteer in Join-opties opgeven de optie Unieke sleutel en selecteer vervolgens OK.
Selecteer SalesOrderHeader op de pagina Tabelrijen filteren, selecteer Toevoegen en selecteer Vervolgens Join toevoegen om het geselecteerde filter uit te breiden.
a. Selecteer in het dialoogvenster Join toevoegen de optie Sales.SalesOrderDetail onder Gekoppelde tabel.
b. Selecteer Gebruik de opbouwfunctie om de verklaring te maken.
c. Controleer in het voorbeeldvenster of de join-instructie is zoals volgt:ON [SalesOrderHeader].[SalesOrderID] = [SalesOrderDetail].[SalesOrderID]d. Selecteer in Join-opties opgeven de optie Unieke sleutel en selecteer vervolgens OK. Kies Volgende.
Selecteer Direct een momentopname maken, schakel De momentopnameagent plannen uit om op de volgende momenten uit te voeren en selecteer Volgende:
Selecteer Beveiligingsinstellingen op de pagina Agentbeveiliging. Voer <Publisher_Machine_Name\repl_snapshot> in het vak Procesaccount in, geef het wachtwoord voor dit account op en selecteer VERVOLGENS OK. Kies Volgende.
Voer op de pagina Wizard voltooienAdvWorksSalesOrdersMerge in het vak Publicatienaam in en selecteer Voltooien:
Nadat de publicatie is gemaakt, selecteert u Sluiten. Klik onder het replicatieknooppunt in Objectverkenner met de rechtermuisknop op Lokale publicaties en selecteer Vernieuwen om de nieuwe samenvoegreplicatie weer te geven.
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 AdvWorksSalesOrdersMerge en selecteer vervolgens Status van momentopnameagent weergeven:
De huidige status van de momentopnameagenttaak voor de publicatie wordt weergegeven. Zorg ervoor dat de momentopnametaak is geslaagd voordat u verdergaat met de volgende les.
Merge Agent login toevoegen aan 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 AdvWorksSalesOrdersMerge en selecteer Eigenschappen.
a. Selecteer de pagina Publicatietoegangslijst en selecteer Toevoegen.
b. Selecteer in het dialoogvenster <Publisher_Machine_Name>\repl_merge en selecteer OK. Selecteer opnieuw OK .
Voor meer informatie, zie:
Een abonnement maken op de samenvoegpublicatie
In deze sectie voegt u een abonnement toe aan de samenvoegpublicatie die u eerder hebt gemaakt. In deze zelfstudie wordt gebruikgemaakt van de externe abonnee (NODE2\SQL2016). Vervolgens stelt u machtigingen in voor de abonnementsdatabase en genereert u handmatig de gefilterde momentopname van gegevens voor het nieuwe abonnement.
Een abonnee toevoegen voor een samenvoegpublicatie
Maak verbinding met de abonnee in SQL Server Management Studio en vouw het serverknooppunt uit. Vouw de map Replicatie uit, klik met de rechtermuisknop op de map Lokale abonnementen en selecteer Nieuwe abonnementen. De wizard voor nieuw abonnement wordt gestart.
Selecteer SQL Server Publisher zoeken op de pagina Publicatie in de lijst Publisher.
Voer in het dialoogvenster Verbinding maken met server de naam van het exemplaar van de uitgever in het vak Servernaam in en selecteer Verbinding maken.
Selecteer AdvWorksSalesOrdersMerge en selecteer Volgende.
Selecteer op de pagina Locatie van de samenvoegagent, Voer elke agent uit bij de abonnee, en selecteer vervolgens Volgende:
Selecteer op de pagina Abonnees de exemplaarnaam van de subscriberserver. Selecteer onder Abonnementsdatabasenieuwe database in de lijst.
Voer in het dialoogvenster Nieuwe databaseSalesOrdersReplica in het vak Databasenaam in. Selecteer OK en klik vervolgens op Volgende.
Selecteer op de pagina Beveiliging van de samenvoegagent de knop met het weglatingsteken (...). Voer <Subscriber_Machine_Name\repl_merge> in het vak Procesaccount in en geef het wachtwoord voor dit account op. Selecteer OK, selecteer Volgende en selecteer Vervolgens opnieuw.
Stel op de pagina SynchronisatieplanningAgentplanning in op Alleen uitvoeren op aanvraag. Kies Volgende.
Selecteer op de pagina Abonnementen initialiserende optie Bij eerste synchronisatie in de lijst Initialiseren wanneer . Selecteer Volgende om door te gaan naar de pagina Abonnementstype en selecteer het juiste abonnementstype. In deze handleiding gebruiken we Client. Nadat u het abonnementstype hebt geselecteerd, selecteert u Volgende opnieuw.
Voer op de pagina HOST_NAME Waarden een waarde in van adventure-works\pamela0 in het vak HOST_NAME Waarde . Klik vervolgens op Voltooien.
Selecteer Opnieuw Voltooien . Nadat het abonnement is gemaakt, selecteert u Sluiten.
Servermachtigingen 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.
Selecteer Zoeken op de pagina Algemeen en voer <Subscriber_ Machine_Name\repl_merge> in het vak Objectnaam invoeren in. Selecteer Namen controleren en vervolgens OK.
Selecteer op de pagina Gebruikerstoewijzing de SalesOrdersReplica-database en selecteer de rol db_owner. Op de pagina Securables verleent u de expliciete machtiging voor Trace wijzigen. Kies OK.
De gefilterde momentopname van gegevens voor 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 AdvWorksSalesOrdersMerge en selecteer Eigenschappen.
a. Selecteer de pagina Gegevenspartities en selecteer Toevoegen.
b. Voer in het dialoogvenster Gegevenspartitie toevoegenadventure-works\pamela0 in het vak HOST_NAME Waarde in en selecteer VERVOLGENS OK.
c. Selecteer de zojuist toegevoegde partitie, selecteer nu de geselecteerde momentopnamen genereren en selecteer vervolgens OK.
Voor meer informatie, zie:
- Abonneren op publicaties
- Een pull-abonnement maken
- Momentopnamen voor het samenvoegen van publicaties met geparameteriseerde filters
Het abonnement synchroniseren met de samenvoegpublicatie
In deze sectie start u de Merge Agent om het abonnement te initialiseren met behulp van SQL Server Management Studio. U gebruikt deze procedure ook om te synchroniseren met de uitgever.
Synchronisatie starten en het abonnement initialiseren
Maak verbinding met de abonnee in SQL Server Management Studio.
Zorg ervoor dat de SQL Server Agent wordt uitgevoerd. Als dit niet het is, klikt u met de rechtermuisknop op de SQL Server-agent in Objectverkenner en selecteert u Start. Als deze stap uw agent niet start, moet u dit handmatig doen met BEHULP van SQL Server Configuration Manager.
Vouw het replicatieknooppunt uit. Klik in de map Lokale abonnementen met de rechtermuisknop op het abonnement in de Database SalesOrdersReplica en selecteer Synchronisatiestatus weergeven.
Selecteer Start om het abonnement te initialiseren.