Kbase P3064: Errors 3191 and 450 with Progress version 8
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  16/10/2008 |
|
Status: Verified
SYMPTOM(s):
Accessing or deleting a record fails.
SYSTEM ERROR: Failed to extract field <field-num> from <file-name> record (table <table-num>) with recid <RECID>. (3191)
SYSTEM ERROR: Cannot read field from record, not enough fields. (450)
Record belongs to a database table, not a TEMP-TABLE.
CAUSE:
Data corruption in the database.
FIX:
WARNING: please investigate thoroughly your problem to make sure that you are not actually hitting a Progress bug before proceeding with what described in this Solution.
In case a Progress bug has been ruled out, and data corruption has been identified as the real cause of your problem, going back to a valid backup is always the recommended option.
Finally, be aware that by following these steps the corrupted records will be simply deleted from the database, as there is no way to restore them.
To delete a bad record use the unsupported tool "dbrpr".
Please have a valid backup of your database prior to starting "dbrpr". Please see Progress Solution P6313 for further details.
After:
proutil <db> -C truncate bi
run:
proutil <db> -C dbrpr
and choose the "Database Scan Menu" (option 1).
Select the option "Delete bad records" (option 5). Select G ("Go").
Unless you know the DBKey Range for which you want to delete bad records, answer "n" to the first question: "Scan DBKEY Range? (Yes/No)?".
Answer the second question "Scan Backward (Yes/No)?"; we advice "no" as a forward scan will be faster.
The time needed for this "database repair" operation will depend on the size of your database as well as the speed of your machine.
After the deletion(s), you need to rebuild the indexes affected by the deleted records. You have two options, using "idxbuild" with a command such as:
proutil <db> -C idxbuild all -TB 24 -TM 32 -B 512
or use "idxfix" with the command:
proutil <db> -C idxfix
Should you use "idxbuild", then be aware of the space needed for the sort file. Please see Progress Solution 13568 and Progress Solution P55740 for further details.
The option "idxfix" of the proutil command is fully documented within our 9.1 Database Administration Guide and Reference book as well as in the 8.3 System Administration Reference book. "idxfix" can be run online or off-line. To rebuild the indexes you need to choose option 3. You will need to rebuild all the indexes from the tables having bad records.