Verificar se a integridade do banco de dados falha

1

Meus planos de manutenção noturna estão falhando em dois bancos de dados. Eu nem tenho certeza do que isso significa. Alguma idéia de como consertar?

Aqui está o erro que tenho do plano de manutenção:

Executing the query "DBCC CHECKDB(N'Site_DB')  WITH NO_INFOMSGS
" failed with the following error: "The Index Allocation Map (IAM) page (0:0) is pointed to by the previous pointer of IAM page (1:747) in object ID 0, index ID -1, partition ID 0, alloc unit ID 72057597046816768 (type Unknown), but it was not detected in the scan.
CHECKDB found 1 allocation errors and 0 consistency errors not associated with any single object.
CHECKDB found 1 allocation errors and 0 consistency errors in database 'Site_DB'.
repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB (Site_DB).". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

A parte interessante é que 2 bancos de dados diferentes estão relatando isso com exatamente o mesmo id de página. Não sei por que isso acontece.

    
por NotMe 02.07.2010 / 20:07

1 resposta

1

Eu encontrei um artigo que deu algumas dicas sobre como chegar ao problema.
Então eu corri o seguinte:

DBCC TRACEON(3604,-1)
GO
DBCC PAGE('Site_DB', 1, 747, 3)

O resultado do valor Metadata: IndexId foi -1. O artigo dizia que, se fosse maior que 1, solte e recrie o índice não agrupado. Se foi 0 ou 1, restaure a partir do backup ou tente o reparo. Infelizmente, nenhuma dessas situações cobrem um valor -1 ...

Então eu fui em frente e corri

DBCC CHECKDB('Site_DB', REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS

Isso voltou e disse se encontrei os erros de alocação e os consertei. Só para ter certeza que eu corri DBCC CHECKDB ('SiteDB') COM NO_INFOMSGS mais uma vez e voltou claro.

    
por 02.07.2010 / 20:30