Usuário com melhor resposta
Banco Corrompido

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)
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 DeveloperSe 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
-
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
-
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
-
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
-
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
-
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
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 DeveloperSe 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
-
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
-
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.
-
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?
-
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
-
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
-
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!!!
-
-
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.
-
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
-
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
-
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!!!