locked
Pagina corrompida, o que fazer? RRS feed

  • Pergunta

  • Pessoal estou na seguinte situacao:

    Banco de dados simple mode. Sql server 2008 R2.

    Sql express.

    O tamanho do HD acabou e acabou corrompendo uma única pagina de dados.

    não consigo colocar o banco em emergency mode.

    o DBCC CHECKDB (Sismoura, REPAIR_ALLOW_DATA_LOSS)

    Retorna 

    DBCC results for 'Sismoura'.
    CHECKDB found 0 allocation errors and 0 consistency errors in database 'Sismoura'.
    DBCC results for 'Sismoura'.
    CHECKDB found 0 allocation errors and 0 consistency errors in database 'Sismoura'.
    Msg 824, Level 24, State 2, Line 1
    SQL Server detected a logical consistency-based I/O error: incorrect pageid (expected 1:138; actual 0:9045989). It occurred during a read of page (1:138) in database ID 32 at offset 0x00000000114000 in file 'G:\Sismoura.mdf'.  Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
    Msg 824, Level 24, State 2, Line 1
    SQL Server detected a logical consistency-based I/O error: incorrect pageid (expected 1:138; actual 0:9045989). It occurred during a read of page (1:138) in database ID 32 at offset 0x00000000114000 in file 'G:\Sismoura.mdf'.  Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
    Msg 824, Level 24, State 2, Line 1
    SQL Server detected a logical consistency-based I/O error: incorrect pageid (expected 1:138; actual 0:9045989). It occurred during a read of page (1:138) in database ID 32 at offset 0x00000000114000 in file 'G:\Sismoura.mdf'.  Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
    Msg 824, Level 24, State 2, Line 1
    SQL Server detected a logical consistency-based I/O error: incorrect pageid (expected 1:138; actual 0:9045989). It occurred during a read of page (1:138) in database ID 32 at offset 0x00000000114000 in file 'G:\Sismoura.mdf'.  Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
    Msg 7909, Level 20, State 1, Line 1
    The emergency-mode repair failed.You must restore from backup.

    Não preciso falar que o cliente utilizou o sistema durante um mês dando mensagem que nenhum backup foi realizado... demorando 1 minuto para entrar no sistema para forçar o viado para fazer backup e o excelentíssimo cliente clicava em fazer backup... o sistema dava um erro dizendo que não havia espaço em disco... porém como entrava no sistema o cliente nem ligava.

    Bem existe alguma forma de jogar essa pagina de dados fora e recuperar os outros dados?

    O que eu faço para recuperar o máximo de registros possiveis?

    Atenciosamente, Thiago Moura



    Concatenado

    terça-feira, 24 de setembro de 2013 12:46

Respostas

  • Tente incluir no seu comando DBCC o TABLOCK para que não seja gerado o snapshot na verificação da DB.

    Ex:

    DBCC CHECKDB ('<NOME DO BANCO DE DADOS>') WITH ALL_ERRORMSGS, TABLOCK 


    Roberto Galvão | MCTS | MCITP | Microsoft Partner |

    terça-feira, 24 de setembro de 2013 13:47

Todas as Respostas

  • Olá Thiago,

    Tente realizar este procedimento. Tive uma problema estes tempos e resolvi desta forma.

    Link: http://bobgalvao.wordpress.com/2013/08/15/reparando-banco-de-dados-com-tabela-corrompida/

    "Se a resposta foi útil, não esqueça de marcar a resposta."

    Roberto Galvão 
    MCITP - Administration SQL Server 2008
    MCITP - Developer SQL Server 2008 
    MCSA - SQL Server 2012 
    MCT - SQL Server 
    Blog: http://bobgalvao.wordpress.com


    Roberto Galvão | MCTS | MCITP | Microsoft Partner |

    terça-feira, 24 de setembro de 2013 12:51
  • Não rolou. O segundo comando deu

    DBCC CheckDB (Sismoura, REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS

    Msg 945, Level 14, State 2, Line 1
    Database 'Sismoura' cannot be opened due to inaccessible files or insufficient memory or disk space.  See the SQL Server errorlog for details.


    Concatenado

    terça-feira, 24 de setembro de 2013 13:30
  • Você está sem espaço em disco. 

    Dê uma olhada.

    Tente realizar um shrink nos arquivos do banco de dados para liberar espaço em disco.

    Link: http://technet.microsoft.com/en-us/library/ms190757.aspx#SSMSProcedure


    Roberto Galvão | MCTS | MCITP | Microsoft Partner |

    terça-feira, 24 de setembro de 2013 13:37
  • Tente incluir no seu comando DBCC o TABLOCK para que não seja gerado o snapshot na verificação da DB.

    Ex:

    DBCC CHECKDB ('<NOME DO BANCO DE DADOS>') WITH ALL_ERRORMSGS, TABLOCK 


    Roberto Galvão | MCTS | MCITP | Microsoft Partner |

    terça-feira, 24 de setembro de 2013 13:47