Sql-server – Repair with data loss did not fix index corruption. What now

corruptionsql serversql server 2014

A few months ago we migrated our SQL Server 2014 database to a virtual environment.

Soon afterwards, corruption started showing up in indexes, causing all sorts of trouble.

I've made repairs using DBCC CHECKDB (repair_allow_data_loss) a few times, and while it improves the situation, it never fully gets rid of the corruption within certain indexes.

Some CHECKDB results:

Msg 8977, Level 16, State 1, Line 1
Table error: Object ID 452196661, index ID 1, partition ID 72063073671905280, alloc unit ID 72063073860190208 (type In-row data). Parent node for page (3:266287) was not encountered.
Msg 8980, Level 16, State 1, Line 1
Table error: Object ID 452196661, index ID 1, partition ID 72063073671905280, alloc unit ID 72063073860190208 (type In-row data). Index node page (1:68133), slot 60 refers to child page (3:299616) and previous child (3:264884), but they were not encountered.
Msg 8936, Level 16, State 1, Line 1
Table error: Object ID 452196661, index ID 1, partition ID 72063073671905280, alloc unit ID 72063073860190208 (type In-row data). B-tree chain linkage mismatch. (1:62351)->next = (3:429015), but (3:429015)->Prev = (1:285490).
Msg 8978, Level 16, State 1, Line 1
Table error: Object ID 452196661, index ID 1, partition ID 72063073671905280, alloc unit ID 72063073860190208 (type In-row data). Page (3:468549) is missing a reference from previous page (3:261242). Possible chain linkage problem.

Does anyone have any ideas on how I can get my database back to a perfectly clean state? There is no clean backup from which to restore since this has been going on for a while.

I am going to attempt a new VM to see if that will fix the problem. I haven't been able to identify any I/O subsystem flaws.

Best Answer