Kbase 252: How to correct corrupt indexes and the causes; idxbuild
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  5/10/1998 |
|
How to correct corrupt indexes and the causes; idxbuild
900531-hjb02
INTRODUCTION: Date Last Modified: 6/26/90
=============
This Product Services Technical Support Knowledgebase entry explains
how to repair your database if it contains a corrupt index. PROGRESS
error numbers 210, 559, 438, 23 indicate this type of corruption.
PROGRESS ERROR NUMBER: PROGRESS ERROR TEXT:
====================== ====================
210 SYSTEM ERROR: attempt to read block <number>
which does not exist
559 SYSTEM ERROR: ixdel failed: index <index
number>, recid <recid number>
438 SYSTEM ERROR: bfconn failed from bfnxt
23 SYSTEM ERROR: bfdiscon: rmrep failed
POSSIBLE CAUSE OF ERROR:
========================
This type of error indicates disk or other hardware failure.
-Check your system log and PROGRESS log for indications of abnormal
terminations and/or system failure.
-Run disk diagnostics to be sure you do not have bad spots or sectors
on your disk.
-Look for physical I/O errors represented as PROGRESS error 290 in
the PROGRESS log file. I/O errors indicate the operating system
error that has occurred. For example, an I/O error 5 and I/O error
9 on UNIX indicate physical I/O errors. If you have I/O errors,
check your operating system error reference for information on the
error number displayed.
Once you determine what caused the error, correct the problem
immediately, or additional data or index corruption may occur when
writing to the database again.
DOES ERROR INDICATE CORRUPTION: IF SO, WHAT TYPE:
=============================== =================
Yes Index
CORRECTIVE MEASURES:
===================
If you receive PROGRESS error 559 you can determine exactly which
index is corrupt by typing in and running the following program. When
prompted for the _idx-num, enter the index number listed in the error
message. The program returns the file and index names after the prompt.
PROMPT-FOR _idx-num.
FOR EACH _index WHERE _idx-num = INPUT _idx-num:
IF AVAILABLE _index THEN
DO:
FOR EACH _file of _index:
DISPLAY _file-name _index-name.
END.
END.
ELSE
MESSAGE "Index Does Not Exist".
END.
If the error message does not indicate the index number, enter and
run the following procedure:
FOR EACH <filename>:
DISPLAY <filename.fieldname>.
END.
The <filename> is the file you were accessing when the error occurred.
If the index is corrupt, you receive the same error message when you
run this program. If you do not receive an error message, you may
have used the wrong index. Put the PROGRESS USE-INDEX clause on the
FOR EACH statement to test each index in the file. If still no error
occurs, look at the procedure that was running when you first received
the error for names of other files that it opens. Try each of these
file names in the procedure (above) using all indexes. If no error
occurs, you can assume that you do not have any corrupt indexes.
If you receive an error, you located the corrupt index. To fix it,
run the PROGRESS Utilities option (proutil) that allows you to rebuild
ALL or SOME indexes. Run this for just the corrupt index, otherwise
you rebuild indexes unnecessarily. To run the utility, type the
following at the system level:
UNIX: proutil <dbname> -C idxbuild
DOS: same as unix
VMS: progress/utilities=idxbuild <dbname>
BTOS: Utility Name -C idxbuild <dbname>
The utility prompts you to rebuild ALL or SOME indexes.
- Choose SOME.
- Supply the file and index name of the corrupt index.
- Enter exclamation mark "!" to signal the last index name.
When the index rebuild completes, you can assume that the bad index
has been cleared. To verify this, you can re-run the program that you
use to determine which index was corrupt. It should now run with no
indication of index corruption.
ONLINE PROCEDURES OR UTILITIES:
===============================
PROGRESS Utilities (proutil) idxbuild option.
REFERENCES TO WRITTEN DOCUMENTATION:
====================================
System Administration Guide - Chapter on Startup and Shutdown (proutil
options)
Progress Software Technical Support Note # 252