Como executar o DBCC CHECKDB para verificar a integridade do banco de dados SQL

Console do banco de dados O comando CHECKDB (DBCC CHECKDB)é usado para verificar a integridade (física & lógica) dos objetos em um banco de dados SQL Server. A opção de reparo do DBCC não está disponível em tabelas otimizadas para memória e, portanto, leva à necessidade de backup regular do banco de dados.

As várias operações que são realizadas por CHECKDB são:

  • Execução DBCC CHECKALLOC na base de dados SQL.
  • Execução DBCC CHECKTABLE em cada tabela e visualização da base de dados SQL.
  • Execução DBCC CHECKCATALOG na base de dados SQL.
  • Validação do conteúdo na visualização indexada da base de dados.
  • Validação da consistência de nível de linha entre os directórios de ficheiros e os metadados da tabela.
  • Validação dos dados do corretor de serviços.

Desde que o DBCC CHECKDB executa todos os outros comandos não será necessário executar separadamente os comandos CHECKALLOC, CHECKTABLE e CHECKCATALOG.

DBCC CHECKDB Syntax

Os argumentos usados na sintaxe acima significam o seguinte:

nome_da_base de dados | database_id | 0 Este é o nome da base de dados. Caso o nome não esteja significado ou apenas 0 esteja escrito, então a base de dados atual está sendo usada. NOINDEX Especifica que a verificação de integridade de tabelas de índice não agrupadas não deve ser executada. Esta sintaxe não afeta os dados que residem nas tabelas. REPAIR_ALLOW_DATA_LOSS Esta sintaxe repara os erros encontrados no banco de dados, o que pode levar à perda de alguns dados.

Note: Esta sintaxe é suportada pela Microsoft e não é sempre uma solução ideal para transformar o banco de dados em um bom estado físico. Isto porque apaga todos os dados que são encontrados corrompidos e pode levar à perda de mais dados do que foi feito originalmente para o banco de dados, portanto, deve ser adotado como último recurso.

REPAIR_FAST Este argumento só mantém a compatibilidade retroativa e não realiza nenhum reparo. REPAIR REBUILD Este argumento inclui um processo de reparo mais rápido que não impõe ameaça de qualquer perda de dados. ALL_ERRORMSGS Isso mostra todos os erros que são gerados em todos os objetos. A inclusão ou exclusão desta sintaxe não terá qualquer efeito, uma vez que as mensagens de erro são normalmente ordenadas pelo ID do objecto. O número máximo de mensagens de erro que são geradas pode chegar até 1000. EXTENDED_LOGICAL_CHECKS Este argumento executa uma verificação lógica consistente em visões e índices, apenas se o nível de compatibilidade for 100. NO_INFOMSGS Remove todas as mensagens informativas. TABLOCK Esta sintaxe obtém um bloqueio exclusivo no banco de dados e aumentará a velocidade do DBCC CHECKDB em um banco de dados em momentos de carga pesada. Mas diminui a disponibilidade da base de dados para operações simultâneas. ESTIMATIVAMENTE Isto especifica ou estima a quantidade de espaço que a base de dados necessitaria para executar o comando CHECKDB. PHYSICAL_ONLY Isto coloca uma limitação para verificar apenas a estrutura física do banco de dados. Uma breve verificação aérea da base de dados física é acompanhada pela detecção de páginas rasgadas, falhas e problemas comuns enfrentados pelos usuários. DATA PURITY Esta sintaxe verifica os valores das colunas que estão fora do intervalo ou que não são válidos. As verificações de integridade do valor da coluna são ativadas por padrão e não precisam da sintaxe DATA_PURITY.

Cois To Be Kept In Mind

  • Índices desativados não podem ser verificados pelo DBCC CHECKDB.
  • Os tipos definidos pelo usuário e ordenados por bytes precisam ser serializados se o DBCC CHECKDB precisar ser executado. Em qualquer outro caso, o erro 2537 ocorre.
  • DBCC CHECKDB não pode ser executado diretamente no banco de dados Resource, pois pode ser modificado somente em modo único.

Error Messages Generated By DBCC CHECKDB

Quando o comando CHECKDB termina de ser executado, uma mensagem está sendo escrita no log de erros SQL. Em caso de sucesso, ele gera uma mensagem indicando o sucesso e o tempo total para o qual o comando foi executado. Em caso de falha, o processo é terminado devido à ocorrência de algum erro, conforme indicado por uma mensagem. Os vários valores de estado que representam a mensagem de erro são:

Error Report

Quando a corrupção é detectada pelo comando CHECKDB, um arquivo dump chamado SQLDUMPNNN.txt é criado no diretório de log do servidor SQL. No caso do recurso de coleta de dados de uso e relatório de erros ser ativado em SQL, o relatório de erro é enviado para a Microsoft para fins de melhoria.

Restauração do banco de dados

No cenário de geração de erros no servidor SQL, é recomendado restaurar o banco de dados a partir do último backup criado ao invés de reparar o banco de dados. Mas optar por reparar com REPAIR_ALLOW_DATA_LOSS pode levar à eliminação de alguns dados.

Alternative Resolution For Database Recovery

Basicamente o comando DBCC CHECKDB verifica as consistências do banco de dados, incluindo físicas ou lógicas. Este comando verifica as páginas, índice e alguns outros componentes do banco de dados do servidor SQL, mas em alguns pontos críticos este opta por recusar a recuperação do banco de dados SQL. Em caso de ausência de backup da base de dados do MS SQL server, as opções de reparação optadas podem apagar uma quantidade apreciável de dados. Portanto, para recuperar a base de dados sem comprometer a integridade dos dados, você pode optar pela solução de recuperação da base de dados Microsoft SQL. Eles garantem a recuperação completa da base de dados sem apagar qualquer quantidade de dados.

Deixe uma resposta

O seu endereço de email não será publicado.