Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Dettagli
Attributo | Valore |
---|---|
Nome prodotto | SQL Server |
ID evento | 823 |
Origine evento | MSSQLSERVER |
Componente | SQLEngine |
Nome simbolico | B_HARDERR |
Testo del messaggio | Il sistema operativo ha restituito l'errore %ls a SQL Server durante un'operazione %S_MSG, all'offset %#016I64x nel file '%ls'. Per informazioni più dettagliate, vedere i messaggi aggiuntivi nel log degli errori di SQL Server e nel registro eventi di sistema. Si tratta di una condizione di errore grave a livello di sistema, che può compromettere l'integrità del database e deve essere corretta immediatamente. Eseguire una verifica di coerenza del database (DBCC CHECKDB). L'errore può essere causato da molti fattori. Per ulteriori informazioni, vedere la documentazione online di SQL Server. |
Spiegazione
SQL Server usa le API di Windows, ad esempio ReadFile, WriteFile, ReadFileScatter, WriteFileGather, per eseguire operazioni di I/O su file. Dopo che SQL Server esegue queste operazioni di I/O, verifica la presenza di eventuali condizioni di errore associate a queste chiamate API. Se le chiamate API hanno esito negativo con un errore del sistema operativo, SQL Server restituisce l'errore 823.
Il messaggio di errore 823 contiene le informazioni seguenti:
- File di database in cui è stata eseguita l'operazione di I/O.
- L'offset all'interno del file in cui è stata tentata l'operazione di I/O. Si tratta dell'offset di byte fisico dall'inizio del file. La divisione di questo numero per 8.192 fornisce il numero di pagina logico interessato dall'errore.
- Indica se l'operazione di I/O è una richiesta di lettura o scrittura.
- Codice di errore del sistema operativo e descrizione dell'errore tra parentesi.
Errore del sistema operativo: Una chiamata API Windows di lettura o scrittura non riesce e SQL Server rileva un errore del sistema operativo correlato alla chiamata API di Windows. Di seguito è riportato un esempio di messaggio dell'errore 823:
Error: 823, Severity: 24, State: 2.
2010-03-06 22:41:19.55 spid58 The operating system returned error 1117 (The request could not be performed because of an I/O device error.) to SQL Server during a read at offset 0x0000002d460000 in file 'e:\program files\Microsoft SQL Server\mssql\data\mydb.MDF'. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe, system-level error condition that threatens database integrity and must be corrected immediately. It is recommended to complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
È possibile che vengano visualizzati errori dell'istruzione DBCC CHECKDB nel database associato al file nel messaggio di errore. È possibile eseguire l'istruzione DBCC CHECKDB quando viene visualizzato un errore 823. Se l'istruzione DBCC CHECKDB non segnala errori, è probabile che si verifichi un problema di sistema intermittente o un problema del disco.
Altre informazioni di diagnostica per gli errori 823 potrebbero essere scritte nel file di log degli errori di SQL Server quando si usa il flag di traccia 818. Per altre informazioni, vedere Diagnostica di SQL Server rileva problemi di I/O non segnalati a causa di letture non aggiornate o scritture perse.
Causa
Il messaggio di errore 823 indica in genere che si è verificato un problema con il sistema di archiviazione sottostante o l'hardware o un driver che si trova nel percorso della richiesta di I/O. Questo errore può verificarsi se sono presenti incoerenze nel file system o se il file di database è danneggiato. Per la lettura di un file, SQL Server ha già ritentato la richiesta di lettura quattro volte prima che restituisca 823. Se l'operazione di ripetizione dei tentativi ha esito positivo, la query non ha esito negativo, ma il messaggio MSSQLSERVER_825 viene scritto nel log degli errori e nel registro eventi.
Azione dell'utente
Esaminare la tabella suspect_pages in
msdb
per altre pagine che riscontrano questo problema (nello stesso database o database diversi).Verificare la coerenza dei database presenti nello stesso volume (come quello riportato nel messaggio 823) usando il comando DBCC CHECKDB. Se vengono rilevate incoerenze dal comando DBCC CHECKDB, usare le linee guida disponibili in Risoluzione degli errori di coerenza del database segnalati da DBCC CHECKDB.
Esaminare i registri eventi di Windows per individuare eventuali errori o messaggi segnalati dal sistema operativo oppure da un dispositivo di archiviazione o un driver di dispositivo. Se sono correlati a questo errore in qualche modo, risolvere prima tali errori. Ad esempio, a parte il messaggio 823, è anche possibile notare un evento come "Il driver ha rilevato un errore del controller in \Device\Harddisk4\DR4" segnalato dall'origine disco nel registro eventi. In tal caso, è necessario valutare se il file è presente nel dispositivo e quindi correggere gli errori del disco rilevati.
Usare l'utilità SQLIOSim per simulare l'attività di SQL Server in un'utilità sottosistema dischi per verificare se questi errori 823 possono essere riprodotti al di fuori delle normali richieste di I/O di SQL Server. L'utilità SQLIOSim viene fornita con SQL Server 2008 e versioni successive, quindi non è necessario un download separato. In genere è possibile trovarla nella cartella
C:\Program Files\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\Binn
.Collaborare con il fornitore dell'hardware o il produttore del dispositivo per assicurarsi
- I dispositivi hardware e la configurazione sono conformi ai requisiti di I/O di SQL Server
- I driver di dispositivo e altri componenti software di supporto di tutti i dispositivi nel percorso di I/O sono aggiornati
Se il fornitore dell'hardware o il produttore del dispositivo ha fornito utilità di diagnostica, usarle per valutare l'integrità del sistema di I/O
Valutare se sono presenti driver di filtro nel percorso di queste richieste di I/O in cui si verificano problemi.
- Controllare se sono presenti aggiornamenti per questi driver di filtro
- Questi driver di filtro possono essere rimossi o disabilitati per osservare se il problema che genera l'errore 823 viene rimosso?