Problemen met SQL Data Sync oplossen

Van toepassing op:Azure SQL Database

Important

SQL Data Sync gaat op 30 september 2027 met pensioen. Overweeg te migreren naar alternatieve oplossingen voor data-replicatie en -synchronisatie. Als onderdeel van het pensioenproces kun je geen nieuwe synchronisatiegroepen aanmaken in Azure-abonnementen die eerder geen SQL Data Sync gebruikten. Bestaande synchronisatiegroepen kunnen blijven werken tot de pensioendatum, maar je moet ze vóór die datum migreren naar een alternatieve oplossing.

Dit artikel beschrijft hoe je bekende problemen met SQL Data Sync in Azure kunt troubleshooten. Als er een oplossing is voor een probleem, wordt die hier gegeven.

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

SQL Data Sync biedt geen ondersteuning voor Azure SQL Managed Instance of Azure Synapse Analytics.

Synchronisatieproblemen

Sync faalt in de portaal-UI voor on-premises databases die aan de client agent zijn gekoppeld

Synchronisatie mislukt in de gebruikersinterface van de SQL Data Sync portal voor on-premises databases die zijn gekoppeld aan de clientagent. Op de lokale computer waarop de agent wordt uitgevoerd, zie je System.IO.IOException fouten in het gebeurtenislogboek. De fouten geven aan dat de schijf onvoldoende ruimte heeft.

  • Oorzaak. De schijf heeft onvoldoende schijfruimte.

  • Resolutie. Maak ruimte vrij op het station waar de map %TEMP% zich bevindt.

Mijn synchronisatiegroep zit vast in de verwerkingstoestand

Een synchronisatiegroep in SQL Data Sync bevindt zich al lange tijd in de status Verwerken. Het reageert niet op het stopcommando , en de logs tonen geen nieuwe vermeldingen.

Een van de volgende voorwaarden kan ertoe leiden dat een synchronisatiegroep vastkomt te zitten in de verwerkingstoestand:

  • Oorzaak. De clientagent is offline

  • Resolutie. Zorg ervoor dat de clientagent online is en probeer het vervolgens opnieuw.

  • Oorzaak. De clientagent is verwijderd of ontbreekt.

  • Resolutie. Als de clientagent is gedeïnstalleerd of anderszins ontbreekt:

    1. Verwijder het XML-bestand voor de agent uit de SQL Data Sync-installatiemap, als dit bestand bestaat.
    2. Installeer de agent op een on-premises computer. (Dit kan dezelfde computer zijn of een andere.) Verzend vervolgens de agentsleutel die in de portal is gegenereerd voor de agent die offline is.
  • Oorzaak. De SQL Data Sync-service is gestopt.

  • Resolutie. Start de SQL Data Sync-service opnieuw.

    1. Ga in het menu Start naar Services.
    2. Selecteer Services in de zoekresultaten.
    3. Ga naar de SQL Data Sync-service.
    4. Als de servicestatus Gestopt) is, klik dan met de rechtermuisknop op de naam van de dienst en selecteer dan Start.

Note

Als de voorgaande informatie je synchronisatiegroep niet uit de verwerkingstoestand haalt, kan Microsoft Ondersteuning de status van je synchronisatiegroep resetten. Om de status van je synchronisatiegroep te laten resetten, maak in de Microsoft Q& Een vragenpagina voor Azure SQL Database een bericht. Voeg in het bericht je abonnements-ID en de synchronisatiegroep-ID toe voor de groep die geresetet moet worden. Een Microsoft Ondersteuning-engineer zal op je bericht reageren en je laten weten wanneer de status is gereset.

Ik zie foutieve gegevens in mijn tabellen

Als tabellen met dezelfde naam maar uit verschillende databaseschema's worden opgenomen in een synchronisatie, dan ziet u na de synchronisatie onjuiste gegevens in de tabellen.

  • Oorzaak. Het SQL Data Sync-inrichtingsproces gebruikt dezelfde traceringstabellen voor tabellen die dezelfde naam hebben, maar zich in verschillende schema's bevinden. Hierdoor worden de wijzigingen uit beide tabellen weerspiegeld in dezelfde trackingtabel. Dit veroorzaakt onjuiste gegevenswijzigingen tijdens de synchronisatie.

  • Resolutie. Zorg ervoor dat de namen van tabellen die betrokken zijn bij een synchronisatie verschillend zijn, zelfs als deze tabellen deel uitmaken van verschillende schema's in een database.

Ik zie inconsistente primaire sleutelgegevens na een succesvolle synchronisatie

Een synchronisatie wordt gerapporteerd als 'geslaagd' en het logboek bevat geen mislukte of overgeslagen rijen, maar u ziet dat primaire sleutelgegevens inconsistent zijn tussen de databases in de synchronisatiegroep.

  • Oorzaak. Dit resultaat is zoals bedoeld. Wijzigingen in een primaire-sleutelkolom leiden tot inconsistente gegevens in rijen waarin de primaire sleutel is gewijzigd.

  • Resolutie. U kunt dit probleem voorkomen door ervoor te zorgen dat er geen gegevens in een primaire-sleutelkolom worden gewijzigd. Als u dit probleem wilt oplossen nadat het is opgetreden, dan verwijdert u de rij met inconsistente gegevens van alle eindpunten in de synchronisatiegroep. Plaats dan de rij opnieuw.

Ik zie een aanzienlijke prestatievermindering

Uw prestaties verslechteren aanzienlijk, wellicht tot het punt waarop u de gebruikersinterface van Data Sync niet eens kunt openen.

  • Oorzaak. De meest waarschijnlijke oorzaak is een synchronisatielus. Een synchronisatielus treedt op wanneer een synchronisatie per synchronisatiegroep A een synchronisatie activeert door synchronisatiegroep B, die dan een synchronisatie door synchronisatiegroep A activeert. De werkelijke situatie kan complexer zijn en er kunnen meer dan twee synchronisatiegroepen in de lus bij betrokken zijn. Het probleem is dat er een kringvormige activering van synchronisatie is, die wordt veroorzaakt doordat synchronisatiegroepen elkaar overlappen.

  • Resolutie. De beste oplossing is preventie. Zorg dat uw synchronisatiegroepen geen kringverwijzingen bevatten. Een rij die door één synchronisatiegroep wordt gesynchroniseerd, kan dan niet worden gesynchroniseerd door een andere synchronisatiegroep.

Ik zie dit bericht: "Kan de waarde NULL niet in de kolomkolom <>invoegen. De kolom staat geen nullen toe." Wat betekent dit, en hoe kan ik het oplossen?

Dit foutbericht geeft aan dat een van deze volgende twee problemen is opgetreden:

  • Een tabel heeft geen primaire sleutel. Om dit probleem op te lossen, voeg je een primaire sleutel toe aan alle tabellen die je synchroniseert.
  • Er zit een WHERE-clausule in je CREATE INDEX-instructie. Data Sync verwerkt deze voorwaarde niet. Om dit probleem op te lossen, verwijder je de WHERE-clausule of breng je handmatig wijzigingen aan in alle databases.

Hoe gaat Data Sync om met circulaire referenties? Dat wil zeggen, wanneer dezelfde data in meerdere synchronisatiegroepen wordt gesynchroniseerd en daardoor steeds verandert?

Data Sync verwerkt geen kringverwijzingen. Zorg dat u deze vermijd.

Kwesties rond een cliëntagent

Om problemen met de client agent op te lossen, zie Troubleshoot Data Sync Agent issues.

Problemen met de installatie en het onderhoud

Ik krijg een bericht "schijf zonder ruimte"

  • Oorzaak. Het bericht 'Onvoldoende schijfruimte' kan worden weergegeven als resterende bestanden moeten worden verwijderd. Dit kan worden veroorzaakt door antivirussoftware of door bestanden die zijn geopend wanneer verwijderingsbewerkingen worden uitgevoerd.

  • Resolutie. Verwijder handmatig de synchronisatiebestanden die in de %temp%-map staan (del \*sync\* /s). Verwijder dan de submappen in de map %temp%.

Important

Verwijder geen bestanden terwijl de synchronisatie bezig is.

Ik kan mijn synchronisatiegroep niet verwijderen

Uw poging om een synchronisatiegroep te verwijderen mislukt. Een van de volgende scenario's kan ertoe leiden dat een synchronisatiegroep niet kan worden verwijderd:

  • Oorzaak. De clientagent is offline.

  • Resolutie. Zorg ervoor dat de klantagent online is en probeer het dan opnieuw.

  • Oorzaak. De clientagent is verwijderd of ontbreekt.

  • Resolutie. Als de clientagent is gedeïnstalleerd of anderszins ontbreekt:
    a. Verwijder het XML-bestand voor de agent uit de SQL Data Sync-installatiemap, als dit bestand bestaat.
    b. Installeer de agent op een on-premises computer. (Dit kan dezelfde computer zijn of een andere.) Verzend vervolgens de agentsleutel die in de portal is gegenereerd voor de agent die offline is.

  • Oorzaak. Een database is niet beschikbaar.

  • Resolutie. Zorg ervoor dat al je databases online zijn.

  • Oorzaak. De synchronisatiegroep is bezig met provisionen of synchronisaties.

  • Resolutie. Wacht tot het provisioning- of syncproces is afgerond en probeer dan opnieuw de syncgroep te verwijderen.

Ik kan een SQL Server-database niet deregistreren

  • Oorzaak. Waarschijnlijk probeert u de registratie van een database die al is verwijderd ongedaan te maken.

  • Resolutie. Om een SQL Server-database te verwijderen, selecteer je de database en selecteer je vervolgens Force Delete.

    Als de bewerking de database niet kan verwijderen uit de synchronisatiegroep:

    1. Stop en start vervolgens de hostdienst van de client agent opnieuw:
      a. Selecteer het startmenu .
      b. Voer in het zoekvak services.msc in.
      Hoofdstuk c. Dubbelklik in de sectie Programma's van het deelvenster met zoekresultaten op Services.
      d. Start de SQL Data Sync-service opnieuw.
      e. Als de service actief is, stop deze.
      f. Klik met de rechtermuisknop op de service en selecteer dan Starten.
      g. Controleer of de database nog steeds is geregistreerd. Als het niet meer is geregistreerd, bent u klaar. Anders gaat u door met de volgende stap.
    2. Open de client agent app (SqlAzureDataSyncAgent).
    3. Selecteer Inloggegevens bewerken en voer vervolgens de inloggegevens van de database in.
    4. Ga door met het uitschrijven.

Ik heb niet voldoende privileges om systeemdiensten te starten

  • Oorzaak. Deze fout treedt op in twee situaties:

    • De gebruikersnaam en/of het wachtwoord zijn onjuist.
    • Het opgegeven gebruikersaccount heeft niet voldoende rechten om als dienst in te loggen.
  • Resolutie. Verleen de gebruikersaccount de bevoegdheid om zich als service aan te melden:

    1. Ga naar Start>Configuratiescherm>Systeembeheer>Lokaal beveiligingsbeleid>Lokaal beleid>Toewijzing van gebruikersrechten.
    2. Selecteer Inloggen als dienst.
    3. Voeg in het dialoogvenster Eigenschappen het gebruikersaccount toe.
    4. Selecteer Toepassen en selecteer vervolgens OK.
    5. Sluit alle ramen.

Een database heeft de status "Verouderd"

  • Oorzaak. SQL Data Sync verwijdert databases die gedurende 45 dagen of langer offline zijn geweest van de service (geteld vanaf het moment dat de database offline ging). Als een database 45 dagen of langer offline is en vervolgens weer online komt, is de status Verouderd.

  • Resolutie. Je kunt een verouderde status voorkomen door ervoor te zorgen dat geen van je databases 45 dagen of langer offline gaat.

    Als de status van een database verouderd is:

    1. Verwijder de database met een verouderde status uit de synchronisatiegroep.
    2. Voeg de database weer toe aan de synchronisatiegroep.

    Warning

    Je verliest alle wijzigingen die aan deze database zijn gedaan terwijl deze offline was.

Een synchronisatiegroep heeft de status "Verouderd"

  • Oorzaak. Als één of meer wijzigingen niet gelden voor de volledige retentieperiode van 45 dagen, kan een synchronisatiegroep verouderd raken.

  • Resolutie. Om een verouderde status voor een synchronisatiegroep te voorkomen, bekijk regelmatig de resultaten van je synchronisatieopdrachten in de geschiedenisviewer. Onderzoek en los eventuele wijzigingen op die niet van toepassing zijn.

    Als de status van een synchronisatiegroep verouderd is, verwijder je de synchronisatiegroep en maak je deze vervolgens opnieuw aan.

Een synchronisatiegroep kan niet binnen drie minuten na het verwijderen of stoppen van de agent worden verwijderd

U kunt een synchronisatiegroep niet verwijderen binnen drie minuten na verwijderen of stoppen van de bijbehorende SQL Data Sync clientagent.

  • Resolutie.

    1. Verwijder een synchronisatiegroep terwijl de bijbehorende synchronisatieagenten online zijn (aanbevolen).
    2. Als de agent offline is maar geïnstalleerd, breng hem dan online op de lokale computer. Wacht totdat de status van de agent wordt weergegeven als Online in de SQL Data Sync-portal. Verwijder dan de synchronisatiegroep.
    3. Als de agent offline is omdat deze is gedeïnstalleerd:
      a. Verwijder het XML-bestand voor de agent uit de SQL Data Sync-installatiemap, als dit bestand bestaat.
      b. Installeer de agent op een on-premises computer. (Dit kan dezelfde computer zijn of een andere.) Verzend vervolgens de agentsleutel die in de portal is gegenereerd voor de agent die offline is.
      Hoofdstuk c. Probeer de synchronisatiegroep te verwijderen.

Wat gebeurt er als ik een verloren of corrupte database herstel?

Als u een verloren of beschadigde database herstelt vanuit een back-up, dan is er mogelijk een niet-convergentie van gegevens in de synchronisatiegroepen waartoe de database behoort.

Foutbericht 'Sync0022 Klant is niet gemachtigd om de actie 'syncGroupOperationResults/read' uit te voeren'

Als je het foutbericht Sync0022 Customer does not have authorization to perform action 'syncGroupOperationResults/read'ontvangt, heeft het account dat de operatie probeert niet voldoende abonnementsrechten. Toevoegen:

  • "Microsoft.Sql/locations/syncMemberOperationResults/read"
  • "Microsoft.Sql/locations/syncAgentOperationResults/read"
  • "Microsoft.Sql/locations/syncGroupOperationResults/read"

Raadpleeg RBAC-bewerkingen van resourceproviders en SQL Data Sync Database-accounts met de minimaal vereiste bevoegdheden voor meer informatie.