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

Van toepassing op: Azure SQL Database

In deze zelfstudie leert u hoe u SQL Data Sync kunt instellen door een synchronisatiegroep te maken die exemplaren van Azure SQL Database en SQL Server bevat. De synchronisatiegroep is aangepast geconfigureerd en wordt gesynchroniseerd volgens het schema dat u hebt ingesteld.

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

Zie Gegevens synchroniseren tussen meerdere cloud- en on-premises databases met SQL Data Sync voor een overzicht van SQL Data Sync.

Zie Synchroniseren tussen databases in SQL Database of tussen databases in Azure SQL Database en SQL Server voor PowerShell-voorbeelden over het configureren van SQL Data Sync

Belangrijk

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 .

Op dit moment wordt SQL Data Sync 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 Gegevensbeheer de optie Synchroniseren met andere databases.

  4. Op de pagina Synchroniseren met andere databases selecteert u Nieuwe synchronisatiegroep. De pagina Data Sync-groep maken wordt geopend.

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

    A screenshot from the Create Data Sync page of the Azure portal, creating a new Sync Metadata Database to use with Automatic Sync.

    Instelling Beschrijving
    Naam van synchronisatiegroep Voer een naam in voor de nieuwe synchronisatiegroep. Deze naam is verschillend van de naam van de database zelf.
    Database met metagegevens van synchronisatie 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. Met Data Sync worden tabellen in deze database gemaakt en een regelmatige workload uitgevoerd. Deze database wordt gedeeld als de Database met metagegevens van synchronisatie 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 in de sectie SynchronisatiefrequentieSeconden, Minuten, Uren of Dagen.
    De eerste synchronisatie begint nadat de geselecteerde intervalperiode is verstreken vanaf het moment dat de configuratie wordt opgeslagen.
    Conflictoplossing Selecteer Hub heeft voorrang of Lid heeft voorrang.

    Hub heeft voorrang betekent dat als er conflicten optreden, conflicterende gegevens in de liddatabase overschreven worden met gegevens in de database van de hub.

    Lid heeft voorrang betekent dat als er conflicten optreden, conflicterende gegevens in de database van de hub overschreven worden met gegevens in de liddatabase.
    Gebruikersnaam van hubdatabase en hubdatabasewachtwoord Geef de gebruikersnaam en het wachtwoord op voor de geverifieerde aanmelding voor sql van de serverbeheerder 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 momenteel niet ondersteund.
    Private Link gebruiken Kies een door de service beheerd privé-eindpunt om een beveiligde verbinding tot stand te brengen tussen de synchronisatieservice en de hub-database.
  6. Selecteer OK en wacht tot de synchronisatiegroep is gemaakt en geïmplementeerd.

  7. Als u op de pagina Nieuwe synchronisatiegroepPrivate Link gebruiken hebt geselecteerd, moet u de verbinding met het privé-eindpunt goedkeuren. De koppeling in het informatiebericht opent de privé-eindpuntverbindingen, waar u de verbinding kunt goedkeuren.

    A screenshot from the Azure portal Private Endpoint connections page, showing where to approve a private link.

    Notitie

    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.

Notitie

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.

    A screenshot from the Azure portal of the Configure Azure Database page, where you can add a database to the sync group.

  2. Op de pagina Azure SQL Database configureren wijzigt u de volgende instellingen:

    Instelling Beschrijving
    Naam van synchronisatielid Geef een naam op voor het nieuwe synchronisatielid. Deze naam is verschillend van de naam van de database 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 hub zijn naar lid of lid naar hub, of beide. 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 in deze sectie geen nieuwe referenties in.
    Private Link gebruiken Kies een door de 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. Hier kunt u het volgende doen:

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

    A screenshot from the Azure portal, in the Configure On-Premises steps. When the Choose the Sync Agent Gateway option is selected, the Select Sync Agent page is shown.

  4. Kies op de pagina De synchronisatieagent kiezen of u een bestaande agent wilt gebruiken of een 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 van Azure SQL Data Sync Agent. Raadpleeg de aanbevolen procedures voor Azure SQL Data Sync voor aanbevolen procedures voor de synchronisatieclientagent.

      Belangrijk

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

    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. Zoek en voer de clientsynchronisatieagent uit op de server waarop de synchronisatieclientagent is geïnstalleerd.

    A screenshot from the Microsoft SQL Data Sync 2.0 client agent app. The Submit Agent Key button is highlighted.

    1. In de synchronisatieagent-app selecteert u Agentsleutel verzenden. Het dialoogvenster Database met metagegevens van synchronisatie configureren wordt geopend.

    2. In het dialoogvenster Database met metagegevens van synchronisatie configureren plakt u de agentsleutel die in Azure Portal is gekopieerd. Geef ook de bestaande referenties op voor de server waarop de database voor synchronisatiemetagegevensdatabase zich bevindt. Selecteer OK en wacht tot de configuratie is voltooid.

      A screenshot from the Microsoft SQL Data Sync 2.0 client agent app. Enter the agent key and server credentials.

      Notitie

      Als u een firewallfout krijgt, 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.

      A screenshot from the Microsoft SQL Data Sync 2.0 client agent app. Add and configure a SQL Server database.

    4. In het dialoogvenster SQL Server-configuratie kiest u ervoor verbinding te maken met behulp van SQL Server-verificatie of Geïntegreerde Windows-verificatie. Als u voor SQL Server-verificatie kiest, voert u de bestaande referenties in. Geef de naam op van de SQL-server en die van de database die u wilt synchroniseren. Selecteer Verbinding testen om uw instellingen te testen. Selecteer vervolgens Opslaan. De geregistreerde database wordt weergegeven in de lijst.

      A screenshot from the Microsoft SQL Data Sync 2.0 application showing that the SQL Server database and machine are now registered.

    5. Sluit de app Agent voor clientsynchronisatie.

  6. Selecteer in De Azure-portal op de pagina On-premises configureren de database selecteren.

  7. Op de pagina De database selecteren, in het veld Naam van synchronisatielid, geeft u een naam op voor het nieuwe synchronisatielid. Deze naam is verschillend van de naam van de database zelf. Selecteer de database in de lijst. In het veld Synchronisatierichtingen selecteert u Bidirectionele synchronisatie, Naar de hub of Van de hub.

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

Notitie

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 op het SQL Server-exemplaar.

Synchronisatiegroep configureren

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

A screenshot from the Azure portal, on the Tables page, select tables and fields to sync.

  1. Op de pagina Tabellen selecteert u een database in de lijst met leden van de synchronisatiegroep en selecteert u 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. Standaard worden databases pas gesynchroniseerd wanneer dit is gepland. Of de synchronisatie wordt handmatig uitgevoerd. Als u een handmatige synchronisatie wilt uitvoeren, gaat u in Azure Portal naar de database in SQL Database. Selecteer Synchroniseren met andere databases en selecteer de synchronisatiegroep. De pagina Data Sync wordt geopend. Selecteer Synchroniseren.

    A screenshot from the Azure portal showing the manual sync button for a Database Sync Group.

Veelgestelde vragen

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

Maakt SQL Data Sync volledige tabellen?

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

  • 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 gemaakt.
  • Triggers voor de brontabellen worden niet gemaakt.
  • Weergaven en opgeslagen procedures worden niet gemaakt.

Vanwege deze beperkingen raden we u het volgend aan:

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

Waarom worden tabellen weergeven die ik niet heb gemaakt?

Data Sync maakt aanvullende tabellen in de database om wijzigingen bij te houden. Verwijder deze tabellen niet, anders werkt Data Sync niet meer.

Zijn mijn gegevens convergent na een synchronisatie?

Niet noodzakelijk. Stel u hebt een synchronisatiegroep met een hub en drie spokes (A, B en C), waarbij synchronisaties plaatsvinden tussen hub en A, hub en B, en hub en C. Als er een wijziging wordt aangebracht aan database A nadat synchronisatie tussen de hub en A heeft plaatsgevonden, wordt die wijziging pas naar database B of database C geschreven als de volgende synchronisatietaak wordt uitgevoerd.

Hoe kom ik aan schemawijzigingen in een synchronisatiegroep?

Maak alle schemawijzigingen handmatig en geef ze handmatig door.

  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 zijn niet van invloed op de huidige synchronisatie en ze worden genegeerd totdat ze aan het synchronisatieschema worden toegevoegd. Als u nieuwe databaseobjecten toevoegt, volgt u het volgende schema:

  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 net zo lang werken totdat de nieuwe waarden overeenkomen met het oorspronkelijke gegevenstype dat in het synchronisatieschema is gedefinieerd. Als u bijvoorbeeld het gegevenstype in de brondatabase wijzigt van int in bigint, blijft Data Sync werken totdat u een waarde invoert die te groot is voor het gegevenstype int. 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 met Data Sync exporteren en importeren?

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. Schoon de Data Sync-objecten en extra tabellen in de nieuwe database op 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 Veelgestelde vragen over agents 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:

  1. Zorg ervoor dat de firewall in de Azure-database azure-services en -resources heeft ingesteld voor toegang tot deze server op Ja. Zie Azure SQL Database en besturingselementen voor netwerktoegang voor meer informatie.
  2. 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.

Volgende stappen

Gefeliciteerd. U hebt een synchronisatiegroep gemaakt die zowel een Azure SQL-database als een SQL Server-database bevat.

Zie de volgende onderwerpen voor meer informatie over SQL Data Sync:

Zie de volgende onderwerpen voor meer informatie over SQL Database: