none
Erro de tabela RRS feed

  • Pergunta

  • Boa tarde pessoal.

    Ao tentar executar qualquer consulta em uma determinada tabela pelo meu aplicativo, surge o erro:

    O SQL Server detectou um erro de E/S baseado em consistência lógica: página interrompida (assinatura esperada: 0xffffffff; assinatura real: 0x219af103). Isso ocorreu durante um ler da página (1:736) na ID de banco de dados '28' do deslocamento 0x000000005c0000 do arquivo 'C:\Arquivos de programas\Microsoft SQL Server\MSSQL.1\MSSQL\Data\Bilden.mdf'. Mensagens adicionais do log de erros ou do log de eventos do sistema do SQL Server poderão fornecer mais detalhes. Este é um erro grave que ameaça a integridade do banco de dados e deve ser corrigido imediatamente. Faça uma verificação completa da consistência do banco de dados (DBCC CHECKDB). Este erro pode ter sido causado por vários fatores. Para obter mais informações, consulte os manuais online do SQL Server.

    Já tentei executar o comando DBCC CHECKDB:

    Erro:

    Msg 8967, Level 16, State 216, Line 1

    Ocorreu um erro interno em DBCC que impediu processamento adicional. Contate os Serviços de Suporte Técnico.

    Resultados do DBCC para 'Bilden'.

    Msg 8921, Level 16, State 1, Line 1

    Verificação encerrada. Falha detectada ao coletar fatos. Possivelmente espaço insuficiente em tempdb ou uma tabela de sistema inconsistente. Verifique os erros anteriores.

    CHECKDB encontrou 0 erros de alocação e 0 erros de consistência no banco de dados 'Bilden'.

    Já tentei executar o comando DBCC CHECKTABLE(tabela):

    Erro:

    Msg 8967, Level 16, State 216, Line 2

    Ocorreu um erro interno em DBCC que impediu processamento adicional. Contate os Serviços de Suporte Técnico.

    Msg 8921, Level 16, State 1, Line 2

    Verificação encerrada. Falha detectada ao coletar fatos. Possivelmente espaço insuficiente em tempdb ou uma tabela de sistema inconsistente. Verifique os erros anteriores.

    Como posso recuperar os dados desta tabela?

    Att.

    Nádia

     

    • Movido Gustavo Maia Aguiar terça-feira, 4 de maio de 2010 18:59 (De:SQL Server - Desenvolvimento Geral)
    terça-feira, 4 de maio de 2010 18:21

Respostas

  • Boa Tarde,

    Há pouco a fazer quando as coisas chegam nesse ponto. Provavelmente alguma página muito importante da tabela foi corrompida, pois, para qualquer SELECT incorrer em esse erro, a página era muito consultada.

    Se você possuir um backup eu recomendo utilizá-lo. Você pode restaurá-lo em outro banco e aplicar os logs até o momento em que verificou a falha. Posteriormente limpe a tabela da base de produção e importe os dados a partir de um backup.

    Caso não haja backup disponível teremos que partir para outra estratégia totalmente não garantida. Mas antes de abordá-la, gostaria de saber se há um backup disponível

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Simulado para o Exame 70-433 - MCTS: Microsoft SQL Server 2008 - Database Development – Parte 01
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!1018.entry


    Classifique as respostas. O seu feedback é imprescindível
    • Marcado como Resposta Teles terça-feira, 4 de maio de 2010 18:45
    terça-feira, 4 de maio de 2010 18:42

Todas as Respostas

  • Boa Tarde,

    Há pouco a fazer quando as coisas chegam nesse ponto. Provavelmente alguma página muito importante da tabela foi corrompida, pois, para qualquer SELECT incorrer em esse erro, a página era muito consultada.

    Se você possuir um backup eu recomendo utilizá-lo. Você pode restaurá-lo em outro banco e aplicar os logs até o momento em que verificou a falha. Posteriormente limpe a tabela da base de produção e importe os dados a partir de um backup.

    Caso não haja backup disponível teremos que partir para outra estratégia totalmente não garantida. Mas antes de abordá-la, gostaria de saber se há um backup disponível

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Simulado para o Exame 70-433 - MCTS: Microsoft SQL Server 2008 - Database Development – Parte 01
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!1018.entry


    Classifique as respostas. O seu feedback é imprescindível
    • Marcado como Resposta Teles terça-feira, 4 de maio de 2010 18:45
    terça-feira, 4 de maio de 2010 18:42
  • Muito obrigada pelas informações.

    terça-feira, 4 de maio de 2010 18:46
  • Gustavo.

    Não tenho outro backup, somente este que está com o erro. Qual seria a outra estratégia totalmente não garantida que você mencionou no email acima?

    Existe a possibilidade de exportar estes dados para um txt? Com esta opção eu poderia apagar a tabela, cria-la novamente e fazer um import a partir do txt.

    Att.

    Nádia

     

     

    terça-feira, 4 de maio de 2010 19:20
  • Olá Teles,

    Nesse caso você terá que fazer as seguintes tentativas:

    1 - Rode um SELECT * FROM com o NOLOCK para exportar para TXT ou para carregar outra tabela
    2 - Caso o procedimento não funcione, mate todos os índices e tente novamente
    3 - Se a tabela for muito importante, compre uma ferramenta de terceiros
    4 - Se tudo falhar, rode o comando DBCC com o REPAIR_ALLOW_DATA_LOSS. Isso pode resolver, mas pela situação, irá apagar alguns dados da tabela. Só use esse comando como última alternativa e não como primeira.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Simulado para o Exame 70-433 - MCTS: Microsoft SQL Server 2008 - Database Development – Parte 01
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!1018.entry


    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 4 de maio de 2010 19:57