none
CHECKDB errors in table 'sys.sysobjvalues' RRS feed

  • Pergunta

  • Galera,

    Executei CHECKDB em meu banco de dados e foi apresentado os seguintes erros:

    Mensagem 8978, Nível 16, Estado 1, Linha 1
    Table error: Object ID 60, index ID 1, partition ID 281474980642816, alloc unit ID 281474980642816 (type In-row data). Page (1:46981) is missing a reference from previous page (1:38778). Possible chain linkage problem.
    Mensagem 8936, Nível 16, Estado 1, Linha 1
    Table error: Object ID 60, index ID 1, partition ID 281474980642816, alloc unit ID 281474980642816 (type In-row data). B-tree chain linkage mismatch. (1:38778)->next = (1:141027), but (1:141027)->Prev = (1:46981).
    CHECKDB found 0 allocation errors and 2 consistency errors in table 'sys.sysobjvalues' (object ID 60).
    CHECKDB found 0 allocation errors and 2 consistency errors in database 'bd_minasvel'.
    repair_rebuild is the minimum repair level for the errors found by DBCC CHECKDB (bd_minasvel).

    Após verificar alguns posts com problemas parecidos com este executei o CHECKDB da seguinte forma:

    USE MASTER
    GO

    DBCC CHECKDB (bd_minasvel) WITH ALL_ERRORMSGS
    ALTER DATABASE bd_minasvel SET emergency
    ALTER DATABASE bd_minasvel SET SINGLE_USER WITH ROLLBACK IMMEDIATE
    DBCC CHECKDB (bd_minasvel, REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS
    ALTER DATABASE bd_minasvel SET MULTI_USER WITH ROLLBACK IMMEDIATE

    Após a execução, aparentemente os erros foram corrigidos. Segue.

    DBCC results for 'sys.sysobjvalues'.
    Repair: The Clustered index successfully rebuilt for the object "sys.sysobjvalues" in database "bd_minasvel".
    Mensagem 8945, Nível 16, Estado 1, Linha 5
    Table error: Object ID 60, index ID 1 will be rebuilt.
            The error has been repaired.
    Mensagem 8978, Nível 16, Estado 1, Linha 5
    Table error: Object ID 60, index ID 1, partition ID 281474980642816, alloc unit ID 281474980642816 (type In-row data). Page (1:46981) is missing a reference from previous page (1:38778). Possible chain linkage problem.
            The error has been repaired.
    There are 14061 rows in 7221 pages for object "sys.sysobjvalues".

    mas ao executar novamente o CHECKDB os mesmos erros são apresentados. Qual seria a melhor alternativa para corrigir este problema?

    quinta-feira, 19 de setembro de 2013 14:06

Respostas

  • Matheus bom dia,

    Bem a saída é criar um banco novo e exportar todos os dados, faça um backup antes de transferir os dados e mantenha a base antiga para caso falte alguma coisa.

    É um processo meio trabalhoso, sugiro que valide bem os dados antes de colocar a base nova em produção.

    Como a base antiga já esta com o Recovery Model simple, você pode truncar o log, já que não vão acontecer mais operações nela, com isso você já libera uma grande parte desses 69,6 GB.

    Depois de exportado, faça backups de log regularmente, com a política de backup correta o arquivo de log não vai crescer tanto e pode te ajudar muito caso você volte a ter problemas.


    [ ]´s,
    Lukas Baldan



    terça-feira, 24 de setembro de 2013 11:00

Todas as Respostas

  • Qual a sua versão do sql server?


    [ ]´s,
    Lukas Baldan

    quinta-feira, 19 de setembro de 2013 16:26
  • Boa tarde Lukas,

    SQL server 2008, já instalei também um hotfix p/ sql server 2008 sp3 e não resolveu.

    Microsoft SQL Server Management Studio 10.0.5775.0
    Microsoft Analysis Services Client Tools 10.0.5775.0
    Microsoft Data Access Components (MDAC) 6.0.6002.18005
    Microsoft MSXML 3.0 4.0 5.0 6.0 
    Microsoft Internet Explorer 9.0.8112.16421
    Microsoft .NET Framework 2.0.50727.4241
    Sistema Operacional 6.0.6002

    quinta-feira, 19 de setembro de 2013 16:32
  • Teste dessa forma,

    USE MASTER
    GO
    
    DBCC CHECKDB (bd_minasvel) WITH ALL_ERRORMSGS
    ALTER DATABASE bd_minasvel SET SINGLE_USER WITH ROLLBACK IMMEDIATE
    DBCC CHECKDB (bd_minasvel, REPAIR_REBUILD ) WITH ALL_ERRORMSGS
    ALTER DATABASE bd_minasvel SET MULTI_USER 
    
    DBCC CHECKDB (bd_minasvel) WITH ALL_ERRORMSGS


    [ ]´s,
    Lukas Baldan



    quinta-feira, 19 de setembro de 2013 16:57
  • Lukas, 

    retornou as seguintes mensagens na sequencia

    CHECKDB found 0 allocation errors and 1 consistency errors in database 'bd_minasvel'. repair_rebuild is the minimum repair level for the errors found by DBCC CHECKDB (bd_minasvel). DBCC execution completed. If DBCC printed error messages, contact your system administrator. Mensagem 2510, Nível 16, Estado 17, Linha 4 DBCC checkdb error: This system table index cannot be recreated. DBCC results for 'bd_minasvel'. Service Broker Msg 9675, State 1: Message Types analyzed: 14. Service Broker Msg 9676, State 1: Service Contracts analyzed: 6. Service Broker Msg 9667, State 1: Services analyzed: 3. Service Broker Msg 9668, State 1: Service Queues analyzed: 3. Service Broker Msg 9669, State 1: Conversation Endpoints analyzed: 0. Service Broker Msg 9674, State 1: Conversation Groups analyzed: 0. Service Broker Msg 9670, State 1: Remote Service Bindings analyzed: 0. Service Broker Msg 9605, State 1: Conversation Priorities analyzed: 0.

    DBCC results for 'sys.sysobjvalues'. Repair: The Clustered index successfully rebuilt for the object "sys.sysobjvalues" in database "bd_minasvel". Mensagem 8945, Nível 16, Estado 1, Linha 4 Table error: Object ID 60, index ID 1 will be rebuilt.         The error has been repaired. Mensagem 8978, Nível 16, Estado 1, Linha 4 Table error: Object ID 60, index ID 1, partition ID 281474980642816, alloc unit ID 281474980642816 (type In-row data). Page (1:46981) is missing a reference from previous page (1:38778). Possible chain linkage problem.         The error has been repaired. Mensagem 8936, Nível 16, Estado 1, Linha 4 Table error: Object ID 60, index ID 1, partition ID 281474980642816, alloc unit ID 281474980642816 (type In-row data). B-tree chain linkage mismatch. (1:38778)->next = (1:141027), but (1:141027)->Prev = (1:46981).         The error has been repaired. There are 14061 rows in 7222 pages for object "sys.sysobjvalues". CHECKDB found 0 allocation errors and 2 consistency errors in table 'sys.sysobjvalues' (object ID 60). CHECKDB fixed 0 allocation errors and 2 consistency errors in table 'sys.sysobjvalues' (object ID 60).

    DBCC results for 'sys.sysobjvalues'. Mensagem 8978, Nível 16, Estado 1, Linha 7 Table error: Object ID 60, index ID 1, partition ID 281474980642816, alloc unit ID 281474980642816 (type In-row data). Page (1:46981) is missing a reference from previous page (1:38778). Possible chain linkage problem. Mensagem 8936, Nível 16, Estado 1, Linha 7 Table error: Object ID 60, index ID 1, partition ID 281474980642816, alloc unit ID 281474980642816 (type In-row data). B-tree chain linkage mismatch. (1:38778)->next = (1:141027), but (1:141027)->Prev = (1:46981). There are 14061 rows in 7222 pages for object "sys.sysobjvalues". CHECKDB found 0 allocation errors and 2 consistency errors in table 'sys.sysobjvalues' (object ID 60).

    CHECKDB found 0 allocation errors and 2 consistency errors in database 'bd_minasvel'. repair_rebuild is the minimum repair level for the errors found by DBCC CHECKDB (bd_minasvel). DBCC execution completed. If DBCC printed error messages, contact your system administrator.
    quinta-feira, 19 de setembro de 2013 19:03
  • Lukas, 

    retornou as seguintes mensagens na sequencia

    CHECKDB found 0 allocation errors and 1 consistency errors in database 'bd_minasvel'. repair_rebuild is the minimum repair level for the errors found by DBCC CHECKDB (bd_minasvel). DBCC execution completed. If DBCC printed error messages, contact your system administrator. Mensagem 2510, Nível 16, Estado 17, Linha 4 DBCC checkdb error: This system table index cannot be recreated. DBCC results for 'bd_minasvel'. Service Broker Msg 9675, State 1: Message Types analyzed: 14. Service Broker Msg 9676, State 1: Service Contracts analyzed: 6. Service Broker Msg 9667, State 1: Services analyzed: 3. Service Broker Msg 9668, State 1: Service Queues analyzed: 3. Service Broker Msg 9669, State 1: Conversation Endpoints analyzed: 0. Service Broker Msg 9674, State 1: Conversation Groups analyzed: 0. Service Broker Msg 9670, State 1: Remote Service Bindings analyzed: 0. Service Broker Msg 9605, State 1: Conversation Priorities analyzed: 0.

    DBCC results for 'sys.sysobjvalues'. Repair: The Clustered index successfully rebuilt for the object "sys.sysobjvalues" in database "bd_minasvel". Mensagem 8945, Nível 16, Estado 1, Linha 4 Table error: Object ID 60, index ID 1 will be rebuilt.         The error has been repaired. Mensagem 8978, Nível 16, Estado 1, Linha 4 Table error: Object ID 60, index ID 1, partition ID 281474980642816, alloc unit ID 281474980642816 (type In-row data). Page (1:46981) is missing a reference from previous page (1:38778). Possible chain linkage problem.         The error has been repaired. Mensagem 8936, Nível 16, Estado 1, Linha 4 Table error: Object ID 60, index ID 1, partition ID 281474980642816, alloc unit ID 281474980642816 (type In-row data). B-tree chain linkage mismatch. (1:38778)->next = (1:141027), but (1:141027)->Prev = (1:46981).         The error has been repaired. There are 14061 rows in 7222 pages for object "sys.sysobjvalues". CHECKDB found 0 allocation errors and 2 consistency errors in table 'sys.sysobjvalues' (object ID 60). CHECKDB fixed 0 allocation errors and 2 consistency errors in table 'sys.sysobjvalues' (object ID 60).

    DBCC results for 'sys.sysobjvalues'. Mensagem 8978, Nível 16, Estado 1, Linha 7 Table error: Object ID 60, index ID 1, partition ID 281474980642816, alloc unit ID 281474980642816 (type In-row data). Page (1:46981) is missing a reference from previous page (1:38778). Possible chain linkage problem. Mensagem 8936, Nível 16, Estado 1, Linha 7 Table error: Object ID 60, index ID 1, partition ID 281474980642816, alloc unit ID 281474980642816 (type In-row data). B-tree chain linkage mismatch. (1:38778)->next = (1:141027), but (1:141027)->Prev = (1:46981). There are 14061 rows in 7222 pages for object "sys.sysobjvalues". CHECKDB found 0 allocation errors and 2 consistency errors in table 'sys.sysobjvalues' (object ID 60).

    CHECKDB found 0 allocation errors and 2 consistency errors in database 'bd_minasvel'. repair_rebuild is the minimum repair level for the errors found by DBCC CHECKDB (bd_minasvel). DBCC execution completed. If DBCC printed error messages, contact your system administrator.
    Outra coisa que eu estava esquecendo, o SQL esta gerando arquivos Dump no diretório 'Log' (caminho: M:\SQLDATAFILES\MSSQL10.MSSQLSERVER\MSSQL\Log) constantemente ex: SQLDump77354.log, SQLDUMPER_ERRORLOG.log, SQLDump77356.mdmp não sei se tem a ver com o erro da tabela sys.sysobjvalues mas esta me preocupando muito também. 
    quinta-feira, 19 de setembro de 2013 19:18
  • Cara como estão seus backups?

    Você faz backups de log?


    [ ]´s,
    Lukas Baldan

    sexta-feira, 20 de setembro de 2013 11:21
  • Matheus,

    Este banco de dados tem mais de uma arquivo de dados ou log? Se a sua resposta for não, faça o seguinte.

    Antes de qualquer coisa realize um backup!!!!

    1 - Realizar backup;

    2 - Colocar o banco de dados em modo Single User;

    3 - Realize o Dettach Database;

    4 - Realize o Attach Database através da System Stored Procedure: sp_attach_single_file_db

    5 - Execute o DBCC CheckDB reparando todos os erros;

    6 - Altere o Banco de Dados para Multi-User.

    Provavelmente o arquivo de log esta danificado.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    sexta-feira, 20 de setembro de 2013 14:30
    Moderador
  • Lukas, já tem algum tempo que meu banco esta com esse problema, os backups anteriores a este erro já estão antigos.
    segunda-feira, 23 de setembro de 2013 12:45
  • Ok, e os backups de log, você faz backups de log?


    [ ]´s,
    Lukas Baldan

    segunda-feira, 23 de setembro de 2013 12:53
  • Atualmente não, tive que mudar o banco para modelo de recuperação simples porque o arquivo de log estava crescendo muito (antes do erro na tabela sys.sysobjvalues não era assim, o arquivo de log não crescia descontroladamente) mas tenho backups de log que foram feitos dezembro de 2012 ate abril de 2013 quando o modelo de recuperação ainda era full.
    segunda-feira, 23 de setembro de 2013 13:17
  • Matheus,

    Este banco de dados tem mais de uma arquivo de dados ou log? Se a sua resposta for não, faça o seguinte.

    Antes de qualquer coisa realize um backup!!!!

    1 - Realizar backup;

    2 - Colocar o banco de dados em modo Single User;

    3 - Realize o Dettach Database;

    4 - Realize o Attach Database através da System Stored Procedure: sp_attach_single_file_db

    5 - Execute o DBCC CheckDB reparando todos os erros;

    6 - Altere o Banco de Dados para Multi-User.

    Provavelmente o arquivo de log esta danificado.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    Galvão, já tentei este procedimento mas não resolveu.
    segunda-feira, 23 de setembro de 2013 13:55
  • O backup de log poderia te ajudar muito.

    Bem como você não tem o backup de log, acho que sua melhor opção é criar um outro banco e exportar todos os dados e objetos.

    Qual o tamanho do seu banco?


    [ ]´s,
    Lukas Baldan

    segunda-feira, 23 de setembro de 2013 20:32
  • O arquivo .mdf tem 4,34 GB e o arquivo de log .ldf tem 69,6 GB.
    segunda-feira, 23 de setembro de 2013 20:44
  • Matheus bom dia,

    Bem a saída é criar um banco novo e exportar todos os dados, faça um backup antes de transferir os dados e mantenha a base antiga para caso falte alguma coisa.

    É um processo meio trabalhoso, sugiro que valide bem os dados antes de colocar a base nova em produção.

    Como a base antiga já esta com o Recovery Model simple, você pode truncar o log, já que não vão acontecer mais operações nela, com isso você já libera uma grande parte desses 69,6 GB.

    Depois de exportado, faça backups de log regularmente, com a política de backup correta o arquivo de log não vai crescer tanto e pode te ajudar muito caso você volte a ter problemas.


    [ ]´s,
    Lukas Baldan



    terça-feira, 24 de setembro de 2013 11:00
  • Obrigado Lukas, acho que é a melhor alternativa mesmo. vou tentar fazer esse fim de semana.

    Abç

    quarta-feira, 25 de setembro de 2013 20:10