none
Banco Corrompido RRS feed

  • Pergunta

  • Bom dia, estou com um problemao!!!

     

    Um banco SQL Server 2008 R2 corrompeu, acredito por ter desligado o servidor de forma incorreta.

    Estou tentando DBCC CHECKDB com todas as opções possiveis e esta dando o erro:

     

    Msg 7985, Level 16, State 2, Line 1
    System table pre-checks: Object ID 3. Could not read and latch page (1:18273) with latch type SH. Check statement terminated due to unrepairable error.
    Msg 5233, Level 16, State 98, Line 1
    Table error: alloc unit ID 196608, page (1:18273). The test (IS_OFF (BUF_IOERR, pBUF->bstat)) failed. The values are 12584969 and -6.
    CHECKDB found 0 allocation errors and 1 consistency errors not associated with any single object.
    CHECKDB found 0 allocation errors and 1 consistency errors in database 'AutoSystem2005'.

    Tem alguma coisa que pode ser feito, sem ser restaurar o BKP? Tem como recuperar esse banco?

    Obrigado!!!

    • Movido Gustavo Maia Aguiar quarta-feira, 8 de junho de 2011 21:53 (De:SQL Server - Desenvolvimento Geral)
    quarta-feira, 8 de junho de 2011 13:58

Respostas

  • Davi, veja as dicas que o Marcelo, Junior e Gustavo dão em http://social.msdn.microsoft.com/Forums/pt-BR/520/thread/09b494a0-75c1-4b66-8ae8-c8420c297ea1. Acredito que possa lhe ajudar.

    Marcelo e Junior falam sobre usar o DBCC CheckAlloc, com a opção de permitir perda de dados.

    DBCC CHECKALLOC ('nome_banco', REPAIR_ALLOW_DATA_LOSS )


    Roberson Ferreira - Database Developer

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta DaviSaba quinta-feira, 9 de junho de 2011 13:01
    quarta-feira, 8 de junho de 2011 14:03
  • Bom dia Davi

     

    Aparentemente parece ser um erro de consistência na table de sistema sysrscols. Consegue exportar os dados ?

     

     

     

    Espero ter ajudado


    Anderson - DBA/MCP/MCTS/MCITP/MCT - Sua pergunta foi respondida ? Marque-a como tal! www.myspace.com/andersondpa
    • Marcado como Resposta DaviSaba quinta-feira, 9 de junho de 2011 13:02
    quarta-feira, 8 de junho de 2011 14:17
  • Bom dia DaviSaba,

    Já tentou excluir os índices e criá-los novamente?


    Fabrício França Lima | MCP, MCTS, MCITP | Visite meu site: http://fabriciolima.net | Dicas de artigos SQL: Siga-me no twitter @fabriciodba.
    • Marcado como Resposta DaviSaba quinta-feira, 9 de junho de 2011 13:02
    quarta-feira, 8 de junho de 2011 15:41
  • Davi,

     

     

    Veja este link: http://www.sqlservercentral.com/articles/Corruption/65804/ creio que lhe possa ser muito util.


    Oracle OCA11g, MCC 2011! Dicas e novidades: www.fabrizziocaputo.wordpress.com
    • Marcado como Resposta DaviSaba quinta-feira, 9 de junho de 2011 13:01
    quarta-feira, 8 de junho de 2011 16:19
    Moderador
  • Vc disse que conseguiu descobrir a tabela que ocorreu o erro, derrepente vc pode restaurar um bkp em uma base diferente e exportar a tabela para o banco onde ela esta corrompida


    Analista Desenvolvedor
    • Marcado como Resposta DaviSaba quinta-feira, 9 de junho de 2011 13:02
    quarta-feira, 8 de junho de 2011 19:20
  • Excluir os índices não deu certo?

    Tente verificar quais são os dados dessa página. Isso já aconteceu comigo e era apenas uma linha da tabela que estava com problema.

    Coloquei nesse post essa experiencia: http://fabriciolima.net/blog/2011/03/17/casos-do-dia-a-dia-erro-ao-executar-o-comando-dbcc-checkdb/

    Nesse post tem o comando para ver os registros de uma página de dados.


    Fabrício França Lima | MCP, MCTS, MCITP | Visite meu site: http://fabriciolima.net | Dicas de artigos SQL: Siga-me no twitter @fabriciodba.
    • Marcado como Resposta DaviSaba quinta-feira, 9 de junho de 2011 13:00
    quinta-feira, 9 de junho de 2011 12:53

Todas as Respostas

  • Davi, veja as dicas que o Marcelo, Junior e Gustavo dão em http://social.msdn.microsoft.com/Forums/pt-BR/520/thread/09b494a0-75c1-4b66-8ae8-c8420c297ea1. Acredito que possa lhe ajudar.

    Marcelo e Junior falam sobre usar o DBCC CheckAlloc, com a opção de permitir perda de dados.

    DBCC CHECKALLOC ('nome_banco', REPAIR_ALLOW_DATA_LOSS )


    Roberson Ferreira - Database Developer

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta DaviSaba quinta-feira, 9 de junho de 2011 13:01
    quarta-feira, 8 de junho de 2011 14:03
  • Bom dia Davi

     

    Aparentemente parece ser um erro de consistência na table de sistema sysrscols. Consegue exportar os dados ?

     

     

     

    Espero ter ajudado


    Anderson - DBA/MCP/MCTS/MCITP/MCT - Sua pergunta foi respondida ? Marque-a como tal! www.myspace.com/andersondpa
    • Marcado como Resposta DaviSaba quinta-feira, 9 de junho de 2011 13:02
    quarta-feira, 8 de junho de 2011 14:17
  • Obrigado a todos!!!

    Fala Anderson, tudo bem?

    Estou tentando reindexar com o comando:

       EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?', ' ', 80)"

    Da o erro:

    [dbo].[MAC_RectoPro]
    Msg 829, Level 21, State 1, Line 1
    Database ID 5, Page (1:18273) is marked RestorePending, which may indicate disk corruption. To recover from this state, perform a restore.

    Acredito que essa pode ser uma das tabelas que esta com problema.

    o CHECKALLOC tambem da erro:

    Msg 5233, Level 16, State 98, Line 1
    Table error: alloc unit ID 196608, page (1:18273). The test (IS_OFF (BUF_IOERR, pBUF->bstat)) failed. The values are 29362185 and -6.
    Msg 7985, Level 16, State 2, Line 1
    System table pre-checks: Object ID 3. Could not read and latch page (1:18273) with latch type SH. Check statement terminated due to unrepairable error.

     Algumas tabelas dao erro no SELECT, por isso exportar os dados nao é 100%, mas estou tentando tambem.

     

    quarta-feira, 8 de junho de 2011 14:24
  • Pessoal, Consegui exportar os dados, com excessao de 3 tabelas que estao corrompidas. Entao tentei recupera-las:

    DBCC CHECKTABLE  ('CPro_Produto', REPAIR_ALLOW_DATA_LOSS)
    DBCC CHECKTABLE  ('CPro_Produto', REPAIR_FAST)
    DBCC CHECKTABLE  ('CPro_Produto', REPAIR_REBUILD)

    Da o erro:

    Msg 5233, Level 16, State 98, Line 1
    Table error: alloc unit ID 196608, page (1:18273). The test (IS_OFF (BUF_IOERR, pBUF->bstat)) failed. The values are 29362185 and -6.
    Msg 7985, Level 16, State 2, Line 1
    System table pre-checks: Object ID 3. Could not read and latch page (1:18273) with latch type SH. Check statement terminated due to unrepairable error.

    A reindexao tambem da erro quando chega na primeira tabela que apresenta o problema.

    Alguma coisa ainda que pode ser feita?

    quarta-feira, 8 de junho de 2011 15:34
  • Bom dia DaviSaba,

    Já tentou excluir os índices e criá-los novamente?


    Fabrício França Lima | MCP, MCTS, MCITP | Visite meu site: http://fabriciolima.net | Dicas de artigos SQL: Siga-me no twitter @fabriciodba.
    • Marcado como Resposta DaviSaba quinta-feira, 9 de junho de 2011 13:02
    quarta-feira, 8 de junho de 2011 15:41
  • Davi,

     

     

    Veja este link: http://www.sqlservercentral.com/articles/Corruption/65804/ creio que lhe possa ser muito util.


    Oracle OCA11g, MCC 2011! Dicas e novidades: www.fabrizziocaputo.wordpress.com
    • Marcado como Resposta DaviSaba quinta-feira, 9 de junho de 2011 13:01
    quarta-feira, 8 de junho de 2011 16:19
    Moderador
  • Pela forma que esta, e pela ajuda recebida, todos os artigos dizem que nao tem como, que a solucao é restaurar um BKP que nao esta corrompido.

    Uma das tabelas que estao corrompidas, tentei excluir o indice PK e aparentemente é ele que esta com problemas. Nao consigo nem dar um SELECT na tabela. Nao tem alguma forma de dar SELECT nessa tabela para recuperar os dados?

    Obrigado!!!

    quarta-feira, 8 de junho de 2011 17:15
  • Tenta excluir os índices e as foreign keys também. Depois tenta reparar a tabela

     

     

     

    Espero ter ajudado


    Anderson - DBA/MCP/MCTS/MCITP/MCT - Sua pergunta foi respondida ? Marque-a como tal! www.myspace.com/andersondpa
    quarta-feira, 8 de junho de 2011 18:29
  • Nao deixa alterar nada na tabela. Mas eu descobri a Pagina de dados que esta com problema, sera que tem como recupera-la, ou fazer qualquer coisa?

    Database ID 6, Page (1:18273) is marked RestorePending, which may indicate disk corruption. To recover from this state, perform a restore.

     

    quarta-feira, 8 de junho de 2011 18:58
  • Vc disse que conseguiu descobrir a tabela que ocorreu o erro, derrepente vc pode restaurar um bkp em uma base diferente e exportar a tabela para o banco onde ela esta corrompida


    Analista Desenvolvedor
    • Marcado como Resposta DaviSaba quinta-feira, 9 de junho de 2011 13:02
    quarta-feira, 8 de junho de 2011 19:20
  • Excluir os índices não deu certo?

    Tente verificar quais são os dados dessa página. Isso já aconteceu comigo e era apenas uma linha da tabela que estava com problema.

    Coloquei nesse post essa experiencia: http://fabriciolima.net/blog/2011/03/17/casos-do-dia-a-dia-erro-ao-executar-o-comando-dbcc-checkdb/

    Nesse post tem o comando para ver os registros de uma página de dados.


    Fabrício França Lima | MCP, MCTS, MCITP | Visite meu site: http://fabriciolima.net | Dicas de artigos SQL: Siga-me no twitter @fabriciodba.
    • Marcado como Resposta DaviSaba quinta-feira, 9 de junho de 2011 13:00
    quinta-feira, 9 de junho de 2011 12:53
  • Eu tentei de tudo, inclusive o link que voce me passou, mas no meu caso acho que o rombo foi maior. Consegui recuperar tudo, menos a tabela de cadastro de produtos, e o cliente tinha um BKP antigo e recuperei os produtos desse BKP. Foi o maximo que pude fazer, e acho que agora ele vai seguir as orientacoes de fazer bkp 4 x ao dia mais a serio.

    Obrigado a todos!!!

    quinta-feira, 9 de junho de 2011 12:59