The Question is:
We have a corrupted file (We don4t konw how) and it can be repaired using
analyze/disk/repair (It just says that some bad blocks there may be in that
file). Is there another tool to repair this?. The output of analyze/rms is the
Check RMS File Integrity 19-JAN-2004 10:10:01.95 Page 2
Current Extent Start: 1003465, Blocks: 250008, Used: 61356, Next: 106482
Default Extend Quantity: 63744
Total Allocation: 250008
KEY DESCRIPTOR #0 (VBN 1, offset %X'0000')
Next Key Descriptor VBN: 2, Offset: %X'0000'
Index Area: 1, Level 1 Index Area: 1, Data Area: 0
Root Level: 3
Index Bucket Size: 12, Data Bucket Size: 12
Root VBN: 1003381
(0) KEY$V_DUPKEYS 0
(3) KEY$V_IDX_COMPR 0
(4) KEY$V_INITIDX 0
(6) KEY$V_KEY_COMPR 1
(7) KEY$V_REC_COMPR 1
Key Segments: 2
Key Size: 19
Minimum Record Size: 36
Index Fill Quantity: 6144, Data Fill Quantity: 6144
Segment Positions: 12 26
Segment Sizes: 9 10
Data Type: string
First Data Bucket VBN: 4
*** Attempt to read block with invalid VBN 796360.
Unrecoverable error encountered in structure of file.
The Answer is :
All disks are subject to these errors, and as stated over in topic
(6926), you must maintain disk BACKUPs, or utilize disk shadowing
(mirroring), or other data archival procedures to recover from cases
of block-level disk failures, or from catastrophic disk failures.
You will typically want to replace the disk, and restore the BACKUP
-- disk block errors were traditionally survivable, but bad blocks
now do tend to be harbingers of impending disk failures.
For information on the bad block handling available within OpenVMS,
please see topic (6926) -- you can attempt to rewrite the entire
disk to trigger bad block revectoring, but this may or may not
resolve the underlying problem. If this is not an isolated disk
block failure, rewriting the entire volume will not likely be the
appropriate approach. Replace the disk.
In all likelyhood, the RMS file with the reported bad block error is
an innocent victim of the underlying bad block.
For desperate cases (eg: BACKUP, what BACKUP?), you may be able to
restore the data from the unaffected portions of the current file.
This effort can be very time consuming, the outcome is unpredictable,
and the effort involved can prove expensive.
If you choose to attempt local restoration, create a small application
which reads the file seqeuntially, writing out each record read into
a new file. Once the error is encountered, attempt reading by higher
and higher key values until records are retrieved. Write the record
retrieved, and resume the sequential read and write processing.
You might be able to locate potential key values for the intermediate
processing from an older copy of the file, or from other parallel data
stored on this or on another disk.
You might also be able to use Record File Address (RFA) processing,
using RFA operations within the damaged range to try to recover the
You might also be able to use knowledge of the existing data records,
for instance, to simply copy the records from the older (archived)
version of file if it is known that the records affected by the disk
corruption have not changed.
There is an RMS_TUNING presentation available in the RMS_TOOLS area
of the OpenVMS Freeware, and you can find an overview of an RMS
Indexed file and its organization, and some ideas on patching the
file back into operation.
You will want to make a BACKUP/PHYSICAL of the disk before attempting
recovery, of course.
You can also choose to utilize HP Services to assist you in an attempt
to recover the contents of this or other corrupted files -- if such
recovery is possible, of course.