Eu entendo que olhar DBCC PAGE
deve me mostrar o último bem conhecido DBCC CHECKDB
, mas não estou vendo este trabalho corretamente.
Eu tenho um banco de dados que sei que está corrompido. Se eu executar, DBCC CHECKDB
os erros serão exibidos conforme o esperado (veja abaixo).
CHECKDB found 0 allocation errors and 1 consistency errors in table 'Blah'
(object ID 251147940).
Msg 2508, Level 16, State 3, Line 1
Quando executo o abaixo para avaliar dbi_dbccLastKnownGood
, obtenho o tempo em que CHECKDB
foi executado até o segundo.
DBCC PAGE ('Blah', 1, 9, 3) WITH TABLERESULTS;
Eu li as informações de Paul Randal e, a partir disso, parece que estou lendo/fazendo isso corretamente. Alguém já viu isso antes e, em caso afirmativo, alguma ideia sobre como contornar isso?
Aqui está uma amostra completa do erro. Estou recebendo 12 desses para mesas diferentes.
Msg 2508, Level 16, State 3, Line 1
The In-row data RSVD page count for object "Mailings", index ID 0, partition ID 16459231395840, alloc unit ID 16459231395840 (type In-row data) is incorrect. Run DBCC UPDATEUSAGE.
CHECKDB found 0 allocation errors and 1 consistency errors in table Mailings' (object ID 251147940).
Resposta da wiki da comunidade :
Do CHECKDB De todos os ângulos: quando o DBCC CHECKDB foi executado com êxito pela última vez? por Paulo Randal:
Parece um tanto contraditório, mas concordo que parece que esse comportamento não é esperado para que esse campo seja atualizado se erros forem relatados.
Por outro lado, seus exemplos são problemas menores, facilmente corrigidos executando,
DBCC UPDATEUSAGE
então talvez o SQL Server considere isso uma execução bem-sucedida.