Beskrivning av stöd för nätverksdatabasfiler i SQL Server

I den här artikeln beskrivs stöd för nätverksdatabasfiler i SQL Server och hur du konfigurerar SQL Server för att lagra en databas på en nätverksserver eller på en NAS-lagringsserver.

Ursprunglig produktversion: SQL Server
Ursprungligt KB-nummer: 304261

Sammanfattning

Microsoft rekommenderar vanligtvis att du använder ett SAN (Storage Area Network) eller en lokalt ansluten disk för lagring av dina Microsoft SQL Server-databasfiler eftersom den här konfigurationen optimerar SQL Server-prestanda och tillförlitlighet. Som standard är användningen av nätverksdatabasfiler som lagras på en nätverksserver eller en NAS-server (Network Attached Storage) inte aktiverad för SQL Server.

Du kan dock konfigurera SQL Server för att lagra en databas på en nätverksserver eller NAS-server. Servrar som används för detta ändamål måste uppfylla SQL Server-kraven för dataskrivningsordning och genomskrivningsgarantier. Dessa beskrivs i avsnittet Mer information .

Följande villkor beskriver användningen av nätverksdatabasfiler som lagras på en nätverksserver eller NAS-server:

  • Den här användningen är aktiverad som standard i Microsoft SQL Server 2008 R2 och senare versioner.

  • Den här användningen kräver att flaggan -T1807-startspårning fungerar i Microsoft SQL Server 2008 och tidigare versioner. Från och med SQL Server 2012 krävs inte längre spårningsflaggan. Mer information om hur du aktiverar startspårningsflaggor finns i Startalternativ för databasmotortjänsten.

Windows Hardware Quality Lab (WHQL)-kvalificerade enheter

Microsoft Windows-servrar och nätverksservrar eller NAS-lagringsservrar som är WHQL-kvalificerade (Windows Hardware Quality Lab) uppfyller automatiskt de dataskrivningsordnings- och skrivgarantier som krävs för att stödja en SQL Server-lagringsenhet. Microsoft stöder både program- och lagringsrelaterade problem i dessa konfigurationer.

Kommentar

För att kunna stödjas av SQL Server bör NAS-lagringslösningen även uppfylla alla krav som anges i nedladdningsdokumentet: KRAV för SQL Server IO-tillförlitlighetsprogram.

Andra enheter

Om du använder en icke-WHQL-kvalificerad lagringsenhet med SQL Server som stöder I/O-garantierna för transaktionsdatabasanvändning som beskrivs i den här artikeln ger Microsoft fullständigt stöd för SQL Server- och SQL Server-baserade program. Problem med eller orsakas av enheten eller dess lagringsundersystem hänvisas dock till enhetstillverkaren. Om du använder en icke-WHQL-kvalificerad lagringsenhet som inte stöder I/O-garantierna för transaktionsdatabasanvändning som beskrivs i den här artikeln kan Microsoft inte ge stöd för SQL Server- eller SQL Server-baserade program. Om du vill ta reda på om din icke-WHQL-kvalificerade lagringsenhet stöder I/O-garantierna för transaktionsdatabasanvändning som beskrivs i den här artikeln eller är utformade för databasanvändning kontrollerar du med enhetsleverantören. Kontakta också enhetsleverantören för att kontrollera att du har distribuerat och konfigurerat enheten för transaktionsdatabasanvändning.

Mer information

I SQL Server 2008 och tidigare versioner kan du som standard inte skapa en SQL Server-databas på en nätverksfilresurs. Alla försök att skapa en databasfil på en mappad eller UNC-nätverksplats genererar något av följande felmeddelanden:

  • Felmeddelande 1

    5105 "Enhetsaktiveringsfel"

  • Felmeddelande 2

    5110 "Filen "file_name" finns på en nätverksenhet som inte stöds för databasfiler."

Detta är ett förväntat beteende. Spårningsflagga 1807 kringgår kontrollen och gör att du kan konfigurera SQL Server med nätverksbaserade databasfiler. SQL Server och de flesta andra företagsdatabassystem använder en transaktionslogg och tillhörande återställningslogik för att upprätthålla transaktionsdatabaskonsekvens i händelse av ett systemfel eller en ohanterad avstängning. Dessa återställningsprotokoll förlitar sig på möjligheten att skriva direkt till diskmediet så att när en operativsystemets in-/utdatabegäran (I/O) återgår till databashanteraren kan återställningssystemet vara säker på att skrivningen är klar eller att slutförandet av skrivningen kan garanteras. Eventuella fel av någon programvara eller maskinvarukomponent för att uppfylla detta protokoll kan orsaka en partiell eller total dataförlust eller skada i händelse av ett systemfel. Mer information om dessa aspekter av loggnings- och återställningsprotokoll i SQL Server finns i Beskrivning av loggnings- och datalagringsalgoritmer som utökar datatillförlitligheten i SQL Server.

Microsoft stöder inte nätverksanslutna SQL Server-databasfiler på NAS- eller nätverksbaserade lagringsservrar som inte uppfyller dessa krav på skriv- och skrivordning.

På grund av riskerna med nätverksfel som äventyrar databasintegriteten, tillsammans med möjliga prestandakonsekvenser som kan uppstå vid användning av nätverksfilresurser för att lagra databaser, rekommenderar Microsoft att du lagrar databasfiler antingen på lokala diskundersystem eller på lagringsområdesnätverk (SAN).

Ett NAS-system (Network Attached Storage) är ett filbaserat lagringssystem som klienter ansluter till via nätverksomdirigeringstjänsten med hjälp av ett nätverksprotokoll (till exempel TCP/IP). Om åtkomst till en diskresurs som standard kräver att en resurs mappas, eller om diskresursen visas som en fjärrserver via en UNC-sökväg (till exempel \Servername\Sharename) i nätverket, stöds inte disklagringssystemet som en plats för SQL Server-databaser.

Prestandaproblem

SQL Server kan, precis som andra företagsdatabassystem, lägga en stor belastning på ett I/O-undersystem. I de flesta stora databasprogram spelar fysisk I/O-konfiguration och justering en viktig roll för övergripande systemprestanda. Det finns tre viktiga I/O-prestandafaktorer att tänka på:

  • I/O-bandbredd: Den aggregerade bandbredden, som vanligtvis mäts i megabyte per sekund och som kan upprätthållas för en databasenhet.
  • I/O-svarstid: Svarstiden, som vanligtvis mäts i millisekunder, mellan en begäran om I/O av databassystemet och den punkt där I/O-begäran har slutförts.
  • CPU-kostnad: Värd-CPU-kostnaden, som vanligtvis mäts i CPU-mikrosekunder, för databassystemet för att slutföra en enda I/O.

Någon av dessa I/O-faktorer kan bli en flaskhals och du måste tänka på alla dessa faktorer när du utformar ett I/O-system för ett databasprogram.

I sin enklaste form använder en NAS-lösning en standardprogramstack för nätverksomdirigering, standardkort för nätverksgränssnitt (NIC) och ethernet-standardkomponenter. Nackdelen med den här konfigurationen är att all fil-I/O bearbetas via nätverksstacken och omfattas av bandbreddsbegränsningarna för själva nätverket. Detta kan skapa prestanda- och datatillförlitlighetsproblem, särskilt i program som kräver höga nivåer av fil-I/O, till exempel SQL Server. I vissa NAS-konfigurationer som testades av Microsoft var I/O-dataflödet en tredjedel (1/3) för en direktansluten lagringslösning på samma server. I samma konfiguration var cpu-kostnaden för att slutföra en I/O via NAS-enheten dubbelt så hög som för en lokal I/O. I takt med att NAS-enheter och nätverksinfrastruktur utvecklas kan dessa förhållanden också förbättras i förhållande till direktansluten lagring eller SAN. Om dina programdata till största delen cachelagras i databasbuffertpoolen och du inte stöter på någon av de I/O-flaskhalsar som beskrivs är prestanda på ett NAS-baserat system förmodligen tillräckligt för ditt program.

Överväganden för säkerhetskopiering och återställning

SQL Server tillhandahåller VDI (Virtual Device Interface) för säkerhetskopiering. VDI ger leverantörer av säkerhetskopieringsprogram ett högpresterande, skalbart och tillförlitligt sätt att utföra frekventa säkerhetskopieringar och för att återställa SQL Server-databaser.

Säkerhetskopieringsprogramvaran fungerar på databasfiler som lagras på NAS-enheter via VDI utan särskilt stöd för NAS. Detta resulterar dock i massor av ytterligare nätverkstrafik under säkerhetskopiering och återställning. Under säkerhetskopiering via VDI läser SQL Server filerna via fjärranslutning och skickar data till säkerhetskopieringsprogramvaran från tredje part som körs på SQL Server-datorn. Återställningsåtgärden är analog.

För att undvika extra nätverkskostnader måste leverantören av säkerhetskopieringen tillhandahålla NAS-specifik support från leverantören av säkerhetskopieringen och NAS-leverantören. MED SQL Server VDI kan säkerhetskopieringsprogramvaran dra nytta av maskinvarutekniker (split-mirror) eller programvara (copy-on-write) som stöds av NAS-enheterna för att göra snabba kopior av databasfilerna lokala för NAS. Dessa tekniker undviker inte bara kostnaderna för att kopiera filerna över nätverket för säkerhetskopiering, de kan också minska återställningstiderna efter storleksordning.

Säkerhetskopior som lagras på NAS är sårbara för samma fel som påverkar databasfiler som lagras på NAS. Du bör överväga att skydda dessa säkerhetskopior genom att kopiera dem till alternativa medier.

Varning

Det kan uppstå databasfel i säkerhetskopieringen om du använder NAS-säkerhetskopieringstekniker utan stöd för SQL Server VDI. Sådan skada omfattar sönderrivna sidor eller inkonsekvenser mellan logg- och datafilerna om de lagras på separata enheter. SQL Server kanske inte identifierar de skadade sidorna eller inkonsekvenserna förrän du återställer databasen och kommer åt skadade data. Microsoft stöder inte användning av NAS-säkerhetskopieringstekniker som inte är samordnade med SQL Server.

Stöd för säkerhetskopiering och NAS-leverantörsstöd för SQL Server VDI varierar. Kontakta dina NAS- och programvaruleverantörer för säkerhetskopiering för mer information om VDI-support.

Microsoft uppmanar kunder som överväger att distribuera en NAS-lösning för SQL Server-databaser att kontakta sin NAS-leverantör för att se till att lösningen från slutpunkt till slutpunkt är avsedd för databasanvändning. Många NAS-leverantörer har metodtipsguider och certifierade konfigurationer för den här användningen. Microsoft rekommenderar också att kunderna jämför sina I/O-prestanda för att säkerställa att ingen av de I/O-faktorer som nämnts tidigare orsakar en flaskhals i deras program.

I följande lista beskrivs stöd för nätverksbaserade filer i SQL-redundanskluster:

Ytterligare kommentarer

Felaktig användning av databasprogramvara med en NAS-produkt eller databasanvändning med en felaktigt konfigurerad NAS-produkt kan leda till dataförlust inklusive total databasförlust. Om NAS-enheten eller nätverksprogramvaran inte helt uppfyller datagarantierna, till exempel skrivordning eller genomskrivning, kan maskinvara, programvara eller till och med strömavbrott allvarligt äventyra dataintegriteten.

Referenser