Error 1133

Severity

22

Message text

Page %ld was expected to be an OAM page for  %ld and it is not.

Explanation

Every object allocation map (OAM) page has a unique number in the database. Error 1133 occurs when Adaptive Server attempts to retrieve an OAM page by specifying the page number, but fails because there is no OAM page in the current database with that page number.

Error 1133 can occur when checkalloc is run if what is expected to be the OAM page in the OAM page linkage is not an OAM page. In Adaptive Server Enterprise version 12.5, the linkage is accessed via the doampg or ioampg column for the object in sysindexes. (doampg is the sysindexes pointer to the data page’, OAM. ioampg is the sysindexes pointer to the index pages’ OAM.)

Starting with version 15.0, the linkage is accessed via the datoampage or indoampage column for the object in syspartitions. This error can also occur when, due to a problem with Adaptive Server, the OAM page number that is requested is greater than the maximum page number for the database. In these cases, error 1133 is a serious error and may result in reading the wrong OAM page into data cache and corrupting a buffer in the process.

Action

  1. 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 translate the page number displayed in the error message into an object ID and an index ID.

    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 corruption is on a user table’s index (object ID is 100 or greater, and the index ID is between 1 and 250), dropping and re-creating the index should clear the corruption. Use sp_helpindex to list all indexes on the table, then rebuild all the nonclustered indexes using either of these two methods:

    • If the index ID is between 1 and 250, drop and re-create each nonclustered index on the table.

    or

    • If a clustered index also exists on the table, drop and re-create it, which causes all nonclustered indexes to be automatically rebuilt. If your table is large, you may not have the space to do this (a rule of thumb is that 150 percent of your table size must be available).

  3. If the corruption is not on an index page, run dbcc tablealloc or dbcc checkalloc on the corrupted object. The output should report OAM allocation errors. Try to fix the reported allocation errors first by referring to the appropriate write-ups in this manual.

If the 1133 errors persist, call Sybase Technical Support for assistance.

Additional information

Before calling Technical Support, have the information available that is listed in “Reporting errors”, including the output from dbcc page for the corrupted page and the output from dbcc checkalloc for the database identified by dbcc page.

Versions in which this error is raised

All versions