Loading…

Corrupção de Dados: Incorrect PFS free space information

Olá Pessoal,

Essa semana iniciei mais uma Consultoria Remota em um cliente e uma das atividades mais importante desse serviço é criar uma rotina para validar diariamente se existe corrupção nos bancos. Na grande maioria das vezes o banco está abandonado e não tem uma rotina dessa.

Ao executar essa validação, peguei o erro abaixo em uma das bases de dados:

Executed as user: XXXX. Incorrect PFS free space information for page (1:9434) in object ID 1458104235,
index ID 0, partition ID 72057594051100672, alloc unit ID 72057594055229440 (type In-row data).
Expected value 80_PCT_FULL, actual value 50_PCT_FULL. [SQLSTATE 42000] (Error 8914)

CHECKDB found 0 allocation errors and 1 consistency errors in table ‘XXXX’ 

CHECKDB found 0 allocation errors and 1 consistency errors in database ‘XXXX’

repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB

__________

Antes de sair executando repair_allow_data_loss, dei uma pesquisada sobre o erro.

Esse erro não é exatamente de dados corrompidos. Segundo meu amigo Paul Randal, isso quer dizer que a informação dessa página (1:9434), na PFS (Page Free Space),  está com um valor errado para a quantidade de espaço livre que ela tem. Essa página tem 50% de espaço livre ao invés dos 80% informado na PFS.

O Repair iria apenas corrigir essa configuração de espaço livre, mas teria que deixar a base em single user mode (offline).

Isso normalmente ocorre com bases que são migradas do SQL 2000, onde existiam alguns bugs no algoritmo que gerava essa informação.

Olhando o erro é possível ver que ele estava afetando uma tabela:

CHECKDB found 0 allocation errors and 1 consistency errors in table ‘XXXX’ 

Como eu não queria deixar a base OFFLINE, pois a tabela com problema era bem pequena, fiz os procedimentos abaixo:

1) Gerei o script dessa tabela e criei com outro nome (lembre de manter índices, identity e constraints)

2) Migrei os dados da tabela com erro para a nova tabela

3) Excluí a tabela que estava dando erro

Feito isso, o CHECKDB executou novamente sem nenhum problema.

Mais um caso de erro no CHECKDB para contar aos netos. E eles estão ficando bem constantes nesse meu trabalho de consultor SQL Server.

Até o próximo erro.

Gostou desse Post?

Cadastre seu e-mail para receber novos Posts e curta minha Página no Facebook para receber Dicas de Leituras e Eventos sobre SQL Server.

Abraços,

Fabrício Lima

MCITP – Database Administrator

Consultor e Instrutor SQL Server

Trabalha com SQL Server desde 2006

2 thoughts on “Corrupção de Dados: Incorrect PFS free space information

  1. Faaaala Fabricio..
    Ótimo post… apliquei em um caso aqui no DER e deu tudo certo.
    Obrigado mais uma vez…
    Utilizo bastante coisa postada por voce..

    abrs

Deixe uma resposta