Error 2529

Severity

16

Message text

Versions earlier than 15.0:

Table Corrupt: Attempted to get page %ld, object %ld; got page %ld, object %ld.

Version 15.0 and later:

Table Corrupt: Attempted to get page %d, partition ID %d; got page %d, partition ID %d

Notepartition ID” in version 15.0 and later is equivalent to object ID.

Explanation

This error occurs when dbcc checkdb, dbcc checktable, dbcc checkalloc, or dbcc tablealloc detects an inconsistency between the location of a page on disk and the page number stored in the page header. In the best case, only the value of the page number is wrong. In the worst case, the entire page is corrupt. This error may be caused by a hardware problem.

WARNING! This is a serious error that must be corrected immediately.

If the page number in the error is evenly divisible by 256, the error has occurred on an allocation page. All objects referred to by that allocation unit (that page and the 255 pages following it) may be affected (up to 32 objects). Otherwise, the error occurred on a system or user table.

WARNING! Attempts to drop an object with a 2529 error may result in error 821 (see “Error 821”), error 813 (see “Error 813”), and additional database corruption.

Action

  1. Note the object ID displayed in the error message.

  2. Run dbcc checkalloc and dbcc checkdb on the database affected to determine the full extent of the corruption.

  3. The 2529 error often results from hardware errors, or system administration problems, such as inadvertent use of a raw partition for two separate purposes. Check on and correct such problems before attempting to restore the database:

  4. If the 2529 error is raised on a system table (the object ID is less than 100), call Sybase Technical Support. If the object ID is 99, another option is to restore from backups.

  5. If the 2529 error is on a user table (the object ID is greater than or equal to 100), you may be able to select the data into another table and drop the original table. Refer to “Rescuing data from a corrupted table” in the chapter “Other Useful Tasks” in the most recent version of the Troubleshooting and Disaster Recovery for instructions.

  6. After you drop the original table, you may get an 821 error (see “Error 821”). In this case, shut down Adaptive Server and restart it. Try a select from the old corrupt table to make sure ithe error is gone, then run dbcc checkalloc and dbcc checkdb to confirm that there is no more corruption.

In some cases, a 2529 error is first reported as a 2503 error (see “Error 2503”), and becomes a 2529 error after Adaptive Server is restarted. Although the procedure described above may clear the 2529 error, it will not remove the main cause of your corruption.

Additional information

Before calling Technical Support, have the information listed in “Reporting errors” available, including the output of dbcc checkdb and dbcc checkalloc.

Versions in which this error is raised

All versions