Error 2628

Severity

21

Message text

In database '%.*s', page %ld is linked forward to page %ld, but that page is linked backward to page %ld. Please report this internal error to Sybase Technical Support.

NoteThis error may be caused by a hardware problem.

Explanation

When updating a table or index, Adaptive Server may determine that there is not enough room on a page to insert additional data. A new page is then allocated for the object. Existing rows may be moved to this page and new rows inserted. Error 2628 is raised when Adaptive Server fetches a page by following the forward pointers, examines the existing page linkage, and finds that the backward pointer does not point to the previous page as expected. Since the linkage problem could be worsened by continuing the page split, the operation is aborted.

When dbcc detects this problem, it raises error 2503 (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)).

Action

Error 2628 indicates a corruption of page pointers for the object. To resolve the error:

  1. Identify the object using one of the pages identified in the message by performing the procedure in “Finding an object name from a page number” in the most recent Troubleshooting and Disaster Recovery guide.

    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. If the page is a data page (the index ID = 0 (zero)), drop and recreate the clustered index on the table.

  3. If the page is an index page (the index ID is greater than 0 (zero)), drop and recreate the index.

  4. Run dbcc pglinkage on the table to verify that the problem is corrected. Be sure to check both next page and previous page pointers.

Versions in which this error is raised

All versions