Meu banco de dados está no modo de recuperação simples. Uma página foi corrompida e só tenho backups criados usando backup simples.
Quando eu executo isso:
DBCC PAGE ('myDB', 1, 952663, 3)
Eu recebo:
DBCC PAGE error: Invalid page type - dump style 3 not possible.
SQL Server detected a logical consistency-based I/O error: incorrect pageid (expected 1:952663; actual 2668:-1594740640). It occurred during a read of page (1:952663) in database ID 5 at offset
Msg 8909, Level 16, State 1, Line 1
Table error: Object ID 0, index ID -1, partition ID 0, alloc unit ID 332114207834112 (type Unknown), page ID (1:952663) contains an incorrect page ID in its page header. The PageId in the page header = (2668:-1594740640).
CHECKDB found 0 allocation errors and 1 consistency errors not associated with any single object.
Msg 8928, Level 16, State 1, Line 1
Object ID 1131971209, index ID 1, partition ID 72057595034861568, alloc unit ID 72057595204796416 (type In-row data): Page (1:952663) could not be processed. See other errors for details.
Msg 8976, Level 16, State 1, Line 1
Table error: Object ID 1131971209, index ID 1, partition ID 72057595034861568, alloc unit ID 72057595204796416 (type In-row data). Page (1:952663) was not seen in the scan although its parent (1:1616550) and previous (1:2296409) refer to it. Check any previous errors.
Msg 8978, Level 16, State 1, Line 1
Table error: Object ID 1131971209, index ID 1, partition ID 72057595034861568, alloc unit ID 72057595204796416 (type In-row data). Page (1:1743775) is missing a reference from previous page (1:952663). Possible chain linkage problem.
Msg 2511, Level 16, State 1, Line 1
Table error: Object ID 1131971209, index ID 25, partition ID 72057595034796032, alloc unit ID 72057595204730880 (type In-row data). Keys out of order on page (1:3474431), slots 237 and 238.
CHECKDB found 0 allocation errors and 4 consistency errors in table 'TransactionEntry' (object ID 1131971209).
CHECKDB found 0 allocation errors and 5 consistency errors in database 'DsPointOfSale'.
repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB (DsPointOfSale).
Ainda posso reparar este banco de dados?
Portanto, é o índice clusterizado afetado. Se fosse eu, provavelmente tentaria DBCC PAGE ('myDB', 1, 952663, 2); no backup restaurado e no banco de dados quebrado primeiro para ver e comparar no Winmerge para ver se eu poderia inferir algo disso (por exemplo, se ambos forem muito semelhantes, mas apenas alguma corrupção no cabeçalho da página, você poderá usar o DBCC com estilo 3 no restaurado DB para ter uma boa ideia de linhas específicas a serem restauradas após REPAIR_ALLOW_DATA_LOSS. Caso contrário, você só precisará fazer uma comparação de dados entre as duas tabelas e tentar descobrir as linhas que precisam ser restauradas dessa maneira. – Martin Smith