Friday, November 20, 2009

Resolving “IAM page P_ID1 is pointed to by the previous pointer...” Error Message

An Index Allocation Map (IAM) page in MS SQL Server database act as a storage component to save information related to table extents and indexes. A single IAM page contains of two records – IAM page header and bitmap – and has the capacity to track 4GB of space to store. A linked list of all the IAM pages – IAM chain – tracks the space assigned to every single entity. Corruption in IAM chain primarily results in unmountability of SQL database. An unmountable database means inaccessibility of all the records. To access your records after IAM chain corruption, restore the data from an updated database backup. But, in absence of an updated backup or backup falling short to restore the required data, you will need to use advanced MS SQL Recovery application to repair your database.

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.

No comments:

Post a Comment