SQL Server agregados diagnósticos adicionales para detectar problemas de E/s no notificados

Seleccione idioma Seleccione idioma
Id. de artículo: 826433 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Síntomas

Si pierde la causa de problemas del sistema operativo, controlador o hardware escribir condiciones o las condiciones de lectura obsoletas, que puede ver mensajes de error relacionados con la integridad de datos, como los errores 605, 823, 3448. Puede recibir mensajes de error que son similares a los ejemplos siguientes:
2003-07-24 16:43:04.57 spid63 Getpage: bstat = 0 x 9, sstat = 0 x 800, caché
2003-07-24 16:43:04.57 spid63 pageno es/debe ser: objid es/debe ser:
2003-07-24 16:43:04.57 spid63 (1:7040966)/(1:7040966) 2093354622/2039782424
2003-07-24 16:43:04.57... spid63 IAM indica esa página está asignada a este objeto
2003-07-24 16:52:37.67 spid63 error: 605, gravedad: 21, estado: 1
2003-07-24 16:52:37.67 spid63 intentar recuperar la página lógica (1:7040966) en la base de datos 'pubs' pertenece al objeto 'authors', no para el objeto 'titles'
2003-07-24 16:52:40.99 spid63 error: 3448, gravedad: 21, estado: 1
2003-07-24 16:52:40.99 spid63 no podría deshacer registro (63361:16876:181), para ID de transacción (0:159696956), en la página (1:7040977), base de datos 'pubs' (base de datos ID 12). Página de información: LSN = (63192:958360:10), tipo = 2. Registrar información: código de operación = 2, contexto 1
2003-07-09 14:31:35.92 spid66 error: 823, gravedad: 24, estado: 2
error de E/s de spid66 de 2003-07-09 14:31:35.92 (ID. de página errónea) detectado durante la lectura en desplazamiento 0x00000016774000 en h:\sql\MSSQL\data\tempdb.mdf' archivo'

Solución

Información de Service Pack

Para resolver este problema, consiga el Service Pack más reciente para Microsoft SQL Server 2000. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
290211Cómo obtener el Service Pack más reciente de SQL Server 2000

Información de generación

Microsoft ha publicado una versión de SQL Server que presenta capacidades de seguimiento extendido. Estas capacidades están diseñadas para ayudarle a solucionar los mensajes de error descritos en la sección "Síntomas". Si no sospecha que un sistema operativo o un problema de hardware releated, no tendrá que aplicar esta generación.

La versión en inglés de esta generación tiene los atributos de archivo (o posterior) que figuran en la tabla siguiente. Las fechas y horas de estos archivos aparecen en la hora universal coordinada (UTC). La información de los archivos se convertirá a la hora local cuando la vea. Para averiguar la diferencia entre hora UTC y la hora local, utilice la ficha zona horaria de la herramienta fecha y hora en el panel de control.
   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 debido de dependencias de archivo, la revisión más reciente o característica que contiene estos archivos quizás contenga también archivos adicionales.

Microsoft ha confirmado bajo cargas de E/s grueso y raras, algunas plataformas de hardware pueden devolver un obsoleto leer. Si los diagnósticos extendidos indican un posible obsoleto/pérdida lectura escribir condición, póngase en contacto con su proveedor de hardware para su seguimiento inmediato hasta y probar con la utilidad SQLIOStress.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:".

Este problema se corrigió por primera vez en Pack 4 de Microsoft SQL Server 2000.

Más información

Si recibe alguno de los mensajes de error que se mencionan en la sección "Síntomas" y no se pueden deber a un evento como un error de unidad física, a continuación, revise cualquier problema conocido con SQL Server, el sistema operativo, los controladores y el hardware. Servidor SQL adicional diagnósticos se han agregado en esta compilación para ayudar a detectar E/s problemas externos. Pruebe diagnósticos adicionales proporcionar información sobre las dos condiciones siguientes:
  • Perdido amortización: Una llamada correcta a la API WriteFile , pero el sistema operativo, un controlador o el controlador de almacenamiento en caché no correctamente vacía los datos al medio físico, aunque SQL Server se le informará que realizó la escritura.
  • Leer obsoleto: Se una llamada correcta a la API ReadFile , pero el sistema operativo, un controlador o el controlador de almacenamiento en caché devuelve incorrectamente una versión anterior de los datos.
Por ejemplo, Microsoft ha confirmado escenarios donde una llamada de WriteFile API devuelve como correcta, pero una lectura inmediata, correcta del mismo bloque de datos devuelve los datos anteriores, incluidos los que es probable que se almacena en una caché de lectura de hardware. A veces, este problema se produce debido a un problema de lectura de caché de. En otros casos, los datos de escritura realmente nunca se escriben en el disco físico.

Para habilitar diagnósticos adicionales para estos tipos de problemas, SQL Server ha agregado el indicador de traza 818. Puede especificar el indicador de traza 818 como un parámetro de inicio-T818, para el equipo que ejecuta SQL Server, o puede ejecutar la siguiente instrucción:
DBCC TRACEON(818, -1)

Indicador de traza 818 permite un búfer de anillo en memoria que se utiliza para las operaciones realizadas por el equipo que ejecuta SQL Server, no incluye ordenación y el archivo de trabajo E/s de escritura de la última 2.048 correcta de seguimiento. Cuando se producen errores como el error 605, 823 ó 3448, el valor de número (LSN) de secuencia de registro del búfer entrante se compara con la lista de escritura reciente. Si el LSN se recupera durante la operación de lectura es anterior a la especificada durante la operación de escritura, se registra un nuevo mensaje de error en el registro de error de SQL Server. Las operaciones de escritura de SQL Server la mayor parte ocurrir como puntos de control o como escrituras diferidas. Una escritura diferida es una tarea de fondo que utiliza E/s asincrónica. La implementación del búfer es ligera, por lo que el rendimiento que afectan a en el sistema insignificante.

El siguiente mensaje indica que SQL Server no recibió un error de la llamada a la API WriteFile o ReadFile API llamada. Sin embargo, cuando se ha revisado el LSN, el valor no era correcto:
SQL Server ha detectado un nivel de sistema operativo y hardware no notificado lee o escribir problema en la página (1:75007) de base de datos 12
LSN devuelto (63361:16876:181), LSN esperado (63361:16876:500)
Póngase en contacto con el proveedor de hardware y considerar deshabilitar los mecanismos de almacenamiento en caché para corregir el problema
En este momento, ya sea la caché de lectura contiene una versión anterior de la página o los datos no se han escrito correctamente en el disco físico. En ambos casos (una escritura perdidos o una lectura obsoletos), SQL Server indica un problema externo con el sistema operativo, el controlador o los niveles de hardware.

Si 3448 error se produce cuando intenta deshacer una transacción que tiene el error 605 o error 823, el equipo que ejecuta SQL Server automáticamente la base de datos cierra y intenta abrir y recuperar la base de datos. La primera página que experimenta el error 605 o error 823 se considera una página errónea y el identificador de página se mantiene el equipo que ejecuta SQL Server. Durante la recuperación (antes de la fase Rehacer) cuando se lee el identificador de página erróneo, los detalles sobre el encabezado de página principales se registran en el registro de error de SQL Server. Esta acción es importante porque ayuda a distinguir entre escenarios perdidos escribir y leer obsoleto.

Puede ver los siguientes dos comportamientos comunes en escenarios de lectura obsoletos:
  • Si los archivos de base de datos se cierra a continuación, se abre, de la correcta y escritos más recientemente se devuelven durante la recuperación de datos.
  • Cuando emita un punto de control, ejecute la instrucción DBCC DROPCLEANBUFFERS (para quitar todas las páginas de base de datos de la memoria) y, a continuación, ejecute la instrucción de DBCC CHECKDB en la base de datos, se devuelven los datos escritos más recientemente.
Los comportamientos mencionados en el párrafo anterior indican un problema de almacenamiento en caché de lectura y se resuelven con frecuencia deshabilitando la caché de lectura. Las acciones que se describen en el párrafo anterior normalmente forzar una invalidación de caché y las lecturas correctas que se producen mostrar que el medio físico se actualizó correctamente. El comportamiento de perder amortización se produce cuando la página que está leyendo todavía es la versión anterior de los datos, incluso después de un vaciado forzoso de los mecanismos de almacenamiento en caché.

A veces, el problema no es posible que sea específico de una caché de hardware. Puede ser un problema con un controlador de filtro. En tales casos, revise su software, incluyendo utilidades de copia de seguridad y software antivirus y vea si hay problemas con el controlador de filtro.

Microsoft también ha observado condiciones que no cumplen los criterios para el error 605 o error 823 pero causadas por la misma actividad de lectura obsoletos o perder escritura. En algunos casos, aparece una página actualizarán dos veces, pero con el LSN mismo valor. Este comportamiento puede producirse si el Identificador de objeto y el Identificador de página (página correcta ya asignado al objeto) y un cambio realizado en la página y se vacían en el disco. La recuperación de páginas siguiente devuelve una imagen anterior y, a continuación, se realiza un cambio segundo. El registro de transacciones de SQL Server muestra que la página se actualiza dos veces con el mismo valor LSN. Esta acción se convierte en un problema cuando intenta restaurar una secuencia de registro de transacciones o con problemas de coherencia de datos, como errores de claves externas o que faltan entradas de datos. El siguiente mensaje de error ilustra un ejemplo de esta condición:
Error: 3456, gravedad: 21, estado: 1 no se puede rehacer registro (276666:1664:19), para ID de transacción (0:825853240), en página (1:1787100), base de datos 'authors' (7). LSN de la página: = (276658:4501:9), tipo = 1. Registro: OpCode = 4, 2, contexto PrevPageLSN: (275565:3959:31)

Algunos escenarios se describen con más detalle en las listas siguientes:
  • 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
    
Operadores de ordenación' SQLServer' realizan actividades de E/s, principalmente a y desde la base de datos tempdb . Estas operaciones de E/s son similares a las operaciones de E/s de búfer; sin embargo, ya se han diseñado para utilizar la lógica de reintento de lectura para intentar resolver problemas similares. Los diagnósticos adicionales que se explica en este artículo no se aplican a estas operaciones.

Microsoft ha observado que la causa raíz de la siguiente ordenación leer errores suele ser una lectura obsoletos o una escritura perdidos:
2003-04-01 20:13:31.38 spid122 aserción de SQL Server: archivo: <p:\sql\ntdbms\storeng\drs\include\record.inl>, línea = 1447 error de aserción = ' m_SizeRec > 0 && m_SizeRec < = MAXDATAROW '.

2003-03-29 09:51:41.12 spid57 ordenar lee error (ID. de página errónea). PageID = (0x1:0x13e9), dbid = 2, archivo = e:\program de programa\Microsoft SQL Server\mssql\data\tempdb.mdf. Reintentando.

2003-03-29 09:51:41.13 spid57 error: 823, gravedad: 24, estado: 7
2003-03-29 09:51:41.13 spid57 E/s (ID. de página errónea) Error durante la lectura en el desplazamiento 0x000000027d2000 en el archivo 'programa\Microsoft de e:\program 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)

Los clientes que hayan experimentado estos errores de ordenación con frecuencia han resuelto los problemas moviendo tempdb a una unidad local no almacenar en caché, o deshabilitar los mecanismos de almacenamiento en caché de lectura.

Porque un obsoleto lee o un pueden producirse resultados de la escritura perdido en almacenamiento de datos que no se esperaba una amplia variedad de comportamientos. Puede aparecer como falta de datos, pero algunos de los efectos más comunes de datos que faltan aparecen como daños en el índice, como error 644 o error 625:
Error 644 gravedad nivel 21 mensajes texto no se pudieron encontrar la entrada de índice para RID ' %. * hs 'en índice página % S_PGID, identificador de índice % d, base de datos' %. * ls'.
Texto de mensaje de error 625 gravedad nivel 21 no puede recuperar la fila desde la página % S_PGID por RID porque los RanuraID (% d) no es válido.
Algunos clientes han informado desaparezcan filas después de que realizan las actividades de número de fila. Este problema se produce porque una escritura pierde. Quizás la página debía estar vinculado a la cadena de páginas de índice agrupado. Si la escritura se ha perdido físicamente, también se pierde los datos.

importante Si experimentar alguno de los comportamientos o si estás sospechosos de problemas similares junto con deshabilitar los mecanismos de almacenamiento en caché, Microsoft recomienda obtenga la actualización más reciente para SQL Server y el simulador de carga de E/s de SQL Server más reciente. También establecimiento inflexible de tipos, Microsoft recomienda que realice una revisión estricta de su sistema operativo y su configuración asociada.

Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
231619Cómo: utilizar la utilidad SQLIOStress a esfuerzo de un subsistema de disco como SQL Server
SQL Server requiere los sistemas admiten ? garantiza la entrega a medios estables ? como se describe en el programa de revisión de solución de almacenamiento de Microsoft SQL Server Always-On. FOPara obtener más información sobre los requisitos de entrada y salidos para el motor de base de datos de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
967576Microsoft SQL Server Database Engine E/s requisitos

Propiedades

Id. de artículo: 826433 - Última revisión: martes, 5 de mayo de 2009 - Versión: 7.0
La información de este artículo se refiere 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
  • Service Pack 3 de Microsoft SQL Server 2000
Palabras clave: 
kbmt kbhotfixserver kbqfe kbbug kbhardware kbfilter kbdriver kbdatabase kbsysadmin kbinfo KB826433 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 826433

Enviar comentarios

 

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