terça-feira, 8 de fevereiro de 2011

Erros Com Tabelas: spidxx Attempt to fetch logical page (1:2032) in database 5 failed. It belongs to allocation unit xxxxx.... not to xxxxx....

Primeiro conselho que dou é checar o banco de dados na qual as tabelas estão com um DBCC CHECKDB.
Os erros apresentados no output do DBCC são semelhantes aos demonstrados abaixo;


Msg 2533, Level 16, State 1, Line 1
Table error: page (1:540) allocated to object ID 325576198, index ID 1, partition ID 72057625823870976, alloc unit ID 72057625827803136 (type In-row data) was not seen. The page may be invalid or may have an incorrect alloc unit ID in its header.

Msg 8976, Level 16, State 1, Line 1
Table error: Object ID 325576198, index ID 1, partition ID 72057625823870976, alloc unit ID 72057625827803136 (type In-row data). Page (1:540) was not seen in the scan although its parent (1:546) and previous (1:399) refer to it. Check any previous errors.

Tendo os Object ID em mão fica fácil determinar onde os problemas estão, basta rodar a query abaixo;


SELECT * FROM sys.objects
WHERE object_ID in ('325576198')  -- Utilizo o IN aqui, pois podemos ter vários objetos com problemas

Agora que temos os objetos / tabelas com problemas, vamos dar o  Fix neste problema.

- Deixe o DB em Single_User
- Rode o Comando DBCC CHECKDB(nome_db, repair_allow_data_loss)
- Volte o DB para Multi_User

Isso irá resolver o seu problema de Fetch Logical Pages e também erros de consistência do DB.


Abraços.

Pesquisar este blog