Artikel-id: 873235 - Visa produkter som artikeln gäller.
Visa alla | Dölj alla

På den här sidan

INLEDNING

I artikeln finns anvisningar som du måste följa när transaktionsloggarna blir för stora. Fulla transaktionsloggar kan göra Microsoft SQL Server-databasen oanvändbar. I artikeln beskrivs hur du trunkerar och krymper transaktionsloggarna och hur du hindrar transaktionsloggarna från att oväntat bli större.

Mer Information

Minska storleken på transaktionsloggarna

Lös en situation då transaktionsloggarna är fulla genom att minska storleken på transaktionsloggarna. Du måste därför trunkera de inaktiva transaktionerna i transaktionsloggen och krympa transaktionsloggfilen.

Obs! Transaktionsloggarna är mycket viktiga för att behålla databasens transaktionsintegritet. Av den anledningen får du inte ta bort transaktionsloggfilerna, även om du har säkerhetskopierat databasen och transaktionsloggarna.


Mer information om att minska storleken på transaktionsloggarna finns på följande Microsoft-webbplats:
Krympa transaktionsloggen för SQL Server 2000
Krympa transaktionsloggen för SQL Server 2005

Trunkera de inaktiva transaktionerna i transaktionsloggen

När transaktionsloggarna är fulla måste du direkt säkerhetskopiera transaktionsloggfilen. När säkerhetskopieringen av transaktionsloggfilerna sker trunkeras automatiskt den inaktiva delen av transaktionsloggen i SQL Server. Den inaktiva delen av transaktionsloggfilen innehåller slutförda transaktioner och transaktionsloggfilen används därför inte längre av SQL Server vid återställningen. SQL Server återanvänder det trunkerade, inaktiva utrymmet i transaktionsloggen i stället för att låta transaktionsloggen fortsätta bli större och använda mer utrymme.

Mer information om det du måste tänka på när du säkerhetskopierar transaktionsloggarna och återställer transaktionsloggarnas säkerhetskopior finns i följande avsnitt i SQL Server Books Online:
  • Säkerhetskopiering av transaktionsloggar
  • Säkerhetskopiering och återställning av transaktionsloggar
Du kan även ta bort de inaktiva transaktionerna från transaktionsloggfilen med metoden Trunkera. Mer information om trunkering av transaktionsloggar finns i avsnittet "Truncating the transaction log" ("Trunkera transaktionsloggen") i SQL Server Books Online.

Viktigt! När du trunkerar transaktionsloggfilerna manuellt måste du skapa en fullständig säkerhetskopia av databasen innan du skapar en säkerhetskopia av transaktionsloggen.

Om du vill veta mer om problem som kan uppstå vid trunkering av transaktionsloggfiler klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
62866 Orsaker till att SQL-transaktionsloggen inte trunkeras (Detta kan vara på engelska)

Krympa transaktionsloggfilen

Säkerhetskopieringen eller metoden Trunkera minskar inte loggfilens storlek. Minska storleken på transaktionsloggfilen genom att krympa transaktionsloggfilen. Om du vill krympa transaktionsloggfilen till önskad storlek och ta bort oanvända sidor måste du använda åtgärden DBCC SHRINKFILE. DBCC SHRINKFILE Transact-SQL kan endast krympa den inaktiva delen i loggfilen.

Obs! DBCC SHRINKFILE Transact-SQL kan inte trunkera loggen och krympa det utnyttjade utrymmet i loggfilen på egen hand.

Mer information om komprimering av transaktionsloggfilerna finns i följande avsnitt i SQL Server Books Online:
  • Krympa transaktionsloggen
  • DBCC SHRINKFILE
Om du vill veta mer om komprimering av transaktionsloggfiler i SQL Server 2000 klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
272318 Krympa transaktionsloggen i SQL Server 2000 med DBCC SHRINKFILE (Detta kan vara på engelska)
Om du vill veta mer om problem som kan uppstå vid komprimering av transaktionsloggfiler klickar du på följande artikelnummer och läser artiklarna i Microsoft Knowledge Base:
814574 PRB: Felmeddelande: "Kan inte komprimera loggfilen..." inträffar när du krymper transaktionsloggfilen (Detta kan vara på engelska)
324432 PRB: Kommandona DBCC SHRINKFILE och SHRINKDATABASE kanske inte fungerar på grund av glest ifylld text, ntext eller bildkolumner (Detta kan vara på engelska)

Hindra transaktionsloggfilerna från att oväntat bli större

Förhindra transaktionsloggfilerna från att oväntat bli större genom att använda någon av följande metoder:
  • Ange ett högt värde för storlek på transaktionsloggfilerna för att undvika automatisk expandering av transaktionsloggfilerna.
  • Konfigurera automatisk expandering av transaktionsloggfilerna med minnesenheter i stället för med en procentsats när du noggrant utvärderat den optimala minnesstorleken.

    Om du vill veta mer om det du ska tänka på när du konfigurerar alternativet automatisk storleksökning klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
    315512 Att tänka på vid konfiguration av automatisk storleksökning (autogrow) och automatisk storleksminskning (autoshrink) (Detta kan vara på engelska)
  • Ändra återställningsmodell. Om ett haveri inträffar eller data skadas måste du återställa databasen så att databasens datakonsekvens och transaktionsintegritet behålls. Beroende på hur viktiga data som finns i databasen kan du använda någon av följande återställningsmodeller för att ange hur data säkerhetskopieras och hur exponerad du är för dataförlusten:
    • Enkel återställningsmodell
    • Fullständig återställningsmodell
    • Massåterställningsmodell
    Om du använder enkel återställningsmodell kan du återställa databasen till den senaste säkerhetskopian av databasen. Om du använder fullständig återställningsmodell eller massåterställningsmodell kan du återställa databasen till den punkt då felet uppstod genom att återställa databasen med transaktionsloggfilernas säkerhetskopior.

    Återställningsmodellen för en SQL Server-databas i SQL Server 2000 och SQL Server 2005 är som standard inställd på fullständig återställningsmodell. Med den fullständiga återställningsmodellen säkerhetskopieras transaktionsloggarna regelbundet för att hindra storleken på transaktionsloggfilen från att bli oproportionerligt stor i förhållande till databasens storlek. Om transaktionsloggarna inte regelbundet säkerhetskopieras blir transaktionsloggfilen så stor att den fyller disken och du kanske inte kan utföra några dataändringsåtgärder i SQL Server-databasen.

    Du kan ändra återställningsmodell från fullständig till enkel om du inte vill använda transaktionsloggfilerna vid en haveriåterställning.
  • Säkerhetskopiera transaktionsloggfilerna regelbundet och ta bort inaktiva transaktioner ur transaktionsloggen.
  • Utforma små transaktioner.
  • Se till att inga ogenomförda transaktioner fortsätter att köras under obestämd tid.
  • Schemalägg alternativet Uppdatera statistik så att det görs dagligen.
  • Använd DBCC INDEXDEFRAG Transact-SQL i stället för DBCC DBREINDEX Transact-SQL om du vill defragmentera index och få bättre arbetsbelastning i produktionsmiljön. Om du kör DBCC DBREINDEX kanske transaktionsloggen expanderas märkbart när SQL Server-databasen är i fullständigt återställningsläge. Dessutom håller inte DBCC INDEXDEGRAG låsningar under en lång period, till skillnad från DBCC DBREINDEX.

    Mer information om defragmentering av index i SQL Server 2000 finns på följande Microsoft-webbplats:
    Bästa metoder för indexdefragmentering i Microsoft SQL Server 2000
    Om du måste köra DBCC DBREINDEX som ett jobb som utgör en del av underhållsplanen för databasen måste du dela upp jobbet i flera jobb. Dessutom måste du regelbundet säkerhetskopiera transaktionsloggarna mellan jobbkörningarna.

Mer information om transaktionsloggfiler

I SQL Server 2000 och SQL Server 2005 innehåller varje databas minst en datafil och en transaktionsloggfil. I SQL Server lagras data fysiskt i datafilen. I transaktionsloggfilen lagras detaljerna för alla ändringar som du gör i SQL Server-databasen och detaljerna för transaktionerna i varje ändring. Eftersom transaktionsintegriteten anses vara en fundamental och inbyggd egenskap hos SQL Server kan detaljloggningen för transaktionerna inte inaktiveras i SQL Server.

Transaktionsloggfilen delas logiskt in i mindre segment som refereras till som virtuella loggfiler. Du kan konfigurera transaktionsloggfilen i SQL Server 2000 så att den expanderas vid behov. Expanderingen av transaktionsloggen kan styras av användaren eller konfigureras så att allt tillgängligt diskutrymme utnyttjas. Alla ändringar som SQL Server gör gällande storleken på transaktionsloggfilen, exempelvis trunkering av transaktionsloggfilerna eller storleksökning för transaktionsloggfilerna, görs i enheter om virtuella loggfiler.

Om den transaktionsloggfil som motsvarar en SQL Server-databas fylls och du har ställt in alternativet för automatisk storleksökning av transaktionsloggfilerna blir transaktionsloggfilen större i enheter om virtuella loggfiler. Ibland kan transaktionsloggfilen bli mycket stor och diskutrymmet kan ta slut. När en transaktionsloggfil blir större tills loggfilen använt allt tillgängligt diskutrymme och inte kan expandera mer, kan du inte längre göra några dataändringsåtgärder i databasen. Dessutom kanske databasen markeras som misstänkt i SQL Server på grund av utrymmesbristen vid transaktionsloggens expandering.

Om du vill veta mer om de situationer som kan göra så att transaktionsloggfilen oväntat blir större klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
317375 Transaktionsloggarna blir oväntat större eller fulla på SQL Server (Detta kan vara på engelska)

Referenser

Mer information om felsökning av det extra kravet på diskutrymme vid återställningen finns i avsnittet "Insufficient disk space" ("Otillräckligt diskutrymme") i SQL Server Books Online. Mer information om transaktionsloggsarkitekturen finns i följande avsnitt i SQL Server Books Online:
  • Transaktionsloggarnas arkitektur
  • Transaktionsloggarnas logiska arkitektur
  • Transaktionsloggarnas fysiska arkitektur
Mer information om återställningsmodeller i SQL Server 2000 finns i följande avsnitt i SQL Server Books Online:
  • Välja en återställningsmodell
  • Enkel återställning
  • Fullständig återställning
  • Massåterställning
  • Växla återställningsmodeller

Obs! Det här är en "FAST PUBLISH?-artikel som skapats direkt inom Microsofts supportorganisation. Informationen i artikeln tillhandahålls i befintligt skick för att besvara framtida frågor. På grund av den snabba framtagningen kan materialet innehålla typografiska fel och kan utan förvarning när som helst komma att omarbetas. Se användarvillkoren för andra hänsynstaganden.

Egenskaper

Artikel-id: 873235 - Senaste granskning: den 29 februari 2012 - Revision: 2.0
Informationen i denna artikel gäller:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
Nyckelord: 
kbsqlsetup kbdiskmemory kbdisasterrec kbhowto kbconfig kbinfo kbcip KB873235

Ge feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com