cancel
Showing results for 
Search instead for 
Did you mean: 

Error: 644 and 605

former_member207908
Participant
0 Kudos

Hi Team,

Glad if you can advice me on the following

Errors received

Error: 605, Severity: 21, State: 1

An attempt was made to fetch logical page '13424' from cache 'default data cache'. Page belongs to database 'saptools' (5), object 'DBH_STG_TABLES' (1161052141), index 'DBH_STG_TABLES' (0), partition 'DBH_STG_TABLES_1161052141' (1161052141) and not to database 'saptools' (5), object 'DBH_SNAP_TABLES' (1097051913), index 'DBH_SNAP_TABLES' (0), partition 'DBH_SNAP_TABLES_1097051913' (1097051913).

Error: 644, Severity: 21, State: 5

Index row entry for data row id (13424, 128) is missing from index page 1643 of index id 2 of table 'DBH_SNAP_TABLES' in database 'saptools'. Xactid is (140654,45). Drop and re-create the index

Error 1: First of all I could not understand "exactly" what caused the error to occur

I'm planning to run dbcc tablealloc for this error to find out more details

Error 2: I'm planning to run reorg rebuild on the table 'DBH_SNAP_TABLES', but I want to know what caused the index row to be missing.

Am I heading in a right way? Your insights are much appreciated in this regard

Attachment: ASE errorlog

Rajesh

Accepted Solutions (1)

Accepted Solutions (1)

former_member187136
Contributor
0 Kudos

Rajesh,

Text Book Answer: 

1: Error: 605

Error 605 Severity: 21

Error Message Text

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'.

This error may be caused by a hardware problem.

Explanation

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 a Adaptive Server reboot.

Action

1. Run the dbcc checktable command on the second object specified in the error message.

2. To help determine the full extent of the corruption, run the dbcc checkdb and dbcc checkalloc commands as soon as feasible.

3. Check the Adaptive Server error log for other errors which often accompany a 605 error. If the 605 error is not transient, the

problem is severe and you will probably need to restore from known clean backups.

4. 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.

former_member187136
Contributor
0 Kudos

Error 644 Severity 21

Index row entry for data row id (%ld, %d) is missing from

index page %ld of index id %d of table '%S_OBJID' in

database '%S_DBID'. Xactid is (% ld,%d). Drop and re-create

the index.

NOTE:

This error may be caused by a hardware problem.

Explanation

This error occurs when the nonclustered index indicated by "index id" is corrupt. This corruption is detected when a process tries to delete a nonexistent row.

Action

To recover from this error, use the following steps to drop and re-create the index.

1. Record the value of "index page" and "index id" specified in the 644 error text. Then follow the instructions in "How to Find an

Object Name from a Page Number" on page 2-32 to identify which table and index correspond to the index page number. Also note the object ID.

2. If the object with the error is a system table (its object ID is less than 100), refer to "How to Fix a Corrupted Index on System

Tables" on page 2-13 for instructions on how to repair the system table index. Then go to step�4.

3. If the object ID is greater than 100, drop and re-create the index,using the table name and the index name obtained in the step�2.

This clears the corruption in most cases.

4. To verify that all problems have been resolved on this table, run dbcc checktable and dbcc tablealloc on the affected table.

former_member187136
Contributor
0 Kudos

Rajesh,

Try understanding the explanation of the errors and actions that are to be taken,

I will explain after you respond in our normal nomenclature

Cheers

Kiran K Adharapuram

former_member207908
Participant
0 Kudos

Dear Kiran,

Thank you very much for your valuable insights.

I want to know what exactly "corruption" technically is and what is the root cause for the same.

Attached is the output of dbcc checktable for error 605 and reorg rebuild for 644 for your ref.

Thanks

Rajesh

former_member187136
Contributor
0 Kudos

Rajesh,

It is clear both outputs looks good.

Did you reboot the machine before running the reorg and check table?

Corruption basically mean the pointer or the address location which the memory/cache is pointing is no longer valid due to the reason of bad page reference or the flag entries mismatch and other factors.

Regards

Kiran K Adharapuram

former_member207908
Participant
0 Kudos

Hi Kiran,

Thanks for your explanation. Looking for more insights. Sorry still not convinced

Regards,

Rajesh

former_member187136
Contributor
0 Kudos

Rajesh,

Then I should give book answer 😛

Any ways I will try to explain in easy words.

Regards

kiran K Adharapuram

former_member187136
Contributor
0 Kudos

Rajesh,

After a page has been allocated to a table or an index, that page is linked with other pages used for the same object.Each page contains a header that includes the number of the page that precedes it (“prev”) and of the page that follows it (“next”). When a new page is allocated, the header information on the surrounding pages changes to point to that page.

dbcc checktable and dbcc checkdb check page linkage. dbcc checkalloc, tablealloc, and indexalloc compare page linkage to information on the allocation page.

Regards

Kiran K Adharapuram

former_member187136
Contributor
0 Kudos

Rajesh,

Please find the DBCC performance Sheet:

Regards

Kiran K Adharapuram

former_member207908
Participant
0 Kudos

Hi Kiran,

I'm convinced and thank you very much for your valuable time and insights..

Regards,

Rajesh

Answers (0)