August 4, 2011 at 12:41 am
Hi Experts,
Got below consistency error when run CHECKDB. I am not able to find the object 2560 .Please help me resolving this error.
Msg 8909, Level 16, State 1, Line 1
Table error: Object ID 2560, index ID 2048, page ID (3:3465696). The PageId in the page header = (0:65732608).
CHECKDB found 0 allocation errors and 1 consistency errors in table '(Object ID 2560)' (object ID 2560).
Msg 8928, Level 16, State 1, Line 1
Object ID 988855631, index ID 22: Page (3:3465696) could not be processed. See other errors for details.
There are 20985048 rows in 765860 pages for object 'AH_MEMBER_ORDER'.
CHECKDB found 0 allocation errors and 1 consistency errors in table 'AH_MEMBER_ORDER' (object ID 988855631).
TIA
August 4, 2011 at 2:45 am
Please run the following and post the full and complete output.
DBCC CHECKDB (<Database Name>) WITH NO_INFOMSGS, ALL_ERRORMSGS
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
August 4, 2011 at 5:11 am
Hi Gail,
Thanks for the reply . Please find the results below.Strange part is am not able to find the object with id:2560
Msg 8909, Level 16, State 1, Line 1
Table error: Object ID 2560, index ID 2048, page ID (3:3465696). The PageId in the page header = (0:65732608).
CHECKDB found 0 allocation errors and 1 consistency errors in table '(Object ID 2560)' (object ID 2560).
Msg 8928, Level 16, State 1, Line 1
Object ID 988855631, index ID 22: Page (3:3465696) could not be processed. See other errors for details.
Msg 8976, Level 16, State 1, Line 1
Table error: Object ID 988855631, index ID 22. Page (3:3465696) was not seen in the scan although its parent (3:7076229) and previous (3:3465599) refer to it. Check any previous errors.
Msg 8978, Level 16, State 1, Line 1
Table error: Object ID 988855631, index ID 22. Page (3:3465697) is missing a reference from previous page (3:3465696). Possible chain linkage problem.
CHECKDB found 0 allocation errors and 3 consistency errors in table 'AH_MEMBER_ORDER' (object ID 988855631).
CHECKDB found 0 allocation errors and 4 consistency errors in database 'medical'.
repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB (medical ).
August 4, 2011 at 5:26 am
There's probably no such object. The page header of that particular page is damaged and could lead to an incorrect object_id. The object that page actually belongs to is 988855631 - AH_MEMBER_ORDER
Do you have a clean backup?
If not, you can repair, but that involves deallocating a page within the AH_MEMBER_ORDER table, losing any information that is on it.
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
August 4, 2011 at 11:17 pm
Thanks a lot Gail.
Is there anyway I can save the data?
What all i can do to prevent the data loss???
How can i found the lost records after doing the repair?
The DB is in use and if I run checkdb with allow data low that will cause data loss from corrupted pages right?
Then whats should i do to bring the DB to current stage .ie insert those lost records + insert those records which got inserted just before doing the restore.
August 5, 2011 at 3:08 am
Ratheesh.K.Nair (8/4/2011)
Thanks a lot Gail.Is there anyway I can save the data?
Take a tail-log backup, restore from a clean backup. Restore the log backups from after that full backup right up to the tail-log backup. Corruption fixed, no data loss.
Of course, that assumes full recovery and a clean backup with an unbroken log chain.
What all i can do to prevent the data loss???
How can i found the lost records after doing the repair?
If you run repair, nothing. The data will be discarded. Not saved somewhere for you to examine. Discarded.
The DB is in use and if I run checkdb with allow data low that will cause data loss from corrupted pages right?
Yup. It's just one page
Then whats should i do to bring the DB to current stage .ie insert those lost records + insert those records which got inserted just before doing the restore.
If you run repair and you don't have those rows somewhere else they are LOST. If that's not an option, see the restore comment earlier if you have the backups.
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
August 6, 2011 at 12:48 pm
Thanks a ton Gail..
So you mean to say i cannot find the lost records straight,only if i create a fresh DB and restore till tail log and then do a compare between the new db and the repaired one?
August 6, 2011 at 1:12 pm
Err, why would you want to do that? Waste of time.
If you have a clean backup and an unbroken chain of log backups from that clean backup up til now you can take a tail log backup, then restore over the corrupt database, restore log backups and finally restore the tail log backup and you will have lost nothing.
If you don't have a clean backup and an unbroken chain of log backups then you will have to repair and accept that a page of data will be completely lost.
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
August 6, 2011 at 1:25 pm
Actually, looking at this again, the repair may not lose anything. The damaged page is index 22, so should not lose data in a repair.
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
August 6, 2011 at 3:24 pm
Thanks Gail :w00t:
Viewing 10 posts - 1 through 9 (of 9 total)
You must be logged in to reply to this topic. Login to reply