Resolving "IAM page P_ID1 is pointed to by the previous pointer..." Error Message
Here is an instance to prove the above point. Consider a scenario, where you receive the below error message when you attempt to mount your database:
"IAM page P_ID1 is pointed to by the previous pointer of IAM page P_ID2 object ID O_ID index ID I_ID but was not detected in the scan."
This error message stops the mounting process of your database resulting in making the records inaccessible.
Cause:
The above unmountable error message primarily occurs when the metadata entry in the IAM chain goes missing. This usually occurs due to metadata structure corruption.
Resolution:
The resolution for the above error message can be found out by following the below measures:
For logical corruption situations, you will need to run DBCC CHECKDB command (with repair clause) to repair your database.
For physical damage cases, you will need to examine the SQL Server and Microsoft Windows system logs. These logs help you to find the exact cause of damage. To permanently rectify the problem, change the damaged component with a new one.
While all the logical corruption scenarios can be solved using the above repair statement, there are still some possibilities of the database being not repaired. In such situations, if you want to repair your database, you will need to use a powerful third-party SQL Repair tool. Such SQL Database Repair applications are developed by highly qualified data recovery engineers and employ high end scanning methods to repair logically corrupted database.