Compartir vía


MSSQLSERVER_5180

Se aplica a:SQL Server

Detalles

Atributo Value
Nombre de 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 u operación puede producir un error 5180 cuando el Motor de base de datos de SQL Server hace referencia a un id. 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 la aplicación de Windows como EventID=5180.

Causas posibles

El Motor de base de datos de SQL Server hace referencia a un identificador de archivo en muchas situaciones diferentes, principalmente cuando hace 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 vistas de 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 en el 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, consulte si la sesión system_health tiene un registro del error, el cual debe incluir el texto de la consulta. Para obtener más información acerca de la sesión system_health, consulte el siguiente recurso: Compatibilidad con SQL Server 2008: sesión system_health.
  • Use SQL Server Profiler y capture los eventos SQL:BatchStarting, RPC:Starting y de excepción. Busque la consulta que precede al evento de excepción del error 5180 para la sesión asociada al evento de excepción.