In SQL Server databases is stored in either clustered or non-clustered heaps. In a non-clustered heap, a row always points to another forwarding row to reference data. However, sometimes this behavior is not followed, which is often due to corruption in the MDF (Master Database File) files. Corruption in the MDF files can be due to virus infections, power outages, hardware problems, etc. In such cases, you need to perform MDF recovery using appropriate methods. However, if you are not able to fix the problem then you should use a third-party SQL recovery software to perform MDF file recovery.
Consider a scenario wherein you face the following error message while working on an SQL Server 2008 database.
“Object ID O_ID, forwarding row page P_ID1, slot S_ID1 points to page P_ID2, slot S_ID2. Did not encounter forwarded row. Possible allocation error.”
The root cause of this erroneous situation is that a forwarding row in the heap is referencing to a non-existing forwarded row.
To resolve this issue, you need to recover MDF file. To do this, you should do the following, preferably in the given order:
Resolve hardware issues: You can resolve the hardware issues in the following ways:
By checking the hardware components and the error logs to ascertain that it is a hardware related issue.
By swapping the hardware components to isolate the issue.
By reformatting the hard disks and reinstalling the operating system.
Restore from backup: If it is confirmed that it is not a hardware-related issue, then you should check the database backup. If it is updated and clean, then you should restore the database with its backup.
Run DBCC CHECKDB: If the backup is not updated, then you should run the DBCC CHECKDB command with the suggested repair clause. This command would be able to delete the forwarding row and rebuild the non-clustered indexes.
If the problem is not fixed even after performing the aforementioned methods, then you should use a third-party SQL Server recovery software to recover SQL database. Such SQL recovery tools are read-only in nature and do not overwrite the existing database.
Consider a scenario wherein you face the following error message while working on an SQL Server 2008 database.
“Object ID O_ID, forwarding row page P_ID1, slot S_ID1 points to page P_ID2, slot S_ID2. Did not encounter forwarded row. Possible allocation error.”
The root cause of this erroneous situation is that a forwarding row in the heap is referencing to a non-existing forwarded row.
To resolve this issue, you need to recover MDF file. To do this, you should do the following, preferably in the given order:
Resolve hardware issues: You can resolve the hardware issues in the following ways:
By checking the hardware components and the error logs to ascertain that it is a hardware related issue.
By swapping the hardware components to isolate the issue.
By reformatting the hard disks and reinstalling the operating system.
Restore from backup: If it is confirmed that it is not a hardware-related issue, then you should check the database backup. If it is updated and clean, then you should restore the database with its backup.
Run DBCC CHECKDB: If the backup is not updated, then you should run the DBCC CHECKDB command with the suggested repair clause. This command would be able to delete the forwarding row and rebuild the non-clustered indexes.
If the problem is not fixed even after performing the aforementioned methods, then you should use a third-party SQL Server recovery software to recover SQL database. Such SQL recovery tools are read-only in nature and do not overwrite the existing database.
repair mdf can repair mdf files after various issues such as power failures, viruses. It works with big .mdf on all Windows OS. The application can view restored .mdf files from any version of SQL Server.
ReplyDeleteDue to database corruption, if you are facing SQL error 8993 then don’t worry! Use SQL recovery tool which helps you to resolve this error & smoothly SQL database. For more information visit: http://www.sqlrecoverysoftware.net/blog/sql-error-8994.html
ReplyDelete