Base de dados corrompida

Algumas vezes, por motivos diferentes um banco de dados pode sofrer algum problema e fica corrompido.
Existem muitas coisas que podem ficar corrompidas em uma base de dados, desde apenas uma pagina (No SQL Server 8KB, menor alocação possivel) até objetos maiores.
É importante dizer tambem que, para alguns tipos existe solução, para outras, talvez não portanto uma estrategia de backup é uma das tarefas mais importantes de um DBA.

Para se verificar se um banco de dados esta corrompido, basta executar o comando:

DBCC CHECKDB('DataBaseName')

Para complementar o comando CHECKDB, a Microsoft dispoe de algumas opções, são elas:
– REPAIR_ALLOW_DATA_LOSS: Teoricamente um dos ultimos recursos que devem ser utilizados, pois voce esta dizendo ao SQL que para tentar corrigir o problema, ele pode deletar dados.
– REPAIR_FAST: O primeiro recurso que voce deve utilizar, pois ele tenta corrigir sózinho o problema, não causando nenhum outro problema para sua base e sem perigo de perda de dados.
– REPAIR_REBUILD: Procura o erro, e tenta reconstruir o objeto ou pagina que esta com problema, esta opção tambem é bem segura e teoricamente não ha perda de dados. Saiba que todas essas opções são para erros genericos, seria como um chute, para tentar resolver um problema, alguns erros mais especificos, sua explicação e se existe ou não a possibilidade de correção estão listadas abaixo:

Msg 2508, Level 16, State 3, Line 1
The In-row data RSVD page count for object "OBJ1", index ID 1, partition ID 76911687656781, alloc unit ID 76911123495381 (type In-row data) is incorrect. Run DBCC UPDATEUSAGE.

Este erro ocorre quando existe algum objeto errado para alguma area reservada, a correção do mesmo é bem simples, basta a execução do comando:

DBCC UPDATEUSAGE
Msg 8914, Level 16, State 1, Line 1
Incorrect PFS free space information for page (1:26839) in object ID 181575685, index ID 1, partition ID 293374720802816, alloc unit ID 76911687695381 (type LOB data). Expected value 0_PCT_FULL, actual value 100_PCT_FULL.

Este erro ocorre quando o espaço livre (PFS, Page Free Space) de alguma pagina possui um valor incorreto, assim como o erro anterior, o mesmo tambem é bem simples de ser corrigido, porem, para a correção deste erro basta executar o comando:

DBCC CHECKDB('DataBaseName', REPAIR_ALLOW_DATA_LOSS)

, esteja certo que este é o unico erro em sua base antes de executar a correção, caso seja, nenhum dado sera deletado apesar do comando REPAIR_ALLOW_DATA_LOSS, porem, se algum outro erro existir, pode sim haver perda de dados.

Msg 8964, Level 16, State 1, Line 1
Table error: Object ID 181575685, index ID 1, partition ID 72057594145669120, alloc unit ID 72057594087800832 (type LOB data). The off-row data node at page (1:2444050), slot 0, text ID 901891555328 is not referenced.

Este erro indice que existem paginas LOB (Large Objects, Objetos Grandes) que não são referenciadas por nenhuma linha de dados, assim como o erro anterior, se este for o unico erro retornado, basta rodar o comando:

DBCC CHECKDB('DataBaseName', REPAIR_ALLOW_DATA_LOSS)

Anúncios
Post a comment or leave a trackback: Trackback URL.

Comentários

  • Alexandre Ricardo  On 13/07/2011 at 14:37

    O que a Microsoft não conta é que depois que você dora um DBCC CHECKDB numa base que estava corrompida e consegue recuperá-la não deve voltar esse DEVICE para produção sob o risco de perdê-lo novamente.

    Isso acontece por que o problema que provocou o SUSPECT ainda pode estar lá.

    A recomendação de quem já passou por isso é criar um DEVICE novo zerado, rodar os scripts de criação das tabelas e migras os dados usando as ferramentas do MIGRATION SERVICES.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: