Thursday, October 29, 2009

Tips to resolve “IAM page P_ID1 is pointed...” Error message

IAM (Index Allocation Map) pages in SQL Server are primarily used to map the Extents in the database file. Every IAM page contains a header that signifies the beginning extent of the range of Extents mapped by a particular IAM. Corruption or damage in IAM header primarily results in an error message making all the data stored in the database inaccessible. One of the major causes for the IAM header corruption is damage of SQL Server database due to logical or physical scenarios. For comprehensive access of all the records stored in your database in header corruption situations, the best way is to restore the data from an updated database backup. However, if you have not maintained any database backup or backup itself is corrupt, then you will need to use advanced SQL Repair software.

Consider a practical scenario, where you manually updated the sysindex table in your SQL Server 2000 database. However, after the table is updated and you attempt to mount your database, you receive the below error message:

“IAM page P_ID1 is pointed to by the next pointer of IAM page P_ID2 object ID O_ID index ID I_ID but was not detected in the scan.”

Records stored in your database become inaccessible after the above error message appears. Additionally, the above error message pops up every time you attempt to mount your database.


The root cause for occurrence of the above error message is IAM page (metadata entry) is unseen or is pointing to the next page in an IAM chain.


To resolve the above error message and access the database, you will need to use take below actions:

For corruption in IAM page due to hardware failure, run the hardware diagnostics and change the hardware components, if required. For logical corruption, run DBCC CHECKDB command (without repair clause). This will help you to identify the extent database corruption. Once the extent of corruption is identified, run DBCC CHECKDB command with appropriate repair clause.

But if in case, the DBCC CHECKDB with repair clause falls short to repair your database, then you will need to use third party SQL Recovery applications. These Repair SQL Database tools perform quick and risk free recovery of almost all SQL Server database components.

No comments:

Post a Comment