Condividi tramite


Descrizione del supporto per i file di database di rete in SQL Server

Questo articolo descrive il supporto per i file di database di rete in SQL Server e come configurare SQL Server per archiviare un database in un server di rete o in un server di archiviazione NAS.

Versione originale del prodotto: SQL Server
Numero KB originale: 304261

Riepilogo

Microsoft consiglia in genere di usare una rete SAN (Storage Area Network) o un disco collegato localmente per l'archiviazione dei file di database di Microsoft SQL Server perché questa configurazione ottimizza le prestazioni e l'affidabilità di SQL Server. Per impostazione predefinita, l'uso di file di database di rete archiviati in un server di rete o in un server NAS (Network Attached Storage) non è abilitato per SQL Server.

Tuttavia, è possibile configurare SQL Server per archiviare un database in un server o in un server NAS di rete. I server usati a questo scopo devono soddisfare i requisiti di SQL Server per le garanzie di ordinamento e scrittura dei dati. Queste informazioni sono descritte in dettaglio nella sezione Altre informazioni .

Le condizioni seguenti descrivono l'uso di file di database di rete archiviati in un server o in un server NAS di rete:

  • Questo uso è abilitato per impostazione predefinita in Microsoft SQL Server 2008 R2 e versioni successive.

  • Questo uso richiede che il flag di traccia di avvio -T1807 funzioni in Microsoft SQL Server 2008 e versioni precedenti. A partire da SQL Server 2012, il flag di traccia non è più necessario. Per altre informazioni su come abilitare i flag di traccia di avvio, vedere motore di database Opzioni di avvio del servizio.

Dispositivi qualificati per Windows Hardware Quality Lab (WHQL)

I server Microsoft Windows e i server di archiviazione NAS o i server di archiviazione NAS che sono Windows Hardware Quality Lab (WHQL) soddisfano automaticamente le garanzie di ordinamento e scrittura dei dati necessarie per supportare un dispositivo di archiviazione di SQL Server. Microsoft supporta sia i problemi relativi all'applicazione che all'archiviazione in queste configurazioni.

Note

Per essere supportato da SQL Server, la soluzione di archiviazione NAS deve soddisfare anche tutti i requisiti elencati nel documento di download: Requisiti del programma di affidabilità I/O di SQL Server.

Altri dispositivi

Se si usa un dispositivo di archiviazione qualificato non WHQL con SQL Server che supporta le garanzie di I/O per l'uso del database transazionale descritto in questo articolo, Microsoft fornirà il supporto completo per le applicazioni basate su SQL Server e SQL Server. Tuttavia, i problemi con o causati dal dispositivo o dal relativo sottosistema di archiviazione verranno indicati al produttore del dispositivo. Se si usa un dispositivo di archiviazione qualificato non WHQL che non supporta le garanzie di I/O per l'uso del database transazionale descritto in questo articolo, Microsoft non può fornire supporto per le applicazioni basate su SQL Server o SQL Server. Per determinare se il dispositivo di archiviazione qualificato da WHQL supporta le garanzie di I/O per l'uso di database transazionali descritte in questo articolo o progettate per l'uso del database, rivolgersi al fornitore del dispositivo. Contattare anche il fornitore del dispositivo per verificare che il dispositivo sia stato distribuito correttamente e configurato per l'uso del database transazionale.

Ulteriori informazioni

Per impostazione predefinita, in SQL Server 2008 e versioni precedenti non è possibile creare un database di SQL Server in una condivisione file di rete. Qualsiasi tentativo di creare un file di database in un percorso di rete UNC o mappato genera uno dei messaggi di errore seguenti:

  • Messaggio di errore 1

    5105 "Errore di attivazione del dispositivo"

  • Messaggio di errore 2

    5110 "Il file 'file_name' si trova in un dispositivo di rete non supportato per i file di database".

Si tratta di un comportamento previsto. Il flag di traccia 1807 ignora il controllo e consente di configurare SQL Server con file di database basati sulla rete. SQL Server e la maggior parte degli altri sistemi di database aziendali usano un log delle transazioni e la logica di ripristino associata per mantenere la coerenza del database transazionale in caso di errore di sistema o arresto non gestito. Questi protocolli di ripristino si basano sulla possibilità di scrivere direttamente nel supporto su disco in modo che quando una richiesta di scrittura di input/output del sistema operativo (I/O) restituisce al gestore di database, il sistema di ripristino può essere sicuro che la scrittura sia completa o che il completamento della scrittura possa essere garantito. Qualsiasi errore da parte di qualsiasi componente software o hardware per rispettare questo protocollo può causare una perdita o un danneggiamento parziale o totale dei dati in caso di errore di sistema. Per altre informazioni su questi aspetti dei protocolli di registrazione e ripristino in SQL Server, vedere Descrizione degli algoritmi di registrazione e archiviazione dei dati che estendono l'affidabilità dei dati in SQL Server.

Microsoft non supporta i file di database in rete di SQL Server in server nas o di archiviazione di rete che non soddisfano questi requisiti di scrittura e di scrittura.

A causa dei rischi di errori di rete che compromettono l'integrità del database, insieme alle possibili implicazioni sulle prestazioni che possono derivare dall'uso di condivisioni file di rete per archiviare i database, è consigliabile archiviare i file di database nei sottosistemi del disco locale o nelle reti SAN (Storage Area Network).

Un sistema NAS (Network Attached Storage) è un sistema di archiviazione basato su file a cui i client si collegano tramite il reindirizzamento di rete usando un protocollo di rete (ad esempio TCP/IP). Per impostazione predefinita, se l'accesso a una risorsa disco richiede che sia stato eseguito il mapping di una condivisione o se la risorsa disco viene visualizzata come server remoto tramite un percorso UNC (ad esempio, \NomeServer\Sharename) nella rete, il sistema di archiviazione su disco non è supportato come percorso per i database DI SQL Server.

Problemi di prestazioni

SQL Server, come altri sistemi di database aziendali, può eseguire un carico elevato in un sottosistema di I/O. Nella maggior parte delle applicazioni di database di grandi dimensioni, la configurazione di I/O fisica e l'ottimizzazione svolgono un ruolo significativo nelle prestazioni complessive del sistema. Esistono tre fattori principali di prestazioni di I/O da considerare:

  • Larghezza di banda di I/O: larghezza di banda aggregata, in genere misurata in megabyte al secondo che può essere sostenuta in un dispositivo di database.
  • Latenza di I/O: la latenza, in genere misurata in millisecondi, tra una richiesta di I/O dal sistema di database e il punto in cui viene completata la richiesta di I/O.
  • Costo CPU: il costo della CPU host, in genere misurato in microsecondi della CPU, affinché il sistema di database completi un singolo I/O.

Uno di questi fattori di I/O può diventare un collo di bottiglia ed è necessario prendere in considerazione tutti questi fattori quando si progetta un sistema di I/O per un'applicazione di database.

Nella sua forma più semplice, una soluzione NAS usa uno stack software di reindirizzamento di rete standard, una scheda di interfaccia di rete standard e componenti Ethernet standard. Lo svantaggio di questa configurazione è che tutte le operazioni di I/O dei file vengono elaborate tramite lo stack di rete e sono soggette alle limitazioni della larghezza di banda della rete stessa. Ciò può creare problemi di prestazioni e affidabilità dei dati, in particolare nei programmi che richiedono livelli elevati di I/O dei file, ad esempio SQL Server. In alcune configurazioni NAS testate da Microsoft, la velocità effettiva di I/O era di un terzo (1/3) di una soluzione di archiviazione collegata diretta nello stesso server. In questa stessa configurazione, il costo della CPU per completare un I/O tramite il dispositivo NAS era due volte quello di un I/O locale. Man mano che i dispositivi NAS e l'infrastruttura di rete si evolvono, questi rapporti possono anche migliorare rispetto all'archiviazione collegata diretta o alle reti SAN. Inoltre, se i dati dell'applicazione vengono memorizzati principalmente nella cache nel pool di buffer del database e non si verificano colli di bottiglia di I/O descritti, le prestazioni in un sistema basato su NAS sono probabilmente adeguate per l'applicazione.

Considerazioni su backup e ripristino

SQL Server fornisce l'interfaccia VDI (Virtual Device Interface) per il backup. VDI offre ai fornitori di software di backup un mezzo affidabile, scalabile e a prestazioni elevate per l'esecuzione di backup ad accesso frequente e per il ripristino dei database di SQL Server.

Il software di backup opera sui file di database archiviati nei dispositivi NAS tramite VDI senza supporto speciale specifico per il NAS. Tuttavia, questo comporta un numero elevato di traffico di rete aggiuntivo durante il backup e il ripristino. Durante il backup tramite VDI, SQL Server legge i file in modalità remota e passa i dati al software di backup di terze parti in esecuzione nel computer SQL Server. L'operazione di ripristino è analoga.

Per evitare il sovraccarico di rete aggiuntivo, il fornitore di backup deve fornire il supporto specifico del NAS da parte del fornitore di backup e del fornitore nas. SQL Server VDI consente al software di backup di sfruttare le tecnologie hardware (split-mirror) o software (copia su scrittura) supportate dai dispositivi NAS per creare copie rapide dei file di database locali nel NAS. Queste tecnologie non solo evitano il sovraccarico della copia dei file in rete per il backup, ma possono anche ridurre i tempi di ripristino in base agli ordini di grandezza.

I backup archiviati in NAS sono vulnerabili agli stessi errori che influiscono sui file di database archiviati nel NAS. È consigliabile proteggere questi backup copiandoli in supporti alternativi.

Attenzione

È possibile che si verifichi un danneggiamento del database nel backup se si usano tecnologie di backup NAS senza il supporto VDI di SQL Server. Tale danneggiamento include pagine o incoerenze tra i file di log e di dati, se archiviati in dispositivi separati. SQL Server potrebbe non rilevare le pagine o le incoerenze danneggiate fino a quando non si ripristina il database e non si accede ai dati danneggiati. Microsoft non supporta l'uso di tecnologie di backup NAS non coordinate con SQL Server.

Il supporto per il backup e il supporto del fornitore nas per SQL Server VDI variano. Per informazioni dettagliate sul supporto VDI, rivolgersi ai fornitori di software di backup e NAS.

Microsoft invita i clienti che stanno prendendo in considerazione una distribuzione di una soluzione NAS per i database di SQL Server per consultare il fornitore NAS per assicurarsi che la progettazione della soluzione end-to-end sia destinata all'uso del database. Molti fornitori nas hanno guide consigliate e configurazioni certificate per questo uso. Microsoft consiglia inoltre ai clienti di confrontare le prestazioni di I/O per garantire che nessuno dei fattori di I/O menzionati in precedenza causi un collo di bottiglia nell'applicazione.

L'elenco seguente descrive il supporto per i file basati sulla rete nei cluster di failover SQL:

Note aggiuntive

L'uso non corretto del software di database con un prodotto NAS o l'uso di database con un prodotto NAS configurato in modo non corretto può comportare una perdita di dati, inclusa la perdita totale del database. Se il dispositivo NAS o il software di rete non rispetta completamente le garanzie dei dati, ad esempio l'ordinamento di scrittura o la scrittura, l'hardware, il software o persino gli errori di alimentazione potrebbero compromettere seriamente l'integrità dei dati.

Riferimenti