Aggiunta a rilevare problemi di I/O ulteriori diagnostica di SQL Server

Traduzione articoli Traduzione articoli
Identificativo articolo: 826433 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Se causa problemi di sistema operativo, driver o dell'hardware perso scrivere condizioni o condizioni di lettura non aggiornate, che potrebbero essere visualizzati messaggi di dati di errore relativo a integritÓ, ad esempio errori 605, 823, 3448. ╚ possibile che venga visualizzato messaggi di errore simili a negli esempi riportati di seguito:
2003-07-24 16:43:04.57 spid63 Getpage: bstat = 0 x 9, sstat = 0 x 800, cache
2003-07-24 16:43:04.57 spid63 pageno Ŕ/deve essere: objid Ŕ/deve essere:
2003-07-24 16:43:04.57 spid63 (1:7040966)/(1:7040966) 2093354622/2039782424
2003-07-24 16:43:04.57... spid63 IAM indica che tale pagina Ŕ allocata a questo oggetto
Errore di spid63 16:52:37.67 2003-07-24: significa, gravitÓ: 21, stato: 1
2003-07-24 16:52:37.67 spid63 tenta di recuperare la pagina logica (1:7040966) nel database "pubs" a cui appartiene l'oggetto '', non agli autori dei titoli' oggetto'
Errore di spid63 16:52:40.99 2003-07-24: 3448, gravitÓ: 21, stato: 1
2003-07-24 16:52:40.99 spid63 non pu˛ Annulla record del log (63361:16876:181), per ID transazione (0:159696956), al pagina (1:7040977), "pubs" (database ID 12) nel database. Pagina di informazioni: numero LSN = (63192:958360:10), tipo = 2. Registrare le informazioni: OpCode = 2, contesto 1
Errore di spid66 14:31:35.92 2003-07-09: 823, gravitÓ: 24, stato: 2
Errore di I/O spid66 di 2003-07-09 14:31:35.92 (ID di pagina non valido) rilevato durante la lettura offset 0x00000016774000 in h:\sql\MSSQL\data\tempdb.mdf' file'

Risoluzione

Informazioni sul Service pack

Per risolvere il problema, ottenere il service pack pi¨ recente per Microsoft SQL Server 2000. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
290211Come ottenere il service pack pi¨ recente per SQL Server 2000

Generazione di informazioni

Microsoft ha rilasciato una versione di SQL Server introduce funzionalitÓ di registrazione estesa. Queste funzionalitÓ sono progettate per facilitare la risoluzione dei messaggi di errore descritti nella sezione "Sintomi". Se non si ritiene che un sistema operativo o un problema di hardware releated, non si dispone applicare questa generazione.

La versione inglese di questa generazione presenta gli attributi di file (o successivi) elencati nella tabella riportata di seguito. Date e ore per questi file sono indicati nella coordinated universal time (UTC). Quando si visualizzano le informazioni sul file, viene convertito in ora locale. Per calcolare la differenza tra ora UTC e l'ora locale, utilizzare la scheda fuso orario dello strumento Data e ora del Pannello di controllo.
   Date         Time   Version         Size             File name
   -------------------------------------------------------------------------
   31-May-2003  18:45  2000.80.818.0      78,400 bytes  Console.exe      
   25-Jun-2003  01:01  2000.80.818.0      33,340 bytes  Dbmslpcn.dll     
   25-Apr-2003  02:12                    786,432 bytes  Distmdl.ldf
   25-Apr-2003  02:12                  2,359,296 bytes  Distmdl.mdf
   30-Jan-2003  01:55                        180 bytes  Drop_repl_hotfix.sql
   23-Jun-2003  22:40  2000.80.837.0   1,557,052 bytes  Dtsui.dll        
   23-Jun-2003  22:40  2000.80.837.0     639,552 bytes  Dtswiz.dll       
   24-Apr-2003  02:51                    747,927 bytes  Instdist.sql
   03-May-2003  01:56                      1,581 bytes  Inst_repl_hotfix.sql
   08-Feb-2003  06:40  2000.80.765.0      90,692 bytes  Msgprox.dll      
   01-Apr-2003  02:07                      1,873 bytes  Odsole.sql
   05-Apr-2003  01:46  2000.80.800.0      62,024 bytes  Odsole70.dll     
   07-May-2003  20:41  2000.80.819.0      25,144 bytes  Opends60.dll     
   02-Apr-2003  21:48  2000.80.796.0      57,904 bytes  Osql.exe         
   02-Apr-2003  23:15  2000.80.797.0     279,104 bytes  Pfutil80.dll     
   22-May-2003  22:57                     19,195 bytes  Qfe469571.sql
   11-Jul-2003  17:04                  1,084,147 bytes  Replmerg.sql
   04-Apr-2003  21:53  2000.80.798.0     221,768 bytes  Replprov.dll     
   08-Feb-2003  06:40  2000.80.765.0     307,784 bytes  Replrec.dll      
   11-Jul-2003  16:56                  1,085,925 bytes  Replsys.sql
   01-Jun-2003  01:01  2000.80.818.0     492,096 bytes  Semobj.dll       
   31-May-2003  18:27  2000.80.818.0     172,032 bytes  Semobj.rll
   29-May-2003  00:29                    115,944 bytes  Sp3_serv_uni.sql
   01-Jun-2003  01:01  2000.80.818.0   4,215,360 bytes  Sqldmo.dll       
   07-Apr-2003  17:44                     25,172 bytes  Sqldumper.exe    
   19-Mar-2003  18:20  2000.80.789.0      28,672 bytes  Sqlevn70.rll
   02-Jul-2003  00:18  2000.80.834.0     180,736 bytes  Sqlmap70.dll     
   08-Feb-2003  06:40  2000.80.765.0      57,920 bytes  Sqlrepss.dll     
   01-Aug-2003  00:50  2000.80.847.0   7,594,065 bytes  Sqlservr.exe     
   25-Jul-2003  21:44  2000.80.845.0     590,396 bytes  Sqlsort.dll      
   08-Feb-2003  06:40  2000.80.765.0      45,644 bytes  Sqlvdi.dll       
   25-Jun-2003  01:01  2000.80.818.0      33,340 bytes  Ssmslpcn.dll     
   01-Jun-2003  01:01  2000.80.818.0      82,492 bytes  Ssnetlib.dll     
   01-Jun-2003  01:01  2000.80.818.0      25,148 bytes  Ssnmpn70.dll     
   01-Jun-2003  01:01  2000.80.818.0     158,240 bytes  Svrnetcn.dll     
   31-May-2003  18:59  2000.80.818.0      76,416 bytes  Svrnetcn.exe     
   30-Apr-2003  23:52  2000.80.816.0      45,132 bytes  Ums.dll          
   02-Jul-2003  00:19  2000.80.834.0      98,816 bytes  Xpweb70.dll
Nota causa di dipendenze tra i file, l'aggiornamento rapido pi¨ recente o la funzionalitÓ che contiene i file potrebbe anche contenere ulteriori file.

Microsoft ha confermato che in rari e ad alta densitÓ di carichi di I/O, alcune piattaforme hardware possono restituire un non aggiornati leggere. Se la diagnostica estesa indica un possibile non aggiornati/perso di lettura scrittura condizione, contattare il fornitore di hardware per il completamento immediato di e verificare con l'utilitÓ SQLIOStress.

Status

Microsoft ha confermato che questo problema riguarda i prodotti sono elencati nella sezione "Si applica a".

Questo problema Ŕ stato innanzitutto corretto in SQL Server 2000 Service Pack 4.

Informazioni

Se si riceve i messaggi di errore menzionati nella sezione "Sintomi" di e non pu˛ essere descritto da un evento, ad esempio un errore di unitÓ fisica, quindi esaminare problemi noti con SQL Server, il sistema operativo, i driver e l'hardware. Ulteriori SQL Server diagnostica Ŕ stati aggiunti in questa build per rilevare I/O esterni problemi di relativi. La diagnostica ulteriore tenta di fornire informazioni le due condizioni seguenti:
  • Persi scrittura: Una chiamata corretta all'API WriteFile , ma il sistema operativo, un driver o il controller di memorizzazione nella cache non correttamente cancellare i dati ai supporti fisici anche se SQL Server viene informato che la scrittura Ŕ stata eseguita correttamente.
  • Letto non aggiornato: una chiamata corretta per l'API di ReadFile , ma il sistema operativo, un driver o il controller di memorizzazione nella cache restituisce in modo non corretto il parametro/una versione precedente dei dati.
Ad esempio, Microsoft ha confermato scenari in cui una chiamata di WriteFile API restituisce come esito positivo, ma una lettura immediata, esito positivo del blocco di dati stesso restituisce i dati meno recenti, compresi i dati probabilmente memorizzato in un hardware della cache di lettura. In alcuni casi, questo problema si verifica a causa di un problema della cache di lettura. In altri casi, i dati di scrittura non effettivamente vengono scritti sul disco fisico.

Per attivare la diagnostica aggiuntive per questi tipi di problemi, SQL Server Ŕ aggiunto il flag di traccia 818. ╚ possibile specificare flag di traccia 818 come un parametro di avvio-T818, per il computer che esegue SQL Server oppure Ŕ possibile eseguire la seguente istruzione:
DBCC TRACEON(818, -1)

Flag di traccia 818 consente a un buffer in memoria ring utilizzato per il rilevamento che di 2.048 ultimo esito positivo scrivere operazioni che vengono eseguite dal computer che esegue SQL Server, non incluso workfile I/o e di ordinamento. Quando si verificano errori, ad esempio errore 605, 823 o 3448, valore (LSN) numero sequenza di registro del buffer in ingresso viene confrontato con l'elenco di scrittura di recente. Se il numero LSN recuperati durante l'operazione di lettura Ŕ antecedente a quella specificata durante l'operazione di scrittura, un nuovo messaggio di errore viene registrato nel log degli errori SQL Server. La maggior parte delle operazioni di scrittura di SQL Server si verificano come i punti di arresto o come scritture lazy. Una scrittura lazy Ŕ un'attivitÓ di sfondo che utilizza operazioni di I/O asincrone. L'implementazione del buffer ring Ŕ leggero, rendendo le prestazioni influiscono nel sistema trascurabile.

Il messaggio di seguente indica che SQL Server non ha ricevuto un errore dalla chiamata all'API WriteFile o ReadFile API chiamata. Tuttavia, quando il numero LSN Ŕ stato rivisto, il valore non Ŕ corretto:
SQL Server ha rilevato un livello di OS/hardware leggere o scrittura problema nella pagina (1:75007) del database 12
LSN restituito (63361:16876:181), LSN previsto (63361:16876:500)
Contattare il produttore dell'hardware e considerare la disattivazione della memorizzazione nella cache meccanismi per risolvere il problema
A questo punto, la cache di lettura contiene una versione precedente della pagina oppure i dati non Ŕ stato correttamente scritti sul disco fisico. In entrambi i casi (una scrittura di perdita o un aggiornamento di lettura), in SQL Server Ŕ segnalato un problema esterno con il sistema operativo, il driver o i livelli di hardware.

Se 3448 errore si verifica quando si tenta di eseguire il rollback una transazione con errore 605 o errore 823, il computer che esegue SQL Server automaticamente chiude il database e il tentativo di aprire e ripristinare il database. La prima pagina che si verifica l'errore 605 o errore 823 viene considerata una pagina non valida, e l'id di pagina viene mantenuta dal computer che esegue SQL Server. Durante il ripristino (prima della fase di rollforward) quando viene letto l'id di pagina non valido, i dettagli principali sull'intestazione della pagina vengono registrati nel log degli errori SQL Server. Questa azione Ŕ importante perchÚ consente di distinguere tra gli scenari di perdita di scrittura e lettura non.

I seguenti due comportamenti comuni negli scenari di lettura non potrebbe essere visualizzato:
  • Se i file di database sono chiusa e quindi aperto, corretto e scritti pi¨ di recente dati vengono restituiti durante il ripristino.
  • Quando si emettere un checkpoint ed esegue l'istruzione DBCC DROPCLEANBUFFERS (consente di rimuovere tutte le pagine del database la memoria) e quindi eseguire l'istruzione DBCC CHECKDB sul database, viene restituiti i dati scritti pi¨ di recente.
I comportamenti indicati nel paragrafo precedente indicano un problema di memorizzazione nella cache di lettura e sono spesso risolto disattivando la cache di lettura. Le azioni che vengono in genere descritti nel paragrafo precedente imporre un invalidazione della cache e le letture corretta che si verificano mostra che il supporto fisico viene aggiornato correttamente. Il problema di perdita di scrittura si verifica quando la pagina che viene letto il postback Ŕ ancora la versione precedente dei dati, anche dopo uno svuotamento forzato dei meccanismi di memorizzazione nella cache.

In alcuni casi, il problema potrebbe non essere specifico di una cache hardware. Potrebbe trattarsi di un problema con un driver di filtro. In questi casi, controllare il software, inclusi le utilitÓ di backup e il software antivirus e quindi vedere se ci sono problemi con il driver di filtro.

Microsoft ha anche notare le condizioni che non soddisfano i criteri per errore 605 o errore 823 ma sono causate dalla stessa attivitÓ di lettura non o perdita di scrittura. In alcuni casi, viene visualizzata una pagina per essere aggiornato due volte, ma con il numero LSN stesso valore. Questo comportamento pu˛ verificarsi se l' ID oggetto e l' ID di pagina sono corretta (giÓ allocato all'oggetto pagina) e una modifica viene apportata alla pagina e scaricata sul disco. Il successivo recupero pagina restituisce un'immagine precedente e quindi viene apportata una modifica di seconda. Il log delle transazioni di SQL Server indica che la pagina Ŕ in stato di aggiornata due volte con lo stesso valore LSN. Questa azione diventa un problema quando si tenta di ripristinare una sequenza di registro delle transazioni o con problemi di coerenza di dati, ad esempio gli errori di chiavi esterni o voci di dati mancante. Il messaggio di errore riportato di seguito viene illustrato un esempio di questa condizione:
Errore: 3456, gravitÓ: 21, stato: 1 non pu˛ Ripeti record del log (276666:1664:19), per ID transazione (0:825853240), nella pagina (1:1787100), "authors" (7) nel database. Pagina: LSN = (276658:4501:9), tipo = 1. Log: OpCode = 4, 2, contesto PrevPageLSN: (275565:3959:31)

Alcuni scenari vengono descritti in dettaglio negli elenchi seguenti:
  • LSN Sequence		Action
    1			Checkpoint
    2			Begin Transaction
    3			Table created or truncated
    4			Inserts (Pages allocated)
    5			Newly allocated page written to disk by Lazy Writer
    6			Select from table ? Scans IAM chain, newly allocated page read back from disk (LRU | HASHED = 0x9 in getpage message), encounters Error 605 - Invalid Object ID
    7			Rollback of transaction initiated
    
  • LSN Sequence		Action
    1			Checkpoint
    2			Begin Transaction
    3			Page Modification
    4			Page written to disk by Lazy Writer
    5			Page read in for another modification (stale image returned)
    6			Page Modified for a second time but because of stale image does not see first modification 
    7			Rollback ? Fails ? Transaction Log shows two different log records with the same PREV LSN for the page
    
Gli operatori di ordinamento' SQLServer' eseguono attivitÓ di I/O, principalmente da e verso il database tempdb . Queste operazioni di I/O sono simili alle operazioni di I/O del buffer, tuttavia, sono giÓ stati progettati per utilizzare logica di tentativi di lettura per tentare di risolvere problemi analoghi. La diagnostica ulteriore illustrata in questo articolo non Ŕ valide per le operazioni di I/O.

Microsoft ha indicato che la causa principale per l'ordinamento seguente leggere errori Ŕ in genere una lettura non o una perdita scrittura:
2003 / 04 / 01 20:13:31.38 spid122 asserzione di SQL Server: file: <p:\sql\ntdbms\storeng\drs\include\record.inl>, riga = asserzione non riuscita 1447 = ' m_SizeRec > 0 && m_SizeRec < = MAXDATAROW '.

2003-03-29 09:51:41.12 spid57 ordinamento errore (ID di pagina non valido) di lettura. PageID = (0x1:0x13e9), dbid = 2, file = e:\program comuni\Microsoft Server\mssql\data\tempdb.mdf SQL. Nuovo tentativo.

2003-03-29 09:51:41.13 spid57 errore: 823, gravitÓ: 24, stato: 7
Errore di I/O spid57 09:51:41.13 2003-03-29 (ID di pagina non valido) rilevati durante lettura offset 0x000000027d2000 nel file 'e:\program comuni\Microsoft Server\mssql\data\tempdb.mdf SQL'

* 00931097 Module(sqlservr+00531097) (utassert_fail + 000002E3)
* 005B1DA8 Module(sqlservr+001B1DA8) (RecBase::Resize + 00000091)
* 00407EE7 Module(sqlservr+00007EE7) (RecBase::LocateColumn + 00000012)
* 00852520 Module(sqlservr+00452520) (mergerow + 000000A4)
* 008522B3 Module(sqlservr+004522B3) (merge_getnext + 00000285)
* 0085207D Module(sqlservr+0045207D) (mergenext + 0000000D)
* 004FC5FB Module(sqlservr+000FC5FB) (getsorted + 00000021)

I clienti che hanno sperimentato questi errori di ordinamento sono spesso risolti i problemi in, spostare tempdb in un'unitÓ locale non di caching o disattivare i meccanismi di memorizzazione nella cache di letti.

PerchÚ leggere un non aggiornati o un si verifichino i risultati di scrittura persi in archiviazione di dati che non Ŕ prevista una vasta gamma di comportamenti. Potrebbe essere visualizzata come dati mancanti, ma alcuni degli effetti pi¨ comuni dei dati mancanti vengono visualizzati come i danneggiamenti di indice, ad esempio 644 di errore o errore 625:
Errore 644 gravitÓ livello 21 messaggi testo Impossibile trovare la voce di indice della riproduzione di per RID ' % * hs ' nell'indice pagina % 3!, ID di indice % d, database' %. * ls'.
Testo del messaggio 21 livello gravitÓ errore 625 Impossibile recuperare la riga dalla pagina % 3! da RID perchÚ dell'IDSlot (% d) non Ŕ valido.
Alcuni clienti hanno segnalato mancante righe dopo che eseguono attivitÓ di numero di riga. Questo problema si verifica a causa di una scrittura persa. Ad esempio che la pagina doveva essere collegati a catena di pagine di indice cluster. Se la scrittura Ŕ stata fisicamente persa, i dati anche vengono persi.

importante Se si verificano uno dei comportamenti, o se si sospetta di problemi simili insieme con la disattivazione dei meccanismi di memorizzazione nella cache, Microsoft consiglia ottenere l'aggiornamento pi¨ recente per SQL Server e Simulator di Stress I/O pi¨ recente di SQL Server. Microsoft incoraggia anche fortemente che Ŕ necessario eseguire un'analisi rigorosa del sistema operativo e le configurazioni associate.

Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
231619HOW TO: utilizzare l'utilitÓ di SQLIOStress per Stress un sottosistema di dischi ad esempio SQL Server
SQL Server richiede i sistemi supportano ? garantire il recapito al supporto stabile ? come descritto nel programma di Microsoft SQL Server Always-On archiviazione soluzioni revisione. FOPer ulteriori informazioni sui requisiti di input e outpui per il motore di database di SQL Server, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
967576Requisiti di Microsoft SQL Server Database Engine input/output

ProprietÓ

Identificativo articolo: 826433 - Ultima modifica: martedý 5 maggio 2009 - Revisione: 7.0
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2000 Service Pack 3
Chiavi:á
kbmt kbhotfixserver kbqfe kbbug kbhardware kbfilter kbdriver kbdatabase kbsysadmin kbinfo KB826433 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 826433
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com