MSSQLSERVER_5180
Se aplica a: SQL Server
Detalles
Attribute | Valor |
---|---|
Nombre del producto | SQL Server |
Id. de evento | 5180 |
Origen de eventos | MSSQLSERVER |
Componente | SQLEngine |
Nombre simbólico | DSK_BAD_FCB_FILEID |
Texto del mensaje | No se pudo abrir File Control Bank (FCB) debido a un id. de archivo no válido (%d) en la base de datos '%.*ls'. Compruebe la ubicación del archivo. Ejecute DBCC CHECKDB. |
Explicación
Una consulta o una operación pueden producir un error 5180 cuando el Motor de base de datos de SQL Server hace referencia a un identificador de archivo no válido. Por ejemplo:
Mensaje 5180, nivel 22, estado 1, línea 1
No se pudo abrir File Control Bank (FCB) debido a un id. de archivo no válido (%d) en la base de datos '%.*ls'. Compruebe la ubicación del archivo. Ejecute DBCC CHECKDB.
Dado que el error se produce con gravedad 22, se desconectará la sesión del usuario. Este mensaje de error se escribe en el registro de errores de SQL Server y en el registro de eventos de aplicación de Windows con EventID = 5180.
Causas posibles:
SQL Server Motor de base de datos hace referencia a un identificador de archivo en muchas situaciones diferentes principalmente al hacer referencia a un identificador de página (ya que el identificador de archivo es la primera parte del identificador de página). Si por algún motivo, el identificador de archivo al que se hace referencia es < 0 o no es un identificador de archivo válido en una base de datos (según los identificadores de archivo válidos enumerados en las vistas del catálogo del sistema, como sys.database_files), se puede encontrar un error 5180.
Una posible causa es que un identificador de archivo almacenado no sea válido. El registro reenviado en una fila hace referencia a otra página, por lo que, cuando se accede a esa página y el identificador de archivo no es válido, se puede producir un error 5180. Esta condición generaría un error de base de datos dañada en la página con el registro reenviado. (En este ejemplo, DBCC CHECKDB
notificaría el mensaje 8993).
Otro ejemplo es un identificador de archivo no válido que forma parte de un identificador de página almacenado en el encabezado de página para identificar la página siguiente o anterior. Este campo se usa para vincular una serie de páginas, por ejemplo, como en un índice agrupado. Si el identificador de archivo no es válido para la página anterior o siguiente, cuando el motor necesita hacer referencia a este identificador para ir a la página siguiente o a la anterior, se puede generar un error 5180. (En este ejemplo, DBCC CHECKDB
notifica el mensaje 8981).
Si el problema no es un identificador de archivo no válido debido a un identificador de página almacenado dañado, el problema puede estar dentro del Motor de base de datos de SQL Server.
Acción del usuario
Si se produce este error, debe ejecutar DBCC CHECKDB
en la base de datos tal y como se indica en el mensaje de error. Si encuentra errores, debe restaurar la base de datos a partir de una copia de seguridad en buen estado. Si no puede restaurar a partir de una copia de seguridad, la alternativa es usar la opción de reparación de DBCC CHECKDB
como se recomienda en la salida. En la mayoría de los casos, una reparación de este tipo de error conllevará una pérdida de datos. Para obtener más información sobre el uso y las causas de los problemas de daños en la base de datos, consulte el artículo: Solución de errores de coherencia de la base de datos notificados por DBCC CHECKDB.
Si DBCC CHECKDB
no informa de ningún error y el problema persiste, póngase en contacto con el equipo de soporte técnico de Microsoft para obtener ayuda. Tenga a mano la información de la consulta que encontró el error 5180. Consulte la sección Más información para saber cómo determinar qué consulta encontró el error.
Más información
El bloque de control de archivos (FCB) es una estructura de memoria interna que realiza un seguimiento de la información importante del archivo asociado a la base de datos. Un identificador de archivo se usa para identificar de forma única un FCB para una base de datos. Si el motor del servidor intenta hacer referencia a un identificador de archivo que no es válido, no se puede encontrar la estructura del bloque de control de archivos, lo que desencadena la condición de error 5180.
Para saber qué consulta encontró este error, puede usar estas técnicas:
- Para SQL Server 2008 y versiones posteriores, vea si la sesión de system_health tiene un registro del error, que debe incluir el texto de la consulta. Consulte el recurso para obtener más información sobre la sesión de system_health: Compatibilidad con SQL Server 2008: La sesión de system_health.
- Use SQL Server Profiler y capture los
SQL:BatchStarting
eventos de excepción ,RPC:Starting
y . Busque la consulta que precede al evento de excepción del error 5180 para la sesión asociada al evento de excepción.