Al momento sei offline in attesa che la connessione Internet venga ristabilita

Diagnostica di SQL Server aggiunto per rilevare problemi dei / o non segnalati a causa di obsoleti letture o scritture perse

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 826433
Sintomi
Se la causa di problemi di sistema operativo, driver o hardware perduto scrittura condizioni o condizioni di lettura non aggiornate, potrebbe visualizzare messaggi di errore correlati l'integrità dei dati, ad esempio errori 605, 823, 3448, 3456. È possibile che venga visualizzato i messaggi di errore analoghi ai seguenti esempi:

2003-07-24 16:43:04.57 Getpage spid63: bstat = 0x9, sstat = 0x800, cache
2003-07-24 16:43:04.57 spid63 pageno è/dovrebbe essere: objid è/dovrebbe 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 spid63 di 16:52:37.67 2003-07-24: 605, gravità: 21, stato: 1
2003-07-24 16:52:37.67 spid63 tentativo di recuperare la pagina logica (1:7040966) nel database "pubs" appartiene all'oggetto 'autori', non per i titoli' oggetto'..

Errore spid63 di 16:52:40.99 2003-07-24: 3448, gravità: 21, stato: 1
2003-07-24 16:52:40.99 spid63 Impossibile annullare il record del log (63361:16876:181), per l'ID di transazione (0:159696956), nella pagina (1:7040977), il database 'pubs di (database ID 12). Informazioni della pagina: LSN = (63192:958360:10), tipo = 2. Registrare le informazioni: codice operativo = 2, contesto 1..

2003-07-09 14:31:35.92 spid66 errore: 823, gravità: 24, stato: 2
2003-07-09 14:31:35.92 spid66 errore i/o (ID di pagina non valida) rilevato durante la lettura all'offset 0x00000016774000 nel file 'h:\sql\MSSQL\data\tempdb.mdf'..

2010-02-06 15:57:24.14 spid17s errore: 3456, gravità: 21, stato: 1.
2010-02-06 15:57:24.14 spid17s Impossibile non ripristina il record del log (58997:5252:28), per l'ID di transazione (0:109000187), nella pagina (1:480946), il database "MyDatabase" (database ID 17). Pagina: Numero LSN = (58997:5234:17), tipo = 3. REG: OpCode = 2, 5, del contesto PrevPageLSN: (58997:5243:17). Ripristinare da un backup del database o riparare il database.
Informazioni
Microsoft ha introdotto le funzionalità estese a partire da SQL Server 2000 Service Pack 4 e alla diagnostica è stati parte del prodotto in SQL Server 2005 e versioni successive. Queste funzionalità sono progettate per rilevare problemi esterni dei / o e per risolvere l'errore descritto nella sezione "Sintomi"

Se viene visualizzato uno dei messaggi di errore menzionati nella sezione "Sintomi" e non possa essere giustificate da un evento, ad esempio un errore di unità fisica, quindi esaminare eventuali problemi noti con SQL Server, il sistema operativo, i driver e l'hardware. La diagnostica tenta di fornire informazioni sulle due condizioni seguenti:
  • Scrittura persa: Una chiamata all'API WriteFile , ma il sistema operativo, un driver o il cachingcontroller non correttamente svuotare i dati per il thoughSQL anche supporti fisici Server viene informato che la scrittura è stata completata.
  • Lettura non aggiornato: Una chiamata API ReadFile , ma il sistema operativo, un driver o il cachingcontroller restituisce erroneamente una versione precedente dei dati.
Ad esempio, Microsoft ha confermato che gli scenari in cui una chiamata a WriteFile API restituisce correttamente, ma una lettura immediata e di successo del blocco di dati stesso restituisce dati meno recenti, inclusi i dati che probabilmente sono memorizzati in una cache di lettura di hardware. In alcuni casi, questo problema si verifica a causa di un problema della cache di lettura. In altri casi, la dati di scrittura viene mai scritti sul disco fisico.

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

Flag di traccia 818 consente a un buffer circolare in memoria viene utilizzato per il rilevamento delle che operazioni eseguite dal computer che esegue SQL Server, inclusi non Ordina e workfile i/o di scrivere i 2.048 ultimo esito positivo. Quando si verificano errori, ad esempio l'errore 605, 823 o 3448, valore di numero (LSN) del buffer in ingresso registro sequenza viene confrontato con l'elenco aggiornato di scrittura. 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 di SQL Server. La maggior parte delle operazioni di scrittura di SQL Server si verificano come punti di controllo o come scritture lazy. Una scrittura lazy è un'attività in background che utilizza i/o asincrono. L'implementazione del buffer circolare è leggero, rendendo le prestazioni influenzare il sistema trascurabile.

Il seguente messaggio di errore indica che SQL Server non dispone di un errore la chiamata all'API WriteFile o ReadFile API chiamata. Tuttavia, quando il numero LSN rivista, il valore non è corretto:

SQL Server ha rilevato un livello di sistema operativo/hardware non segnalato leggere o scrittura il problema nella pagina (1:75007) del database 12
LSN restituito (63361:16876:181), il numero LSN previsto (63361:16876:500)
Contattare il fornitore dell'hardware e considerare la disattivazione dei meccanismi di memorizzazione nella cache per correggere il problema

A partire da SQL Server 2005, il messaggio di errore viene segnalato come:

SQL Server ha rilevato un errore dei / o basato sulla coerenza logico: lettura non aggiornati. Si è verificato durante un <Read rite="">> della pagina <PAGEID>> nel database con ID <DBID>> all'offset <PHYSICAL offset="">> nel file <FILE name="">>. Altri messaggi nel SQL Server errore registro o sistema registro eventi possono fornire più dettagli. Si tratta di una condizione di errore grave che minaccia l'integrità del database e deve essere corretto immediatamente. Completare una verifica della coerenza completo del database (DBCC CHECKDB). Questo errore può essere causato da molti fattori; Per ulteriori informazioni, vedere la documentazione Online di SQL Server.</FILE> </PHYSICAL> </DBID> </PAGEID> </Read>

A questo punto, la cache di lettura contiene una versione precedente della pagina oppure i dati non vengano scritti correttamente sul disco fisico. In entrambi i casi (perso scrittura o lettura non aggiornati), SQL Server segnala un problema con il sistema operativo, il driver o i livelli di hardware esterno.

Se 3448 errore si verifica quando si cerca di rollback di una transazione con l'errore 605 o errore 823, il computer che esegue SQL Server automaticamente chiude il database e tenta di aprire e ripristinare il database. La prima pagina in cui si verifica l'errore 605 o errore 823 è considerata una pagina non valida e l'id di pagina viene mantenuta da un computer che esegue SQL Server. Durante il ripristino (prima della fase di rollforward) quando viene letto l'id di pagina non valida, i dettagli principali relative all'intestazione di pagina vengono registrati nel log degli errori di SQL Server. Questa azione è importante perché permette di distinguere tra gli scenari perso scrittura e lettura non aggiornati.

Si possono vedere i seguenti comportamenti comuni negli scenari di lettura non aggiornato:
  • Se i file di database sono chiusi e quindi aperto, thecorrect e scritti più di recente dati viene restituiti durante il ripristino.
  • Quando si rilascia un checkpoint ed eseguire l'istruzione DBCC DROPCLEANBUFFERS (per rimuovere tutte le pagine di database dalla memoria), andthen eseguire l'istruzione DBCC CHECKDB sul database, scritte di recente isreturned di dati.
Comportamenti menzionati nel paragrafo precedente indicano un problema di memorizzazione nella cache di lettura e spesso vengono risolte tramite la disattivazione della cache di lettura. Le azioni descritte nel paragrafo precedente, in genere imporre un'invalidazione della cache e le letture di successo che si verificano mostra che il supporto fisico viene aggiornato correttamente. Il comportamento perso scrivere si verifica quando la pagina che viene letto è 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 tal caso, esaminare il software, inclusi l'utilità di backup e antivirus e quindi vedere se vi sono problemi con il driver di filtro.

Microsoft ha notato anche le condizioni che non soddisfano i criteri per l'errore 605 o errore 823 ma sono causate dall'attività di lettura non aggiornati o perso scrivere stessa. 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 di oggetto e l' ID di pagina sono corretta (pagina già allocato all'oggetto) e una modifica viene apportata alla pagina e scaricata sul disco. Il successivo recupero pagina restituisce un'immagine precedente e quindi viene effettuata una seconda modifica. Il log delle transazioni di SQL Server viene illustrato che la pagina è stata aggiornata due volte con lo stesso valore LSN. Questa azione diventa un problema quando si tenta di ripristinare una sequenza del log delle transazioni o con problemi di coerenza dei dati, ad esempio gli errori di chiave esterni o voci di dati mancanti. Il messaggio di errore riportato di seguito viene illustrato un esempio di questa condizione:

Errore: 3456, gravità: 21, stato: 1 potrebbe non ripristina (276666:1664:19), il record del log per l'ID della transazione (0:825853240), nella pagina (1:1787100) del database 'autori' (7). Pagina: Numero LSN = (276658:4501:9), tipo = 1. REG: OpCode = 4, 2, del contesto PrevPageLSN: (275565:3959:31)..

Vengono descritti alcuni scenari in dettaglio negli elenchi seguenti:
  • LSN Sequence		Action1			Checkpoint2			Begin Transaction3			Table created or truncated4			Inserts (Pages allocated)5			Newly allocated page written to disk by Lazy Writer6			Select from table – Scans IAM chain, newly allocated page read back from disk (LRU | HASHED = 0x9 in getpage message), encounters Error 605 - Invalid Object ID7			Rollback of transaction initiated
  • LSN Sequence		Action1			Checkpoint2			Begin Transaction3			Page Modification4			Page written to disk by Lazy Writer5			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' di SQL Server' eseguono attività dei / o, principalmente da e verso il database tempdb . Queste operazioni dei / o sono simili alle operazioni dei / o buffer; Tuttavia, sono stati progettati già utilizzare lettura riprovare la logica per tentare di risolvere problemi analoghi. La diagnostica aggiuntiva illustrata in questo articolo non si applica a tali operazioni dei / o.

Microsoft ha rilevato che la causa principale per l'ordinamento seguente leggere gli errori è in genere una lettura non aggiornati o una perdita di scrittura:

2003-04-01 20:13:31.38 spid122 SQL Server asserzione: 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 (ID di pagina non valida) di errore di lettura. PageID = (0x1:0x13e9), dbid = 2, file = e:\Programmi c:\Programmi\Microsoft SQL Server\mssql\data\tempdb.mdf. Nuovo tentativo in corso.

2003-03-29 09:51:41.13 spid57 errore: 823, gravità: 24, stato: 7
Errore dei / o 2003-03-29 09:51:41.13 spid57 (ID di pagina non valida) rilevato durante la lettura all'offset 0x000000027d2000 nel file 'e:\Programmi c:\Programmi\Microsoft SQL Server\mssql\data\tempdb.mdf'..

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

</p:\sql\ntdbms\storeng\drs\include\record.inl>
I clienti che hanno già affrontato questi errori ordinamento spesso sono risolti i problemi spostando tempdb in un'unità locale non memorizzazione nella cache o disattivando i meccanismi di memorizzazione nella cache di lettura.

Poiché una lettura non aggiornata o una perdita di scrittura nell'archivio dati non è prevista, potrebbe verificarsi un'ampia gamma di comportamenti. Ma può essere visualizzato come dati mancanti, ma alcuni degli effetti più comuni dei dati mancanti vengono visualizzati come danneggiamenti di indice, ad esempio 644 errore o errore 625:

Errore 644 gravità livello 21 messaggio testo Impossibile trovare la voce di indice per RID ' %. * hs' nell'indice della pagina % S_PGID, %d, ID di indice del database ' %. * ls'.
Testo del messaggio di errore 625 gravità livello 21 non può recuperare la riga dalla pagina % S_PGID RID perché il valore slotid (%d) non è valido.

Alcuni clienti hanno segnalato mancante righe dopo l'esecuzione di attività del numero di riga. Questo problema si verifica a causa di un'operazione di scrittura perse. Ad esempio la pagina doveva essere collegati a catena della pagina di indice cluster. Se l'operazione è stata fisicamente perso, i dati inoltre vengono persi.

Importante Se si verifichi uno dei comportamenti o se si sospetti di problemi simili con la disattivazione dei meccanismi di memorizzazione nella cache, si consiglia che è possibile ottenere l'aggiornamento più recente per SQL Server e il più recente simulatore di Stress dei / o SQL Server. Microsoft inoltre consiglia vivamente di eseguire una verifica rigorosa del sistema operativo e le configurazioni associate.

Nota Microsoft ha confermato che con rare e pesanti carichi dei / o alcune piattaforme hardware possono restituire una lettura non aggiornata. Se la diagnostica estesa indica un possibile non aggiornati perso di lettura/scrittura condizione, contattare il fornitore dell'hardware per il completamento immediato di e test con il SQLIOSim utilità.

SQL Server richiede sistemi per supportare la consegna garantita su un supporto stabile come descritto nella sezione iRequisiti di affidabilità del programma i/o SQL Server. Per ulteriori informazioni sui requisiti di input e outpui per il motore di database di SQL Server, vedere Requisiti di Input/Output di Microsoft SQL Server Database Engine.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 826433 - Ultima revisione: 06/04/2015 07:14:00 - Revisione: 2.0

Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 Workgroup Edition, Microsoft SQL Server 2005 Compact Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 R2 Analysis Services, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Express with Advanced Services, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Standard Edition for Small Business, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, SQL Server 2012 Enterprise Core, Microsoft SQL Server 2014 Business Intelligence, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web, SQL Server 2014 Reporting Services

  • kbhotfixserver kbqfe kbbug kbhardware kbfilter kbdriver kbdatabase kbsysadmin kbinfo kbmt KB826433 KbMtit
Feedback
var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write("