Delen via


Zelfstudie: SQL Data Sync instellen tussen databases in Azure SQL Database en SQL Server

van toepassing op:Azure SQL Database-

Belangrijk

SQL Data Sync wordt op 30 september 2027 buiten gebruik gesteld. Overweeg om te migreren naar alternatieve oplossingen voor gegevensreplicatie/synchronisatie.

In deze zelfstudie leert u hoe u SQL Data Sync instelt door een synchronisatiegroep te maken die zowel Azure SQL Database- als SQL Server-exemplaren bevat. De synchronisatiegroep is aangepast geconfigureerd en wordt gesynchroniseerd volgens de planning die u hebt ingesteld.

In de zelfstudie wordt ervan uitgegaan dat u ten minste enige ervaring hebt met SQL Database en SQL Server.

Voor een overzicht van SQL Data Sync, zie Wat is SQL Data Sync voor Azure?

Zie PowerShell gebruiken om gegevens te synchroniseren tussen meerdere databases in Azure SQL Database of tussen databases in Azure SQL Database en SQL Server voor voorbeelden van het configureren van SQL Data Sync.

De hubdatabase is het centrale eindpunt van de synchronisatietopologie, waarin een synchronisatiegroep meerdere database-eindpunten heeft. Alle andere liddatabases met eindpunten in de synchronisatiegroep worden gesynchroniseerd met de hubdatabase . SQL Data Sync wordt alleen ondersteund in Azure SQL Database. De hubdatabase moet een Azure SQL Database zijn.

Azure SQL Database Hyperscale wordt alleen ondersteund als liddatabase, niet als hubdatabase .

Synchronisatiegroep maken

  1. Ga naar de Azure Portal. Zoek en selecteer SQL-databases om een bestaande Azure SQL Database te vinden.

  2. Selecteer de bestaande database die u wilt gebruiken als de hubdatabase voor Data Sync.

  3. Selecteer in het resourcemenu van de SQL-database voor de geselecteerde database onder Gegevensbeheerde optie Synchroniseren met andere databases.

  4. Selecteer op de pagina Synchroniseren met andere databasesde optie Nieuwe synchronisatiegroep. De pagina Data Sync-groep maken wordt geopend.

  5. Configureer op de pagina Gegevenssynchronisatiegroep maken de volgende instellingen:

    Schermopname van de pagina Gegevenssynchronisatie maken van Azure Portal, waarmee u een nieuwe database voor synchronisatiemetagegevens maakt voor gebruik met Automatische synchronisatie.

    Instelling Beschrijving
    Naam van synchronisatiegroep Voer een naam in voor de nieuwe synchronisatiegroep. Deze naam verschilt van de naam van de database zelf.
    Metagegevensdatabase synchroniseren Kies ervoor om een database te maken (aanbevolen) of om een bestaande database te gebruiken om te fungeren als de database met synchronisatiemetagegevens.

    Microsoft raadt aan een nieuwe, lege database te maken voor gebruik als de database met synchronisatiemetagegevens. Data Sync maakt tabellen in deze database en voert een frequente workload uit. Deze database wordt gedeeld als de synchronisatiemetagegevensdatabase voor alle synchronisatiegroepen in een geselecteerde regio en een geselecteerd abonnement. U kunt de database of de naam ervan niet wijzigen zonder alle synchronisatiegroepen en synchronisatieagents in de regio te verwijderen.

    Als u ervoor kiest om een nieuwe database te maken, selecteert u Nieuwe database. Selecteer Database-instellingen configureren. Geef op de pagina SQL Database een naam en configureer een nieuwe Azure SQL Database en selecteer OK.

    Als u Bestaande database gebruiken kiest, selecteert u de database in de vervolgkeuzelijst Metagegevensdatabase synchroniseren .
    Automatische synchronisatie Selecteer Aan of Uit.

    Als u Aan kiest, voert u een getal in en selecteert u Seconden, Minuten, Uren of Dagen in de sectie Synchronisatiefrequentie .
    De eerste synchronisatie begint nadat de geselecteerde intervalperiode is verstreken vanaf het moment dat de configuratie wordt opgeslagen.
    Conflict Resolutie Selecteer Hub win of Member win.

    Hub win betekent dat wanneer er conflicten optreden, gegevens in de hubdatabase conflicterende gegevens in de liddatabase overschrijven.

    Leden winnen betekent dat wanneer er conflicten optreden, gegevens in de liddatabase conflicterende gegevens in de hubdatabase overschrijven.
    Gebruikersnaam van hubdatabase en hubdatabasewachtwoord Geef de gebruikersnaam en het wachtwoord op voor de serverbeheerder SQL-geauthenticeerde login voor de Hub-database. Dit is de gebruikersnaam en het wachtwoord van de serverbeheerder voor dezelfde logische Azure SQL-server waarop u bent gestart. Verificatie van Microsoft Entra (voorheen Azure Active Directory) wordt niet ondersteund.
    Private Link gebruiken Kies een door een service beheerd privé-eindpunt om een beveiligde verbinding tot stand te brengen tussen de synchronisatieservice en de hubdatabase.
  6. Selecteer OK en wacht totdat de synchronisatiegroep is gemaakt en geïmplementeerd.

  7. Op de pagina Nieuwe synchronisatiegroep , als u Private Link gebruiken hebt geselecteerd, moet u de privé-eindpuntverbinding goedkeuren. Via de koppeling in het informatiebericht gaat u naar de privé-eindpuntverbindingen waar u de verbinding kunt goedkeuren.

    Schermopname van de pagina Privé-eindpuntverbindingen in Azure Portal, waarin wordt weergegeven waar een privékoppeling moet worden goedgekeurd.

    Opmerking

    De privékoppelingen voor de synchronisatiegroep en de synchronisatieleden moeten afzonderlijk worden gemaakt, goedgekeurd en uitgeschakeld.

Synchronisatieleden toevoegen

Nadat de nieuwe synchronisatiegroep is gemaakt en geïmplementeerd, opent u de synchronisatiegroep en opent u de pagina Databases , waar u synchronisatieleden selecteert.

Opmerking

Als u de gebruikersnaam en het wachtwoord voor uw hubdatabase wilt bijwerken of invoegen, gaat u naar de sectie Hubdatabase op de pagina Synchronisatieleden selecteren .

Een database in Azure SQL Database toevoegen als lid aan een synchronisatiegroep

  1. Voeg in de sectie Synchronisatieleden selecteren desgewenst een database in Azure SQL Database toe aan de synchronisatiegroep door een Azure-database toevoegen te selecteren. De pagina Azure Database configureren wordt geopend.

    Schermopname van Azure Portal van de pagina Azure Database configureren, waar u een database kunt toevoegen aan de synchronisatiegroep.

  2. Wijzig op de pagina Azure SQL Database configureren de volgende instellingen:

    Instelling Beschrijving
    Naam van synchronisatielid Geef een naam op voor het nieuwe synchronisatielid. Deze naam verschilt van de databasenaam zelf.
    Abonnement Selecteer het bijbehorende Azure-abonnement voor factureringsdoeleinden.
    Azure SQL Server Selecteer de bestaande server.
    Azure SQL Database Selecteer de bestaande database in SQL Database.
    Synchronisatierichtingen De synchronisatierichting kan van hub naar lid, van lid naar hub, of beide zijn. Selecteer in de hub, naar de hub of bidirectionele synchronisatie. Zie Hoe het werkt voor meer informatie.
    Gebruikersnaam en Wachtwoord Voer de bestaande referenties in voor de server waarop de liddatabase zich bevindt. Voer geen nieuwe referenties in deze sectie in.
    Private Link gebruiken Kies een door een service beheerd privé-eindpunt om een beveiligde verbinding tot stand te brengen tussen de synchronisatieservice en de liddatabase.
  3. Selecteer OK en wacht tot het nieuwe synchronisatielid is gemaakt en geïmplementeerd.

Een database toevoegen aan een SQL Server-exemplaar als lid van een synchronisatiegroep

  1. Voeg in de sectie Liddatabase desgewenst een database in een SQL Server-exemplaar toe aan de synchronisatiegroep door een on-premises database toevoegen te selecteren.

  2. De pagina On-premises configureren wordt geopend, waar u het volgende kunt doen:

  3. Selecteer De synchronisatieagentgateway kiezen. De pagina Synchronisatieagent selecteren wordt geopend.

    Schermopname van Azure Portal in de stappen On-Premises configureren. Wanneer de optie De synchronisatieagentgateway kiezen is geselecteerd, wordt de pagina Synchronisatieagent selecteren weergegeven.

  4. Op de pagina De synchronisatieagent, kiest u of u een bestaande agent wilt gebruiken of een nieuwe agent wilt maken.

    Als u Bestaande agents kiest, selecteert u de bestaande agent in de lijst.

    Als u Een nieuwe agent maken kiest, gaat u als volgt te werk:

    1. Download de gegevenssynchronisatieagent via de opgegeven koppeling en installeer deze op een server die verschilt van waar het SQL Server-exemplaar zich bevindt. U kunt de agent ook rechtstreeks downloaden vanuit de Azure SQL Data Sync-agent. Raadpleeg de aanbevolen procedures voor Azure SQL Data Sync voor de synchronisatieclientagent.

      Belangrijk

      U moet uitgaande TCP-poort 1433 openen in de firewall om de clientagent te laten communiceren met de server.

    2. Voer een agentnaam in.

    3. Selecteer Sleutel maken en genereren en kopieer de agentsleutel naar het klembord.

    4. Selecteer OK om de pagina Synchronisatieagent selecteren te sluiten.

  5. Op de server waarop de Sync Client Agent is geïnstalleerd, lokaliseer en start de Client Sync Agent-app.

    Schermopname van de microsoft SQL Data Sync 2.0-clientagent-app. De knop Agentsleutel verzenden is gemarkeerd.

    1. Selecteer agentsleutel verzenden in de synchronisatieagent-app. Het dialoogvenster Databaseconfiguratie voor synchronisatiemetagegevens wordt geopend.

    2. Plak in het dialoogvenster Databaseconfiguratie voor synchronisatiemetagegevens de agentsleutel die u hebt gekopieerd uit Azure Portal. Geef ook de bestaande inloggegevens op voor de server waarop de synchronisatiemetadatadatabase zich bevindt. Selecteer OK en wacht tot de configuratie is voltooid.

      Schermopname van de microsoft SQL Data Sync 2.0-clientagent-app. Voer de agentsleutel en serverreferenties in.

      Opmerking

      Als er een firewallfout optreedt, maakt u een firewallregel in Azure om binnenkomend verkeer vanaf de SQL Server-computer toe te staan. U kunt de regel handmatig maken in de portal of in SQL Server Management Studio (SSMS). Maak in SSMS verbinding met de hubdatabase in Azure door de naam in te voeren als <hub_database_name>.database.windows.net.

    3. Selecteer Registreren om een SQL Server-database bij de agent te registreren. Het dialoogvenster SQL Server-configuratie wordt geopend.

      Schermopname van de microsoft SQL Data Sync 2.0-clientagent-app. Een SQL Server-database toevoegen en configureren.

    4. Kies in het dialoogvenster SQL Server-configuratie om verbinding te maken met behulp van SQL Server-verificatie of Windows-verificatie. Als u SQL Server-verificatie kiest, voert u de bestaande referenties in. Geef de SQL Server-naam en de naam op van de database die u wilt synchroniseren en selecteer Verbinding testen om uw instellingen te testen. Selecteer Vervolgens Opslaan en de geregistreerde database wordt weergegeven in de lijst.

      Schermopname van de Microsoft SQL Data Sync 2.0-toepassing die laat zien dat de SQL Server-database en -machine nu zijn geregistreerd.

    5. Sluit de clientsynchronisatieagent-app.

  6. Selecteer in de Azure-portal op de pagina On-premises configurerenSelecteer de database.

  7. Geef op de pagina Database selecteren in het veld Naam van synchronisatielid een naam op voor het nieuwe synchronisatielid. Deze naam verschilt van de naam van de database zelf. Selecteer de database in de lijst. Selecteer in het veld Synchronisatierichtingenbidirectionele synchronisatie, naar de hub of vanuit de hub.

  8. Selecteer OK om de pagina Database selecteren te sluiten. Selecteer vervolgens OK om de pagina On-premises configureren te sluiten en te wachten tot het nieuwe synchronisatielid is gemaakt en geïmplementeerd. Selecteer ten slotte OK om de pagina Synchronisatieleden selecteren te sluiten.

Opmerking

Als u verbinding wilt maken met SQL Data Sync en de lokale agent, voegt u uw gebruikersnaam toe aan de rol DataSync_Executor. Data Sync maakt deze rol aan in de SQL Server-instantie.

Synchronisatiegroep configureren

Nadat de nieuwe leden van de synchronisatiegroep zijn gemaakt en geïmplementeerd, gaat u naar de sectie Tabellen op de pagina Databasesynchronisatiegroep .

Schermopname van Azure Portal, op de pagina Tabellen, selecteer tabellen en velden die u wilt synchroniseren.

  1. Selecteer op de pagina Tabellen een database in de lijst met leden van de synchronisatiegroep en selecteer Schema vernieuwen. Verwacht een vertraging van een paar minuten in het vernieuwingsschema. De vertraging kan enkele minuten langer duren als u een privékoppeling gebruikt.

  2. Selecteer in de lijst de tabellen die u wilt synchroniseren. Standaard zijn alle kolommen geselecteerd, dus schakel het selectievakje uit voor de kolommen die u niet wilt synchroniseren. Zorg ervoor dat u de primaire-sleutelkolom selecteert.

  3. Selecteer Opslaan.

  4. Databases worden standaard pas gesynchroniseerd als ze zijn gepland of handmatig worden uitgevoerd. Als u een handmatige synchronisatie wilt uitvoeren, gaat u naar uw database in SQL Database in Azure Portal, selecteert u Synchroniseren met andere databases en selecteert u de synchronisatiegroep. De pagina Data Sync wordt geopend. Selecteer Synchroniseren.

    Schermopname van Azure Portal met de knop handmatig synchroniseren voor een databasesynchronisatiegroep.

Veelgestelde vragen

In deze sectie vindt u antwoorden op veelgestelde vragen over de Azure SQL Data Sync-service.

Worden er volledig tabellen gemaakt met SQL Data Sync?

Als synchronisatieschematabellen ontbreken in de doeldatabase, worden ze in SQL Data Sync gemaakt met de kolommen die u hebt geselecteerd. Dit resulteert echter niet in een volledig schema om de volgende redenen:

  • Alleen kolommen die u selecteert, worden gemaakt in de doeltabel. Kolommen die niet zijn geselecteerd, worden genegeerd.
  • Alleen geselecteerde kolomindexen worden gemaakt in de doeltabel. Voor niet geselecteerde kolommen worden deze indexen genegeerd.
  • Indexen voor kolommen van het type XML worden niet gemaakt.
  • CHECK-beperkingen worden niet aangemaakt.
  • Triggers voor de brontabellen worden niet gemaakt.
  • Weergaven en opgeslagen procedures worden niet gemaakt.

Vanwege deze beperkingen raden we het volgende aan:

  • Maak voor productieomgevingen zelf het volledige identieke schema.
  • Gebruik de functie voor automatisch inrichten wanneer u met de service experimenteert.

Waarom zie ik tabellen die ik niet heb gemaakt?

Data Sync maakt extra tabellen in de database voor het bijhouden van wijzigingen. Verwijder deze niet of Data Sync werkt niet meer.

Zijn mijn gegevens geconvergeerd na een synchronisatie?

Niet noodzakelijkerwijs. Neem een synchronisatiegroep met een hub en drie spokes (A, B en C) waarbij synchronisaties Hub naar A, Hub naar B en Hub naar C zijn. Als er een wijziging wordt aangebracht in database A na de hub naar A-synchronisatie, wordt die wijziging pas naar database B of database C geschreven als de volgende synchronisatietaak is uitgevoerd.

Hoe krijg ik schemawijzigingen in een synchronisatiegroep?

Alle schemawijzigingen handmatig aanbrengen en doorgeven.

  1. Repliceer de schemawijzigingen handmatig naar de hub en naar alle synchronisatieleden.
  2. Werk het synchronisatieschema bij.

Voor het toevoegen van nieuwe tabellen en kolommen:

Nieuwe tabellen en kolommen hebben geen invloed op de huidige synchronisatie en Data Sync negeert deze totdat ze aan het synchronisatieschema worden toegevoegd. Volg de volgorde bij het toevoegen van nieuwe databaseobjecten:

  1. Voeg nieuwe tabellen of kolommen toe aan de hub en aan alle synchronisatieleden.
  2. Voeg nieuwe tabellen of kolommen toe aan het synchronisatieschema.
  3. Begin met het invoegen van waarden in de nieuwe tabellen en kolommen.

Het gegevenstype van een kolom wijzigen:

Wanneer u het gegevenstype van een bestaande kolom wijzigt, blijft Data Sync werken zolang de nieuwe waarden passen bij het oorspronkelijke gegevenstype dat is gedefinieerd in het synchronisatieschema. Als u bijvoorbeeld het type in de brondatabase wijzigt van int in bigint, blijft Data Sync werken totdat u een waarde invoegt die te groot is voor het int-gegevenstype . Als u de wijziging wilt voltooien, repliceert u de schemawijziging handmatig naar de hub en naar alle synchronisatieleden en werkt u vervolgens het synchronisatieschema bij.

Hoe kan ik een database exporteren en importeren met Data Sync?

Nadat u een database als een .bacpac bestand hebt geëxporteerd en het bestand hebt geïmporteerd om een database te maken, gaat u als volgt te werk om Data Sync in de nieuwe database te gebruiken:

  1. De Data Sync-objecten en extra tabellen in de nieuwe database opschonen met behulp van Data Sync complete cleanup.sql. Met het script worden alle vereiste Data Sync-objecten uit de database verwijderd.
  2. Maak de synchronisatiegroep opnieuw met de nieuwe database. Als u de oude synchronisatiegroep niet meer nodig hebt, verwijdert u deze.

Waar vind ik informatie over de clientagent?

Zie De veelgestelde vragen over de clientagent voor veelgestelde vragen over de clientagent.

Is het nodig om de koppeling handmatig goed te keuren voordat ik deze kan gaan gebruiken?

Ja. U moet het door de service beheerde privé-eindpunt handmatig goedkeuren op de pagina Privé-eindpuntverbindingen van Azure Portal tijdens de implementatie van de synchronisatiegroep of met behulp van PowerShell.

Waarom krijg ik een firewallfout wanneer de synchronisatietaak mijn Azure-database inricht?

Dit kan gebeuren omdat Azure-resources geen toegang hebben tot uw server. Er zijn twee oplossingen:

  • Zorg ervoor dat de firewall in de Azure-database is ingesteld om Azure-diensten en -resources toegang tot deze server te verlenen met de optie op Ja. Zie Azure SQL Database en besturingselementen voor netwerktoegang voor meer informatie.

  • Configureer een privékoppeling voor Data Sync. Dit verschilt van een Azure Private Link. Private Link is de manier om synchronisatiegroepen te maken met behulp van een beveiligde verbinding met databases die zich achter een firewall bevinden. SQL Data Sync Private Link is door Microsoft beheerd eindpunt en maakt intern een subnet binnen het bestaande virtuele netwerk, dus u hoeft geen ander virtueel netwerk of subnet te maken.

Welke versies van SQL Server on-premises kunnen deel uitmaken van een synchronisatiegroep?

Alleen de volgende versies van SQL Server on-premises kunnen deel uitmaken van een synchronisatiegroep:

  • SQL Server 2008
  • SQL Server 2008 R2
  • SQL Server 2012
  • SQL Server 2016
  • SQL Server 2017 in Windows
  • SQL Server 2019 in Windows
  • SQL Server 2022 in Windows