Kbase 15644: Prorest and error 1147 - Possible resolutions
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  5/14/2002 |
|
PROREST and error 1147 - Possible resolutions
The purpose of this kbase is to assist customers that are receiving
error: CRC check error reading backup block <block-num> (1147) when
trying to restore a backup.
What does this error mean?
The error indicates that the restore utility encountered a tape block
(the size of which is determined by the -bf parameter on the PROBKUP
command) whose CRC value did not match the CRC value that was
calculated during the restore. Progress PROBKUP checks every database
block it reads into the buffer and calculates a CRC value for the
buffer (size = -bf). The CRC value is stored on the backup media at
the beginning of each tape block. During the PROREST, those values
are re-calculated and compared to the value that resides in the tape
block. Any mismatch of these values is reported by the 1147 error.
This does indicate that the backup contains corruption and Progress
cannot guarantee integrity.
How do I recover?
1> Find an earlier backup that can be restored without any errors.
This is the only option that will guarantee that the restored
database is free of any new corruption.
2> Continue with the restore of the backups and make note of each
blocknum that occurs in an error. These are the blocks that are
unrecoverable. You will lose ALL data that once resided in these
blocks, and database integrity cannot be guaranteed.
- Once restore completed, then either dump and load or run dbrpr.
Note: dbrpr is a non-documented, non-supported option to proutil.
This option is recommended typically as a last resort and is not
recommended as an alternative to going to backups, except when
absolutely necessary.
- To run dbrpr, you would do the following: proutil dbname -C dbrpr
Once in dbrpr main menu, select option 1 to enter the Scan Menu.
On the Scan menu, select options 1, 3, 4, 5, 7, and 8 then go.
This will search for bad blocks and bad records, as well as rebuild
the RM and Free Chain. If errors are received, this utility will
zero out the offending block, record or fragment. (This means data
loss). For every bad record, you will lose 1 record, a bad fragment
is 1/2 of a record (either head or tail of a record), and a bad
block will result in the loss of 32 records. Upon completion of
dbrpr, you need to do a full index rebuild.
How do I avoid this in the future?
Further recommendations would be to incorporate the use of the -red
(redundancy) flag to PROBKUP as well as -vp (partial verify) or -vf
(full verify) to the PROREST utilities. A -red 1 would make exactly
two copies of each block in the database. Although this does not
guarantee that the database can be restored successfully. The best
way to guarantee that the database can be restored successsfully is to
run PROREST with a -vp. This does not require any database downtime,
like -vf, and it does a CRC check of each backup block to determine
its validity. It also required no additional disk resources; it is
performed in memory only.
Set the tape drive to be a fixed block size prior to running "probkup" and "prorest" commands (using "tape") has been seen as the solution when using some tape drives.
Such errors 1147 and their solution when using HP DDS Tape drive on SCO OpenServer 5 are described in details within the Knowledge Base entry #16319.
Modified 14-May-02
There is nothing to suggest at this time that the (1147) error is
caused by a Progress bug. The error is more likely caused by a faulty
tape controller or corrupted UNIX buffer. If this error becomes
readily duplicatable, one way to narrow down the cause is to use
PROBKUP to the disk drive and PROREST that copy. If this works, it
will indicate that PROBKUP does work and that there is no data
corruption in the database. The -red flag was added as a feature to
handle exactly these cases when the tape controller experienced
problems.
Additional references:
Version 8 - System Administration Guide
Version 8 - System Administration Guide
Version 9 - Database Administration Guide and Reference
Progress Software Technical Support Note # 15644