MSSQLSERVER_5180
Aplica-se a: SQL Server
Detalhes
Atributo | Valor |
---|---|
Nome do produto | SQL Server |
ID do evento | 5180 |
Origem do Evento | MSSQLSERVER |
Componente | SQLEngine |
Nome simbólico | DSK_BAD_FCB_FILEID |
Texto da mensagem | Não foi possível abrir o FCB (File Control Bank) devido à ID de arquivo inválida %d no banco de dados '%.*ls'. Verifique o local do arquivo. Execute DBCC CHECKDB. |
Explicação
Uma consulta ou operação pode falhar com um erro 5180 quando uma ID de arquivo inválida é referenciada pelo Mecanismo de Banco de Dados do SQL Server. Este é um exemplo:
Mensagem 5180, Nível 22, Estado 1, Linha 1
Não foi possível abrir o FCB (File Control Bank) devido à ID de arquivo inválida %d no banco de dados '%.*ls'. Verifique o local do arquivo. Execute DBCC CHECKDB.
Como o erro é gerado com a gravidade 22, a sessão do usuário será desconectada. Essa mensagem de erro é gravada no Log de Erros do SQL Server e no Log de Eventos do Aplicativo do Windows com EventID = 5180.
Possíveis causas:
O Mecanismo de Banco de Dados do SQL Server faz referência a uma ID de arquivo em muitas situações diferentes, principalmente ao fazer referência a uma ID de página (já que a ID do arquivo é a primeira parte da ID da página). Se, por qualquer motivo, a ID do arquivo que está sendo referenciada for < 0 ou não for uma ID de arquivo válida em um banco de dados (de acordo com as IDs de arquivo válidas listadas nas exibições do catálogo do sistema, como sys.database_files), um erro 5180 poderá ser encontrado.
Uma das possíveis causas é que uma ID de arquivo armazenada não é válida. Como o registro encaminhado em uma linha referencia outra página, quando essa página é acessada e a ID de arquivo é inválida, um erro 5180 pode ser recebido. Essa condição é um erro de banco de dados corrompido na página com o registro encaminhado. (Neste exemplo, DBCC CHECKDB
relata a Mensagem 8993).
Outro exemplo é uma ID de arquivo inválida como parte de uma ID de página, como armazenado no cabeçalho da página de a ID da página seguinte ou anterior. Esse campo é usado para vincular uma série de páginas, como em um índice clusterizado. Se a ID de arquivo for inválida para a página seguinte ou anterior, quando o mecanismo precisar referenciar isso a fim de ir para essas páginas, um erro 5180 poderá ser recebido. (Neste exemplo, DBCC CHECKDB
relata a Mensagem 8981).
Se o problema não for uma ID de arquivo inválida devido a uma ID de página armazenada corrompida, o problema poderá estar no Mecanismo de Banco de Dados do SQL Server.
Ação do usuário
Se você receber esse erro, execute DBCC CHECKDB
no banco de dados, conforme listado na mensagem de erro. Se você receber erros, faça a restauração de um backup válido conhecido. Caso não possa fazer a restauração de um backup, a outra opção será usar a opção de reparo DBCC CHECKDB
, conforme recomendado pela saída. Na maioria dos casos, um reparo desse tipo de erro resultará em uma perda de dados. Para obter mais informações sobre o uso e as causas de problemas de corrupção de banco de dados, consulte o artigo: Como solucionar erros de consistência de banco de dados relatados por DBCC CHECKDB.
Se DBCC CHECKDB
não relatar nenhum erro e o problema continuar ocorrendo, entre em contato com o suporte técnico da Microsoft para obter assistência. Esteja preparado para fornecer a consulta que apresenta o erro 5180. Confira a seção Mais informações para saber como determinar a consulta que apresentou o erro.
Mais informações
O FCB (bloco de controle de arquivo) é uma estrutura de memória interna que acompanha as informações importantes sobre o arquivo associado ao banco de dados. Uma ID de arquivo é usada para identificar exclusivamente um FCB para um banco de dados. Se o mecanismo do servidor tentar referenciar uma ID de arquivo que é inválida, a estrutura do FCB não poderá ser localizada, o que dispara a condição de erro 5180.
Para descobrir qual consulta apresentou esse erro, use as seguintes técnicas:
- Para SQL Server 2008 e versões posteriores, veja se a sessão system_health tem um registro do erro, que deve incluir o texto da consulta. Consulte o recurso para obter mais informações sobre a sessão system_health: Suporte ao SQL Server 2008: a sessão system_health.
- Use o SQL Server Profiler e capture os
SQL:BatchStarting
eventos ,RPC:Starting
e e Exception. Encontre a consulta que precede o evento de exceção para 5180 da sessão associada ao evento de exceção.