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 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 molndatabaseroch lokala databaser med SQL Data Sync i Azure .

Viktigt

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

Synkroniseringsproblem

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

Sync misslyckas i SQL Data Sync-portalens användargränssnitt för lokala databaser som är associerade med klientagenten. På den lokala dator 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ånd under en längre tid. Den svarar inte på stoppkommandot och loggarna visar inga nya poster.

Något av följande villkor kan resultera i 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. I Start-menyn söker du efter Tjänster.
    2. I sökresultatet väljer du Tjänster.
    3. Leta upp SQL Data Sync tjänsten.
    4. Om tjänststatusen är Stoppad högerklickar du på tjänstnamnet och väljer sedan Starta.

Anteckning

Om föregående information inte flyttar synkroniseringsgruppen från bearbetningstillståndet kan Microsoft Support återställa status för synkroniseringsgruppen. Om du vill återställa synkroniseringsgruppens status går du till sidan Microsoft Q&A question (En fråga för Azure SQL Database) och skapar ett inlägg. I inlägget inkluderar du ditt prenumerations-ID och synkroniseringsgruppens ID för den grupp som behöver återställas. En Microsoft Support tekniker svarar på ditt inlägg och kommer att meddela 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. Den 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 orsakar felaktiga dataändringar under synkroniseringen.

  • Lösning. Se till att namnen på tabeller som är inblandade 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 bland databaserna i synkroniseringsgruppen.

  • Orsak. Det här resultatet är enligt design. Ändringar i en primärnyckelkolumn resulterar i inkonsekventa data på de rader där primärnyckeln ändrades.

  • Lösning. Se till att inga data i en primärnyckelkolumn ändras för att förhindra det här problemet. Åtgärda problemet när det har inträffat genom att ta bort raden som har inkonsekventa data från alla slutpunkter i synkroniseringsgruppen. Sedan sätter du in raden igen.

Jag ser en betydande försämring i prestanda

Prestandan försämras avsevärt, möjligen till den punkt där du inte ens kan öppna Data Sync användargränssnitt.

  • Orsak. Den troligaste orsaken är en synkroniseringsloop. En synkroniseringsloop inträffar när en synkronisering efter 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 den kan omfatta fler än två synkroniseringsgrupper i loopen. Problemet är att det finns en cirkulär utlösare av synkronisering som orsakas av att synkroniseringsgrupper överlappar varandra.

  • Lösning. Den bästa korrigeringen är att förebygga. Se till att du inte har cirkelreferenser i dina synkroniseringsgrupper. Alla rader som synkroniseras av en synkroniseringsgrupp kan inte synkroniseras av en annan synkroniseringsgrupp.

Jag ser det här meddelandet: "Det går inte att infoga värdet NULL i kolumnen <column> . Kolumnen tillåter inte null-värden." Vad innebär detta 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 manuellt göra ändringarna i alla databaser.

Hur hanterar Data Sync cirkelreferenser? Det vill säga när samma data synkroniseras i flera synkroniseringsgrupper och ändras till följd av detta?

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

Problem med klientagenten

Information om hur du felsöker problem med klientagenten finns i Felsöka Data Sync Agent problem.

Problem med installation och underhåll

Jag får ett meddelande om att disken har slut på utrymme

  • Orsak. Meddelandet "Diskens slut på utrymme" kan visas om överkommande filer behöver tas bort. Detta kan bero på ett antivirusprogram eller att filerna är öppna när borttagningsåtgärder görs.

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

Viktigt

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

Jag kan inte ta bort min synkroniseringsgrupp

Det går inte att ta bort en synkroniseringsgrupp. Något av följande scenarier kan resultera i 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 etableras eller synkroniseras.

  • Lösning. Vänta tills etableringen eller synkroniseringen är klar och försök sedan att ta bort synkroniseringsgruppen igen.

Jag kan inte avregistrera en SQL Server databas

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

  • Lösning. Om du vill avregistrera SQL Server en databas markerar du databasen och väljer sedan Tvinga bort.

    Om den här åtgärden inte kan ta bort databasen från synkroniseringsgruppen:

    1. Stoppa och starta sedan om klientagentens värdtjänst:
      a. Välj Start-menyn.
      b. I sökrutan anger du services.msc.
      c. Dubbelklicka Tjänster i avsnittet Program i fönstret med sökresultat.
      d. Högerklicka på SQL Data Sync tjänsten.
      e. Stoppa tjänsten om den körs.
      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 fortsätter du med nästa steg.
    2. Öppna klientagentappen (SqlAzureDataSyncAgent).
    3. Välj Redigera autentiseringsuppgifter och ange sedan autentiseringsuppgifterna för databasen.
    4. Fortsätt med avregistrering.

Jag har inte tillräcklig behörighet för 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 inloggningsuppgifter som en tjänst till användarkontot:

    1. Gå till Start > Kontrollpanelen > Administrationsverktyg Lokal > säkerhetsprincip Lokal > > principanvändare 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 "In-of-Date"

  • 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 är online igen är dess status In-of-Date(In date).

  • Lösning. Du kan undvika statusen In date genom att se till att ingen av dina databaser går offline under 45 dagar eller mer.

    Om en databas status är In-of-Date:

    1. Ta bort databasen som har statusen Inaktuell 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 för hela kvarhållningsperioden på 45 dagar kan en synkroniseringsgrupp bli inaktuell.

  • Lösning. För att undvika statusen Inaktuell för en synkroniseringsgrupp granskar du regelbundet resultatet av synkroniseringsjobben i historikvisningsprogrammet. Undersök och lös eventuella ändringar som inte kan tillämpas.

    Om synkroniseringsgruppens status är Inaktuell tar du bort synkroniseringsgruppen och skapar den sedan på nytt.

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 från avinstallationen eller stoppa den associerade SQL Data Sync klientagenten.

  • Lösning.

    1. Ta bort en synkroniseringsgrupp när de associerade synkroniseringsagenterna är online (rekommenderas).
    2. Om agenten är offline men har installerats kan du ta den online 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 på grund av att den har avinstallerats:
      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 en icke-konvergens av data i de synkroniseringsgrupper som databasen tillhör.

Nästa steg

Mer information om SQL Data Sync finns i:

Mer information om SQL Database finns i: