Dela via


Beskrivning av stöd för SQL Server-databaser på komprimerade volymer

I den här artikeln beskrivs SQL Server-lagringsbeteendet för databasfiler på komprimerade enheter.

Ursprunglig produktversion: SQL Server
Ursprungligt KB-nummer: 231347

Sammanfattning

SQL Server-databaser stöds inte på NTFS- eller FAT-komprimerade volymer, förutom under särskilda omständigheter för SQL Server 2005 och senare versioner. En komprimerad volym garanterar inte sektorjusterade skrivningar, och dessa är nödvändiga för att garantera transaktionsåterställning under vissa omständigheter.

För SQL Server 2005 och senare versioner fungerar databasfillagring på komprimerade enheter på följande sätt:

  • Om datafilen tillhör en skrivskyddad filgrupp tillåts filen.

  • Om datafilen tillhör en skrivskyddad databas tillåts filen.

  • Om transaktionsloggfilen tillhör en skrivskyddad databas tillåts filen.

  • Om du försöker skapa en läs-/skrivdatabas med filer på en komprimerad enhet genererar SQL Server följande fel:

    Msg 5118, Level 16, State 2, Line 1 Filen "<file_name>" komprimeras men finns inte i en skrivskyddad databas eller filgrupp. Filen måste dekomprimeras.

Mer information om undantag för skrivskyddade databaser och skrivskyddade filgrupper i SQL Server 2008 finns på följande MSDN-webbplats:

Skrivskyddade filgrupper och komprimering

Kommentar

Det här avsnittet gäller även för SQL Server 2012 och senare versioner.

Mer information

Även om det är fysiskt möjligt att lägga till SQL Server-databaser på komprimerade volymer rekommenderar vi inte detta och vi stöder det inte. De underliggande orsakerna till detta är följande:

  • Prestanda

    Databaser på komprimerade volymer kan orsaka betydande prestandakostnader. Mängden varierar beroende på volymen av I/O och på förhållandet mellan läsningar och skrivningar. Över 500 procent försämring observerades dock under vissa förhållanden.

  • Återställning av databaser

    Tillförlitlig transaktionsåterställning av databasen kräver sektorjusterade skrivningar och komprimerade volymer stöder inte det här scenariot. Ett andra problem gäller intern hantering av återställningsutrymme. SQL Server reserverar internt förallokerat utrymme i databasfiler för återställningar. Det är möjligt för komprimerade volymer att ta emot ett out of space-fel på förallokerade filer, och detta stör en lyckad återställning.

I vissa scenarier lyckas inte en SQL Server-säkerhetskopiering till en komprimerad volym eller komprimerad mapp. När det här problemet uppstår får du något av följande felmeddelanden.

  • I Windows Vista och senare versioner av Windows

    STATUS_FILE_SYSTEM_LIMITATION Det gick inte att slutföra den begärda åtgärden på grund av en filsystembegränsning
    Operativsystemfel 665(Den begärda åtgärden kunde inte slutföras på grund av en filsystembegränsning)

  • I tidigare versioner av Windows

    STATUS_INSUFFICIENT_RESOURCES det inte finns tillräckligt med systemresurser för att slutföra den begärda tjänsten Operativsystemfel 1450(Det finns inte tillräckligt med systemresurser för att slutföra den begärda eller 33(Processen kan inte komma åt filen eftersom en annan process har låst en del av filen.)

Mer information om det här problemet finns i En kraftigt fragmenterad fil i en NTFS-volym kanske inte växer utöver en viss storlek.

Kommentar

  • Snabbkorrigeringen för Windows Vista och senare versioner av Windows som beskrivs i KB-artikeln 967351 kanske inte löser problemet med SQL Server-säkerhetskopior som inte lyckas till en komprimerad volym eller till en komprimerad mapp. Den här snabbkorrigeringen hjälper dock till att förmedla problemet.
  • När du har tillämpat snabbkorrigeringen som beskrivs i KB-artikeln 967351 måste du formatera den enhet som komprimering är aktiverad på med hjälp av parametern /L . När du formaterar den enhet där komprimering aktiveras med hjälp av parametern /L ökar segmentet Byte per filposter från 1 024 byte till 4 096 byte.

SQL Server-säkerhetskopieringar till komprimerade volymer kan spara diskutrymme. De kan dock öka CPU-användningen under säkerhetskopieringen. Vi rekommenderar alltid att du använder kontrollsummorna för säkerhetskopiering för att garantera dataintegriteten.

SQL Server kräver system som stöder garanterad leverans till stabila medier, enligt beskrivningen i kraven för SQL Server I/O-tillförlitlighetsprogrammet.

Mer information om indata- och utdatakraven för SQL Server-databasmotorn finns i Indata/utdatakrav för Microsoft SQL Server Database Engine