Share via


Felsöka problem med SQL Data Sync

Gäller för:Azure SQL Database

I den här artikeln beskrivs hur du felsöker kända problem med SQL Data Sync i Azure. Om det finns en lösning på ett problem tillhandahålls det här.

En översikt över SQL Data Sync finns i Synkronisera data över flera molndatabaser och lokala databaser med SQL Data Sync i Azure.

Viktigt!

SQL Data Sync stöder inte Azure SQL Managed Instance eller Azure Synapse Analytics just nu.

Synkroniseringsproblem

Synkronisering misslyckas i portalens användargränssnitt för lokala databaser som är associerade med klientagenten

Synkronisering misslyckas i SQL Data Sync-portalens användargränssnitt för lokala databaser som är associerade med klientagenten. På den lokala datorn som kör agenten visas System.IO.IOException fel i händelseloggen. Felen säger att disken inte har tillräckligt med utrymme.

  • Orsak. Enheten har inte tillräckligt med utrymme.

  • Lösning. Skapa mer utrymme på den enhet där katalogen %TEMP% finns.

Min synkroniseringsgrupp har fastnat i bearbetningstillståndet

En synkroniseringsgrupp i SQL Data Sync har varit i bearbetningstillståndet under en lång tid. Det svarar inte på stoppkommandot och loggarna visar inga nya poster.

Något av följande villkor kan leda till att en synkroniseringsgrupp fastnar i bearbetningstillståndet:

  • Orsak. Klientagenten är offline

  • Lösning. Se till att klientagenten är online och försök sedan igen.

  • Orsak. Klientagenten är avinstallerad eller saknas.

  • Lösning. Om klientagenten är avinstallerad eller saknas:

    1. Ta bort agentens XML-fil från installationsmappen för SQL Data Sync, om filen finns.
    2. Installera agenten på en lokal dator (det kan vara samma eller en annan dator). Skicka agentnyckeln som genereras i portalen för den agent som visas som offline.
  • Orsak. SQL Data Sync-tjänsten har stoppats.

  • Lösning. Starta om SQL Data Sync-tjänsten.

    1. Sök efter Tjänsterstartmenyn.
    2. Välj Tjänster bland sökresultaten.
    3. Leta reda på tjänsten SQL Data Sync.
    4. Om tjänststatusen är Stoppad högerklickar du på tjänstnamnet och väljer sedan Starta.

Kommentar

Om föregående information inte flyttar synkroniseringsgruppen från bearbetningstillståndet kan Microsoft Support återställa statusen för synkroniseringsgruppen. Om du vill att statusen för synkroniseringsgruppen ska återställas skapar du ett inlägg på microsofts Q&A-frågesida för Azure SQL Database. I inlägget inkluderar du ditt prenumerations-ID och synkroniseringsgruppens ID för den grupp som måste återställas. En Microsoft Support-tekniker svarar på ditt inlägg och meddelar dig när statusen har återställts.

Jag ser felaktiga data i mina tabeller

Om tabeller som har samma namn men som kommer från olika databasscheman ingår i en synkronisering visas felaktiga data i tabellerna efter synkroniseringen.

  • Orsak. SQL Data Sync-etableringsprocessen använder samma spårningstabeller för tabeller som har samma namn men som finns i olika scheman. Därför återspeglas ändringar från båda tabellerna i samma spårningstabell. Detta gör att ändringar i data blir felaktiga under synkroniseringen.

  • Lösning. Se till att namnen på tabeller som ingår i en synkronisering är olika, även om tabellerna tillhör olika scheman i en databas.

Jag ser inkonsekventa primärnyckeldata efter en lyckad synkronisering

En synkronisering rapporteras som lyckad och loggen visar inga misslyckade eller överhoppade rader, men du ser att primärnyckeldata är inkonsekventa mellan databaserna i synkroniseringsgruppen.

  • Orsak. Detta är avsiktligt. Ändringar i en primärnyckelkolumn resulterar i inkonsekventa data på de rader där primärnyckeln ändrades.

  • Lösning. Du kan förhindra det här problemet genom att se till att inga data i en primärnyckelkolumn ändras. Om problemet redan har inträffat kan du åtgärda det genom att ta bort raden med inkonsekventa data från alla slutpunkter i synkroniseringsgruppen. Infoga sedan raden på nytt.

Jag ser en betydande försämring av prestanda

Din prestanda har försämrats avsevärt, kanske till den grad att du inte ens kan öppna Data Sync-användargränssnittet.

  • Orsak. Det beror troligtvis på en synkroniseringsloop. En synkroniseringsloop inträffar när en synkronisering av synkroniseringsgrupp A utlöser en synkronisering av synkroniseringsgrupp B, som sedan utlöser en synkronisering av synkroniseringsgrupp A. Den faktiska situationen kan vara mer komplex och kan omfatta fler än två synkroniseringsgrupper i loopen. Problemet är att det finns en cirkulär utlösning av synkroniseringar på grund av att synkroniseringsgrupperna överlappar varandra.

  • Lösning. Den bästa lösningen är att vidta förebyggande åtgärder. Se till att du inte har cirkelreferenser i dina synkroniseringsgrupper. Se till att de rader som synkroniseras av en synkroniseringsgrupp inte synkroniseras av någon annan synkroniseringsgrupp.

Jag ser det här meddelandet: "Det går inte att infoga värdet NULL i kolumnkolumnen<>. Kolumnen tillåter inte null.". Vad betyder det här och hur kan jag åtgärda det?

Det här felmeddelandet anger att något av följande två problem har uppstått:

  • En tabell har ingen primärnyckel. Åtgärda problemet genom att lägga till en primärnyckel i alla tabeller som du synkroniserar.
  • Det finns en WHERE-sats i CREATE INDEX-instruktionen. Data Sync hanterar inte det här villkoret. Åtgärda problemet genom att ta bort WHERE-satsen eller göra ändringarna i alla databaser manuellt.

Hur hanterar Data Sync cirkelreferenser? Det innebär att när samma data synkroniseras i flera synkroniseringsgrupper och fortsätter att ändras som ett resultat?

Data Sync hanterar inte cirkelreferenser. Se till att undvika detta.

Problem med klientagenten

Information om hur du felsöker problem med klientagenten finns i Felsöka problem med datasynkroniseringsagenten.

Problem med konfiguration och underhåll

Jag får meddelandet "disken har slut på utrymme"

  • Orsak. Det kan visas ett meddelande om att disken har slut på utrymme om överblivna filer behöver tas bort. Detta kan bero på antivirusprogram eller att filer är öppna när borttagningsåtgärder görs.

  • Lösning. Ta bort de synkroniseringsfiler som finns i mappen %temp% (del \*sync\* /s). Ta sedan bort underkatalogerna i mappen %temp%.

Viktigt!

Ta inte bort några filer under tiden synkronisering pågår.

Jag kan inte ta bort min synkroniseringsgrupp

Ditt försök att ta bort en synkroniseringsgrupp misslyckas. Något av följande kan göra att det inte går att ta bort en synkroniseringsgrupp:

  • Orsak. Klientagenten är offline.

  • Lösning. Kontrollera att klientagenten är online och försök sedan igen.

  • Orsak. Klientagenten är avinstallerad eller saknas.

  • Lösning. Om klientagenten är avinstallerad eller saknas:
    a. Ta bort agentens XML-fil från installationsmappen för SQL Data Sync, om filen finns.
    b. Installera agenten på en lokal dator (det kan vara samma eller en annan dator). Skicka agentnyckeln som genereras i portalen för den agent som visas som offline.

  • Orsak. En databas är offline.

  • Lösning. Se till att alla dina databaser är online.

  • Orsak. Synkroniseringsgruppen etablerar eller synkroniserar.

  • Lösning. Vänta tills etablerings- eller synkroniseringsprocessen är klar och försök sedan ta bort synkroniseringsgruppen igen.

Jag kan inte avregistrera en SQL Server-databas

  • Orsak. Troligtvis försöker du avregistrera en databas som redan har tagits bort.

  • Lösning. Om du vill avregistrera en SQL Server-databas väljer du databasen och sedan Framtvinga borttagning.

    Gör följande om det inte går att ta bort databasen från synkroniseringsgruppen med den åtgärden:

    1. Stoppa och starta sedan om klientagentens värdtjänst:
      a. Välj Start-menyn.
      b. Ange services.msc i sökrutan.
      c. Dubbelklicka på Tjänster i avsnittet Program i sökresultatfönstret.
      d. Högerklicka på SQL Data Sync-tjänsten.
      e. Om tjänsten körs stoppar du den.
      f. Högerklicka på tjänsten och välj sedan Starta.
      ex. Kontrollera om databasen fortfarande är registrerad. Om den inte längre är registrerad är du klar. Annars går du vidare till nästa steg.
    2. Öppna klientagentappen (SqlAzureDataSyncAgent).
    3. Välj Redigera autentiseringsuppgifter och ange sedan autentiseringsuppgifterna för databasen.
    4. Fortsätt med avregistreringen.

Jag har inte behörighet att starta systemtjänster

  • Orsak. Det här felet uppstår i två situationer:

    • Användarnamnet och/eller lösenordet är felaktiga.
    • Det angivna användarkontot har inte tillräcklig behörighet för att logga in som en tjänst.
  • Lösning. Bevilja ”Logga in som en tjänst”-behörighet till användarkontot:

    1. Gå till Start Kontrollpanelen Administrative Tools Local Security Policy Local Policy Local Policy User Rights Management.Go to Start> Kontrollpanelen> Administrative Tools>Local Security Policy>Local Policy>User Rights Management.
    2. Välj Logga in som en tjänst.
    3. Lägg till användarkontot i dialogrutan Egenskaper.
    4. Tryck på Tillämpa och välj sedan OK.
    5. Stäng alla fönster.

En databas har statusen ”Inaktuell”

  • Orsak. SQL Data Sync tar bort databaser som har varit offline från tjänsten i 45 dagar eller mer (räknat från den tidpunkt då databasen gick offline). Om en databas är offline i 45 dagar eller mer och sedan kommer tillbaka online får den status inaktuell.

  • Lösning. Du kan undvika inaktuell status genom att se till att ingen av dina databaser är offline i 45 dagar eller mer.

    Om en databass status är inaktuell:

    1. Ta bort databasen som har inaktuell status från synkroniseringsgruppen.
    2. Lägg till databasen i synkroniseringsgruppen igen.

    Varning

    Du förlorar alla ändringar som gjorts i den här databasen när den var offline.

En synkroniseringsgrupp har statusen "Inaktuell"

  • Orsak. Om en eller flera ändringar inte kan tillämpas under hela kvarhållningsperioden på 45 dagar kan en synkroniseringsgrupp bli inaktuell.

  • Lösning. Om du vill undvika inaktuell status för en synkroniseringsgrupp granskar du regelbundet resultatet av dina synkroniseringsjobb i historikvisningsprogrammet. Undersök och lös eventuella ändringar som inte kan tillämpas.

    Om en synkroniseringsgrupps status är Inaktuell tar du bort synkroniseringsgruppen och skapar den igen.

Det går inte att ta bort en synkroniseringsgrupp inom tre minuter efter att agenten har avinstallerats eller stoppats

Du kan inte ta bort en synkroniseringsgrupp inom tre minuter efter att den associerade SQL Data Sync-klientagenten har avinstallerats eller stoppats.

  • Lösning.

    1. Ta bort en synkroniseringsgrupp medan de associerade synkroniseringsagenterna är online (rekommenderas).
    2. Om agenten är offline men är installerad kan du aktivera den på den lokala datorn. Vänta tills agentens status visas som Online i SQL Data Sync-portalen. Ta sedan bort synkroniseringsgruppen.
    3. Om agenten är offline eftersom den avinstallerades:
      a. Ta bort agentens XML-fil från installationsmappen för SQL Data Sync, om filen finns.
      b. Installera agenten på en lokal dator (det kan vara samma eller en annan dator). Skicka agentnyckeln som genereras i portalen för den agent som visas som offline.
      c. Försök att ta bort synkroniseringsgruppen.

Vad händer när jag återställer en förlorad eller skadad databas?

Om du återställer en förlorad eller skadad databas från en säkerhetskopia kan det finnas bristande konvergens i data i de synkroniseringsgrupper som databasen tillhör.

Felmeddelandet ”Sync0022 Kunden har inte behörighet att utföra åtgärden syncGroupOperationResults/read”

Om du får felmeddelandet Sync0022 Customer does not have authorization to perform action 'syncGroupOperationResults/read'har kontot som försöker utföra åtgärden inte tillräcklig behörighet på prenumerationsnivå. Lägg till:

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

Mer information finns i Åtgärder för resursprovider och SQL Data Sync Database-konton med minsta möjliga behörighet.

Nästa steg

Mer information om SQL Data Sync finns i:

Mer information om SQL Database finns i: