21
Versions earlier than 15.0:
An attempt was made to fetch logical page '%ld' in database '%.*s' from cache '%.*s'. Page belongs to object with id '%ld', not to object '%.*s'.
Version 15.0 and later:
An attempt was made to fetch logical page '%ld' from cache '%.*s'. Page belongs to %S_PTNINFO and not to %S_PTNINFO.
This serious error occurs when Adaptive Server discovers page allocation corruption. Adaptive Server tries to access a particular object but discovers a page in the page chain for that object whose object ID is different than that of the object being accessed. There is probably either a damaged page chain or an invalid entry in the system tables for that object.
Usually this error is detected after the corruption has been written to the database on disk (hard 605), but it can also occur entirely in cache without the damage ever being written to disk (transient 605), and is not associated with data corruption. See the next section for more information about the different kinds of 605 errors and their causes.
When an error is transient, it means it is reported even though no error condition exists or it exists only in memory. Generally, a transient error is cleared by a reboot of Adaptive Server, whereas a hard error does not go away with an Adaptive Server reboot.
For accurate diagnosis of object ID mismatch problems, the 605 error is raised only when the objects in question are user objects. Other related types of errors result in one of the errors 691 through 697. For details on these errors, refer to the write-ups in this chapter.
Assuming the error is not a transient 605, corruption usually exists in the second object specified in the 605 error text. If the dbcc checkdb and dbcc checkalloc commands do not report additional errors, the first object mentioned is not corrupt. Because the 605 error can mask the existence of other errors, you must run the dbcc checks to determine the extent of the damage.
Instead of listing two object names, this error might contain other information:
The error displays a number greater than zero. An attempt was made to refer to an object ID that does not exist in the system table sysobjects.
If the error states that a page belongs to object “ALLOCATION,” some of the allocation structures used by the database may be corrupted.
The following table list hardware causes for 605 errors.
Hardware cause |
Additional information |
Transient or hard |
---|---|---|
Overlapping partitions on disk (UNIX only). See the Configuration Guide for UNIX for more information about partitions. |
Often this occurs when the server is installed on a partition that overlaps other partitions. |
Hard |
Problem with device driver |
-- |
Hard |
Problem with controller |
-- |
Hard |
Bad disk |
“Data retry” messages in /var/adm/messages (UNIX). |
Hard |
The following table lists software causes for 605 errors.
Software causes |
Additional information |
Transient or hard |
---|---|---|
Loading a master database on a master device that does not have rows in sysusages for dbid 1,2,3 identical to the device it was dumped from. |
-- |
Hard |
Loading a master database that has syscharsets in a location that is different from the default. |
Caused by changing Adaptive Server sort order after operating it for some time. |
Hard |
Operating system notifies Adaptive Server that an I/O operation is complete when it is not. Any time buffer information about a page is different from the disk information about the page (and the disk has the correct information). |
Adaptive Server connection often dies. Running dbcc checkdb and dbcc checkalloc should produce no more 605 errors. Corruption is not on disk. First, checkpoint the other databases. Then, perform a shutdown...with nowait and restart Adaptive Server. |
Transient |
To resolve the error:
Run the dbcc checktable command on the second object specified in the error message.
To help determine the full extent of the corruption, run the dbcc checkdb and dbcc checkalloc commands as soon as possible.
Check the Adaptive Server error log for other errors that often accompany a 605 error. If the 605 error is not transient, the problem is severe and you probably need to restore from known clean backups.
Either of the following situations may also apply to your Adaptive Server:
If this error occurs after rebuilding the master device or reconfiguring the configuration block to the defaults, then the sort order on the new device may not match the sort order in the dump. If the sort orders do not match, call Sybase Technical Support for further assistance.
To check if the error occurred as the result of hardware failure, examine your operating system error log and correct hardware problems.
For information on locating device fragments, use the procedures in Determining the physical device on which a database resides in the chapter “Other Useful Tasks” in the most recent version of Troubleshooting and Disaster Recovery.
Have the information listed in “Reporting errors” on hand before contacting Technical Support, including the output of dbcc checkdb, dbcc checkalloc, and dbcc page for the corrupted page.
Starting with version 11.0.3, many page mismatch problems no longer raise 605 errors, but are reported with the following error numbers:
Error reference |
Description |
---|---|
Page 0 is read incorrectly, or an attempt is made to read a negative page number. |
|
Attempt to read an uninitialized page. |
|
I/O request was made prematurely, causing an object ID mismatch. |
|
The device or operating system may be suspect. |
|
The page has been overwritten, for example page 10 on disk may actually hold page 20. Hard error. |
|
Objects are crossed in tempdb. Similar to a 605 except that objects are in tempdb. |
|
Results from memory corruption. |
Refer to the write-ups for these errors in this manual for more information.
All versions