Error 2503

Severity

16

Message text

Versions earlier than 15.0:

Table Corrupt: Page linkage is not consistent; check the following pages: (current page#=%ld; page# pointing to this page=%ld; previous page# indicated in this page=%ld)

Version 15.0 and later:

Table Corrupt: Page linkage is not consistent. Check the following pages: current page number = %d, partition ID = %d; page number of the page pointing to this page = %d; previous page number indicated in this page = %d

NoteThis error can be caused by a hardware problem.

Explanation

This error occurs when Adaptive Server detects an inconsistency in the page linkage of one of the page chains associated with a table. There is one doubly-linked page chain for the table’s data as well as one for each index level. For example, a page’s “next” pointer points to a page whose “previous” pointer points to a different page.

Action

This is a serious error that must be corrected immediately.

  1. Note the first page number in the error message. Use the procedure “Finding an object name from a page number” in the chapter “Other Useful Tasks” in the most recent version of the Troubleshooting and Disaster Recovery guide to determine the object associated with the “current page”.

    WARNING! The procedure referenced in step 1 uses the dbcc page command. Use the dbcc page command only as directed. This command is undocumented, nonstandard, and is provided “as is” without any warranty. Sybase Technical Support does not support this command for general use. Although the command syntax is provided for reference, use this command only in the specific diagnostic situations described, and with the specific syntax shown. Failure to do so could cause performance problems and database corruption.

  2. Depending on the type of object, select the appropriate procedure:

    • If the object with the error is not a system table (a system table’s object ID is less than 100), go to step 3.

    • If the object with the error is a system table and the index ID is not 0 (zero), see “Fixing a system table corrupted index” in the chapter “Other Useful Tasks” in the most recent version of the guide Troubleshooting and Disaster Recovery for instructions on how to repair the system table index.

    • If the index ID is 0 (zero), contact Sybase Technical Support to help you repair the corruption, but it may be necessary to restore from clean backups.

  3. If the object is not a system table, perform one of the procedures below, depending upon the type of object involved in the error.


Current page belongs to a nonclustered index

If the “current page” belongs to a nonclustered index (index ID is between 2 and 250), run dbcc checktable to verify that the data page linkage is good. If checktable runs cleanly, drop and re-create the index.


Current page belongs to a clustered index

If the “current page” belongs to a clustered index, drop all the indexes on that table, re-create the clustered index first, then re-create the remaining nonclustered indexes.


Current page does not belong to an index

If the “current page” does not belong to an index at all (index ID is 0 (zero) or 255) and there were no errors other than error 2503, perform these steps:

  1. Use bcp or select into to retrieve the data from the affected table. See “Rescuing data from a corrupted table” in the chapter “Other Useful Tasks” in the most recent version of the guide Troubleshooting and Disaster Recovery for instructions.

  2. If errors still exist, restore from clean backups or call Sybase Technical Support.

  3. Examine your operating system error log and the Adaptive Server error log to determine if hardware errors may have caused the corruption.

Additional information

For information on locating device fragments, refer to “Determining the physical device on which a database resides” in the chapter “Other Useful Tasks” in the most recent version of the guide Troubleshooting and Disaster Recovery.

Versions in which this error is raised

All versions