Beschrijving van de ondersteuning voor netwerkdatabasebestanden in SQL Server

In dit artikel wordt de ondersteuning beschreven voor netwerkdatabasebestanden in SQL Server en hoe u SQL Server configureert voor het opslaan van een database op een netwerkserver of op een NAS-opslagserver.

Originele productversie: SQL Server
Origineel KB-nummer: 304261

Samenvatting

Microsoft raadt u over het algemeen aan een SAN (Storage Area Network) of lokaal gekoppelde schijf te gebruiken voor de opslag van uw Microsoft SQL Server-databasebestanden, omdat deze configuratie SQL Server prestaties en betrouwbaarheid optimaliseert. Standaard is het gebruik van netwerkdatabasebestanden die zijn opgeslagen op een netwerkserver of een NAS-server (Network Attached Storage) niet ingeschakeld voor SQL Server.

U kunt echter SQL Server configureren om een database op te slaan op een netwerkserver of NAS-server. Servers die voor dit doel worden gebruikt, moeten voldoen aan SQL Server vereisten voor het ordenen en doorschrijven van gegevens. Deze worden beschreven in de sectie Meer informatie .

De volgende voorwaarden beschrijven het gebruik van netwerkdatabasebestanden die zijn opgeslagen op een netwerkserver of NAS-server:

  • Dit gebruik is standaard ingeschakeld in Microsoft SQL Server 2008 R2 en latere versies.

  • Voor dit gebruik is vereist dat de vlag -T1807 opstarttracering werkt in Microsoft SQL Server 2008 en eerdere versies. Vanaf SQL Server 2012 is de traceringsvlag niet meer vereist. Zie Opstartopties voor database-engineservice voor meer informatie over het inschakelen van opstarttraceringsvlagmen.

Windows Hardware Quality Lab (WHQL)-gekwalificeerde apparaten

Microsoft Windows-servers en netwerkservers of NAS-opslagservers die zijn gekwalificeerd voor Windows Hardware Quality Lab (WHQL) voldoen automatisch aan de gegevens schrijfvolgorde en write-through garanties die vereist zijn voor de ondersteuning van een SQL Server opslagapparaat. Microsoft ondersteunt zowel toepassings- als opslagproblemen in deze configuraties.

Opmerking

Om door SQL Server te worden ondersteund, moet de NAS-opslagoplossing ook voldoen aan alle vereisten die worden vermeld in het downloaddocument: vereisten voor SQL Server IO-betrouwbaarheidsprogramma.

Andere apparaten

Als u een niet-WHQL-gekwalificeerd opslagapparaat gebruikt met SQL Server dat de I/O-garanties voor transactioneel databasegebruik ondersteunt, zoals beschreven in dit artikel, biedt Microsoft volledige ondersteuning voor toepassingen op basis van SQL Server en SQL Server. Problemen met of veroorzaakt door het apparaat of het opslagsubsysteem worden echter doorverwezen naar de fabrikant van het apparaat. Als u een niet-WHQL-gekwalificeerd opslagapparaat gebruikt dat geen ondersteuning biedt voor de I/O-garanties voor transactioneel databasegebruik zoals beschreven in dit artikel, kan Microsoft geen ondersteuning bieden voor op SQL Server of SQL Server gebaseerde toepassingen. Neem contact op met de leverancier van uw apparaat om te bepalen of uw niet-WHQL-gekwalificeerde opslagapparaat de I/O-garanties voor transactioneel databasegebruik ondersteunt die in dit artikel worden beschreven of zijn ontworpen voor databasegebruik. Neem ook contact op met de leverancier van uw apparaat om te controleren of u het apparaat correct hebt geïmplementeerd en geconfigureerd voor transactioneel databasegebruik.

Meer informatie

In SQL Server 2008 en eerdere versies kunt u standaard geen SQL Server database maken op een netwerkbestandsshare. Elke poging om een databasebestand te maken op een toegewezen of UNC-netwerklocatie genereert een van de volgende foutberichten:

  • Foutbericht 1

    5105 'Apparaatactiveringsfout'

  • Foutbericht 2

    5110 'Bestand 'file_name' is op een netwerkapparaat dat niet wordt ondersteund voor databasebestanden.

Dit gedrag wordt verwacht. Traceringsvlag 1807 omzeilt de controle en stelt u in staat om SQL Server te configureren met databasebestanden op basis van het netwerk. SQL Server en de meeste andere bedrijfsdatabasesystemen gebruiken een transactielogboek en de bijbehorende herstellogica om de consistentie van de transactionele database te behouden in het geval van een systeemfout of een onbeheerde afsluiting. Deze herstelprotocollen zijn afhankelijk van de mogelijkheid om rechtstreeks naar het schijfmedium te schrijven, zodat wanneer een I/O-schrijfaanvraag (input/output) van het besturingssysteem terugkeert naar de databasebeheerder, het herstelsysteem er zeker van kan zijn dat het schrijven is voltooid of dat de voltooiing van het schrijven kan worden gegarandeerd. Elke fout door een software- of hardwareonderdeel om dit protocol na te komen, kan leiden tot gedeeltelijk of volledig gegevensverlies of beschadiging in het geval van een systeemstoring. Zie Beschrijving van algoritmen voor logboekregistratie en gegevensopslag die de betrouwbaarheid van gegevens in SQL Server uitbreiden voor meer informatie over deze aspecten van logboekregistratie- en herstelprotocollen in SQL Server.

Microsoft biedt geen ondersteuning voor SQL Server databasebestanden in het netwerk op NAS of opslagservers in het netwerk die niet voldoen aan deze vereisten voor write-through en write-order.

Vanwege de risico's van netwerkfouten die de integriteit van de database in gevaar brengen, samen met mogelijke gevolgen voor de prestaties die kunnen voortvloeien uit het gebruik van netwerkbestandsshares voor het opslaan van databases, raadt Microsoft aan om databasebestanden op te slaan op lokale schijfsubsystemen of op Storage Area Networks (SAN's).

Een NAS-systeem (Network Attached Storage) is een opslagsysteem op basis van bestanden waaraan clients via de netwerkomleiding worden gekoppeld met behulp van een netwerkprotocol (zoals TCP/IP). Als toegang tot een schijfresource vereist dat een share wordt toegewezen of als de schijfresource wordt weergegeven als een externe server via een UNC-pad (bijvoorbeeld \Servernaam\Sharename) in het netwerk, wordt het schijfopslagsysteem standaard niet ondersteund als locatie voor SQL Server databases.

Prestatieproblemen

SQL Server kan, net als andere bedrijfsdatabasesystemen, een grote belasting van een I/O-subsysteem plaatsen. In de meeste grote databasetoepassingen spelen fysieke I/O-configuratie en -afstemming een belangrijke rol in de algehele systeemprestaties. Er zijn drie belangrijke I/O-prestatiefactoren om rekening mee te houden:

  • I/O-bandbreedte: de geaggregeerde bandbreedte, meestal gemeten in megabytes per seconde die kan worden ondersteund op een databaseapparaat.
  • I/O-latentie: de latentie, doorgaans gemeten in milliseconden, tussen een aanvraag voor I/O door het databasesysteem en het punt waarop de I/O-aanvraag is voltooid.
  • CPU-kosten: de CPU-kosten van de host, meestal gemeten in CPU-microseconden, voor het databasesysteem om één I/O te voltooien.

Elk van deze I/O-factoren kan een knelpunt worden en u moet met al deze factoren rekening houden wanneer u een I/O-systeem voor een databasetoepassing ontwerpt.

In de eenvoudigste vorm maakt een NAS-oplossing gebruik van een standaard netwerkomleidingssoftwarestack, standaard netwerkinterfacekaart (NIC) en standaard Ethernet-onderdelen. Het nadeel van deze configuratie is dat alle bestands-I/O wordt verwerkt via de netwerkstack en onderhevig is aan de bandbreedtebeperkingen van het netwerk zelf. Dit kan leiden tot prestatie- en betrouwbaarheidsproblemen, met name in programma's waarvoor een hoge mate van bestands-I/O is vereist, zoals SQL Server. In sommige NAS-configuraties die door Microsoft zijn getest, was de I/O-doorvoer een derde (1/3) van die van een direct gekoppelde opslagoplossing op dezelfde server. In dezelfde configuratie waren de CPU-kosten voor het voltooien van een I/O via het NAS-apparaat tweemaal die van een lokale I/O. Naarmate NAS-apparaten en netwerkinfrastructuur zich ontwikkelen, kunnen deze verhoudingen ook verbeteren ten opzichte van direct gekoppelde opslag of SAN's. Bovendien, als uw toepassingsgegevens voornamelijk in de cache worden opgeslagen in de databasebuffergroep en u geen van de beschreven I/O-knelpunten ondervindt, zijn de prestaties op een NAS-systeem waarschijnlijk voldoende voor uw toepassing.

Overwegingen voor back-up en herstel

SQL Server biedt de Virtual Device Interface (VDI) voor back-up. De VDI biedt leveranciers van back-upsoftware een krachtige, schaalbare en betrouwbare methode voor het uitvoeren van dynamische back-ups en het herstellen van SQL Server databases.

Back-upsoftware werkt op databasebestanden die zijn opgeslagen op NAS-apparaten via VDI zonder speciale ondersteuning die specifiek is voor de NAS. Dit resulteert echter in veel extra netwerkverkeer tijdens back-up en herstel. Tijdens het maken van back-ups via VDI leest SQL Server de bestanden op afstand en geeft de gegevens door aan de back-upsoftware van derden die wordt uitgevoerd op de SQL Server computer. De herstelbewerking is vergelijkbaar.

Om de extra netwerkoverhead te voorkomen, moet de back-upleverancier NAS-specifieke ondersteuning bieden door de back-upleverancier en de NAS-leverancier. SQL Server VDI stelt de back-upsoftware in staat gebruik te maken van hardwaretechnologieën (split-mirror) of softwaretechnologieën (copy-on-write) die worden ondersteund door de NAS-apparaten om snelle kopieën van de databasebestanden lokaal te maken op de NAS. Deze technologieën vermijden niet alleen de overhead van het kopiëren van de bestanden via het netwerk voor back-up, ze kunnen ook de hersteltijden verminderen met orde van grootte.

Back-ups die zijn opgeslagen op de NAS, zijn kwetsbaar voor dezelfde fouten die van invloed zijn op databasebestanden die zijn opgeslagen op de NAS. Overweeg deze back-ups te beveiligen door ze te kopiëren naar alternatieve media.

Voorzichtigheid

U kunt databasebeschadiging in de back-up ervaren als u NAS-back-uptechnologieën gebruikt zonder SQL Server VDI-ondersteuning. Een dergelijke beschadiging omvat gescheurde pagina's of inconsistenties tussen het logboek en gegevensbestanden als ze op afzonderlijke apparaten zijn opgeslagen. SQL Server kan de gescheurde pagina's of inconsistenties niet detecteren totdat u de database herstelt en toegang hebt tot de beschadigde gegevens. Microsoft biedt geen ondersteuning voor het gebruik van NAS-back-uptechnologieën die niet worden gecoördineerd met SQL Server.

Back-upondersteuning en ondersteuning van NAS-leveranciers voor SQL Server VDI variëren. Neem contact op met uw leveranciers van NAS- en back-upsoftware voor meer informatie over VDI-ondersteuning.

Microsoft dringt er bij klanten die een implementatie van een NAS-oplossing voor SQL Server databases overwegen op om hun NAS-leverancier te raadplegen om ervoor te zorgen dat het ontwerp van de end-to-end-oplossing geschikt is voor databasegebruik. Veel NAS-leveranciers hebben best practice-handleidingen en gecertificeerde configuraties voor dit gebruik. Microsoft raadt klanten ook aan hun I/O-prestaties te benchmarken om ervoor te zorgen dat geen van de eerder genoemde I/O-factoren een knelpunt in hun toepassing veroorzaakt.

In de volgende lijst wordt de ondersteuning voor netwerkbestanden op SQL-failoverclusters beschreven:

Aanvullende notities

Onjuist gebruik van databasesoftware met een NAS-product, of databasegebruik met een onjuist geconfigureerd NAS-product, kan leiden tot gegevensverlies, inclusief totaal verlies van de database. Als het NAS-apparaat of de netwerksoftware gegevensgaranties, zoals schrijfvolgorde of write-through, niet volledig respecteert, kunnen hardware-, software- of zelfs stroomstoringen de integriteit van de gegevens ernstig aantasten.

Verwijzingen