locked
Erro na tabela SYSINDEXES RRS feed

  • Pergunta

  • Boa tarde a todos.

    Rodei um DBCC CHECKDB em um banco e recebi mensagem que existe um erro na tabela SYSINDEXES.

    Como proceder o reparo neste caso? É possível só rodar o repair com "repair_allow_data_loss" conforme informado no final dos displays ou é o caso de fazer o restore do banco?

    Obrigado,

    Paulo Vilhena

    ==========================================================

    Server: Msg 8966, Level 16, State 1, Line 1952636710
    Could not read and latch page (1:533) with latch type SH. sysindexes failed.
    Server: Msg 2598, Level 16, State 1, Line 1952636710
    Clustered indexes on sysobjects and sysindexes cannot be re-created.
    Server: Msg 8939, Level 16, State 1, Line 1952636710
    Table Corrupt: Object ID 2, index ID 0, page (1:533). Test (m_freeCnt == freeCnt) failed. Values are 3928 and 4116.
    Server: Msg 8945, Level 16, State 1, Line 1952636710
    Table Corrupt: Object ID 2, index ID 1 will be rebuilt.
            The error has been repaired.
            The error has been repaired.
    Clustered index successfully restored for object 'dbo.sysindexes' in database 'ONETOONE'.
    CHECKTABLE found 0 allocation errors and 1 consistency errors in table 'sysindexes' (object ID 2).
    CHECKTABLE fixed 0 allocation errors and 1 consistency errors in table 'sysindexes' (object ID 2).
    DBCC execution completed. If DBCC printed error messages, contact your system administrator.
    Server: Msg 8966, Level 16, State 1, Line 3
    Could not read and latch page (1:533) with latch type SH. sysindexes failed.
    Server: Msg 8939, Level 16, State 1, Line 3
    Table Corrupt: Object ID 2, index ID 0, page (1:533). Test (m_freeCnt == freeCnt) failed. Values are 3928 and 4116.
    DBCC results for 'ONETOONE'.
    CHECKDB found 0 allocation errors and 1 consistency errors in table 'sysindexes' (object ID 2).
    CHECKDB found 0 allocation errors and 1 consistency errors in database 'ONETOONE'.
    repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB (ONETOONE ).
    DBCC execution completed. If DBCC printed error messages, contact your system administrator.
    quinta-feira, 4 de janeiro de 2007 16:11

Todas as Respostas

  • Paulo, como sugestão eu faria um REPAIR_REBUILD antes com DBCC CHECKDB.

    Ele não perde dados e faz o rebuild dos índices, pode ser que funcione.

    Caso não funcione, faça um Backup e rode com REPAIR_ALLOW_DATA_LOSS, porém sabendo que você pode perder essa tabela ou algumas referências desta.

    Agora é interessante você ver pq ocorreu esse erro:

    - Como está seu disco?

    - Já pensou em habilitar o torne page detection?

     

    Abraços,

    quinta-feira, 4 de janeiro de 2007 16:41
  • Paulo,

    Antes de mais nada passe o DBCC CheckTable nesta table, para que o SQL Server verifique a integridade dos dados, ele vai informar se existe algum dado perdido nesta table.

    Após isso, faça um backup do seu Banco de Dados, e rode o DBCC Check Table Repair_Rebuild, se não resolver tente o Repair_Allow_Data_loss,  neste caso, o SQL Server vai eliminar os dados perdidos da sua table e reconstruir toda estrutura dela novamente.

    quinta-feira, 4 de janeiro de 2007 16:52
    Moderador