Problemen met SQL Data Sync oplossen

Van toepassing op: Azure SQL Database

In dit artikel wordt beschreven hoe u bekende problemen met SQL Data Sync in Azure oplost. Als er een oplossing voor een probleem is, vindt u deze hier.

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

Belangrijk

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

Synchronisatieproblemen

Synchronisatie mislukt in de gebruikersinterface van de portal voor on-premises databases die zijn gekoppeld aan de clientagent

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, ziet System.IO.IOException u fouten in het gebeurtenislogboek. De fouten geven aan dat de schijf onvoldoende ruimte heeft.

  • Oorzaak. Het station heeft onvoldoende ruimte.

  • Oplossing. Maak meer ruimte op het station waarop de map %TEMP% zich bevindt.

Mijn synchronisatiegroep is vastgelopen in de verwerkingsstatus

Een synchronisatiegroep in SQL Data Sync heeft lange tijd de verwerkingsstatus. Deze reageert niet op de stopopdracht en in de logboeken worden geen nieuwe vermeldingen weergegeven.

Een van de volgende voorwaarden kan ertoe leiden dat een synchronisatiegroep vastloopt in de verwerkingsstatus:

  • Oorzaak. De clientagent is offline

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

  • Oorzaak. De clientagent is verwijderd of ontbreekt.

  • Oplossing. Als de clientagent is verwijderd of om een andere reden 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.

  • Oplossing. 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 is gestopt, klikt u met de rechtermuisknop op de servicenaam en selecteert u Start.

Notitie

Als de voorgaande informatie uw synchronisatiegroep niet buiten de verwerkingsstatus verplaatst, kan Microsoft Ondersteuning de status van uw synchronisatiegroep opnieuw instellen. Als u de status van de synchronisatiegroep opnieuw wilt instellen, maakt u op de microsoft Q&A-vragenpagina voor Azure SQL Database een bericht. Neem in het bericht uw abonnements-id en de synchronisatiegroep-id op voor de groep die opnieuw moet worden ingesteld. Een Microsoft Ondersteuning engineer reageert op uw bericht en laat u weten wanneer de status opnieuw is ingesteld.

Ik zie onjuiste 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 van beide tabellen doorgevoerd in dezelfde traceringstabel. Dit veroorzaakt onjuiste gegevenswijzigingen tijdens de synchronisatie.

  • Oplossing. 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 geslaagde 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 standaard. Wijzigingen in een primaire-sleutelkolom leiden tot inconsistente gegevens in rijen waarin de primaire sleutel is gewijzigd.

  • Oplossing. 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 verslechtering van de prestaties

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.

  • Oplossing. 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 invoegen in de kolomkolom<>. Kolom staat null-waarden niet 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. U kunt dit probleem oplossen door een primaire sleutel toe te voegen aan alle tabellen die u synchroniseert.
  • Er is een WHERE-component in uw CREATE INDEX-instructie. Data Sync verwerkt deze voorwaarde niet. U kunt dit probleem oplossen door de WHERE-component te verwijderen of de wijzigingen handmatig aan te brengen in alle databases.

Hoe verwerkt Data Sync kringverwijzingen? Dat wil zeggen dat wanneer dezelfde gegevens in meerdere synchronisatiegroepen worden gesynchroniseerd en hierdoor steeds veranderen?

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

Problemen met clientagent

Zie Problemen met datasynchronisatieagent oplossen om problemen met de clientagent op te lossen.

Problemen met de installatie en het onderhoud

Ik krijg het bericht 'schijf uit de 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.

  • Oplossing. Verwijder handmatig de synchronisatiebestanden die zich in de map %temp% bevinden (del \*sync\* /s). Verwijder dan de submappen in de map %temp%.

Belangrijk

Verwijder geen bestanden terwijl de synchronisatie wordt uitgevoerd.

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.

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

  • Oorzaak. De clientagent is verwijderd of ontbreekt.

  • Oplossing. Als de clientagent is verwijderd of om een andere reden 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 offline.

  • Oplossing. Zorg ervoor dat uw databases online zijn.

  • Oorzaak. De synchronisatiegroep wordt ingericht of gesynchroniseerd.

  • Oplossing. Wacht totdat het inrichtings- of synchronisatieproces is voltooid en probeer de synchronisatiegroep opnieuw te verwijderen.

Ik kan de registratie van een SQL Server-database niet ongedaan maken

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

  • Oplossing. Als u de registratie van een SQL Server-database ongedaan wilt maken, selecteert u de database en selecteert u Vervolgens Geforceerd verwijderen.

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

    1. Stop en start de hostservice van de clientagent opnieuw op:
      a. Selecteer het startmenu .
      b. Voer in het zoekvak services.msc in.
      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 wordt uitgevoerd, stopt u 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 clientagent-app (SqlAzureDataSyncAgent).
    3. Selecteer Referenties bewerken en voer vervolgens de referenties voor de database in.
    4. Ga verder met het ongedaan maken van de registratie.

Ik heb onvoldoende bevoegdheden om systeemservices te starten

  • Oorzaak. Deze fout treedt op in twee situaties:

    • De gebruikersnaam en/of het wachtwoord zijn onjuist.
    • Het opgegeven gebruikersaccount heeft niet voldoende bevoegdheden om u aan te melden als een service.
  • Oplossing. Verdeel aanmeldingsreferenties als een service aan het gebruikersaccount:

    1. Ga naar Start> Configuratiescherm> Beheer istrative Tools>Local Security Policy>Local Policy Local Policy User Rights>Management.
    2. Selecteer Aanmelden als een service.
    3. Voeg in het dialoogvenster Eigenschappen het gebruikersaccount toe.
    4. Selecteer Apply en vervolgens OK.
    5. Sluit alle vensters.

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.

  • Oplossing. U kunt een verouderde status voorkomen door ervoor te zorgen dat geen van uw databases 45 dagen of langer offline gaat.

    Als de status van een database verouderd is:

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

    Waarschuwing

    U verliest alle wijzigingen die in deze database zijn aangebracht terwijl deze offline was.

Een synchronisatiegroep heeft de status Verouderd

  • Oorzaak. Als een of meer wijzigingen niet van toepassing zijn op de hele bewaarperiode van 45 dagen, kan een synchronisatiegroep verouderd raken.

  • Oplossing. Als u een verouderde status voor een synchronisatiegroep wilt voorkomen, bekijkt u regelmatig de resultaten van uw synchronisatietaken in de geschiedenisviewer. Onderzoeken en oplossen van wijzigingen die niet van toepassing zijn.

    Als de status van een synchronisatiegroep verouderd is, verwijdert u de synchronisatiegroep en maakt u deze opnieuw.

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

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

  • Oplossing.

    1. Verwijder een synchronisatiegroep terwijl de bijbehorende synchronisatieagents online zijn (aanbevolen).
    2. Als de agent offline is maar is geïnstalleerd, brengt u deze online op de on-premises 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 verwijderd:
      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.
      c. Probeer de synchronisatiegroep te verwijderen.

Wat gebeurt er wanneer ik een verloren of beschadigde 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 u het foutbericht Sync0022 Customer does not have authorization to perform action 'syncGroupOperationResults/read'ontvangt, beschikt het account dat de bewerking probeert uit te voeren niet over voldoende machtigingen op abonnementsniveau. Voeg toe:

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

Raadpleeg Resourceproviderbewerkingen RBAC en SQL Data Sync Database-accounts met minimale vereiste bevoegdheden voor meer informatie.

Volgende stappen

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

Meer informatie over SQL Database vindt u in: