Restart the entire server to confirm that the corruption was not in RAM or cache by re-running DBSCAN or performing a full offline PROBKUP without a backup volume. The advantage of a PROBKUP over DBTOOL is that all blocks will be read by the backup, whereas DBTOOL Option 5 only scans data blocks.
- $ proutil dbname -C dbscan
- $ probkup dbname NUL (WINDOWS) or probkup dbname /dev/null (UNIX)
1. If no corruption are reported, this verifies that the issue was caused by the underlying memory or cache on the system which will then require further investigation by the IT Administrators of the system before restarting the database.
2. If corruption are reported, this verifies that the block corruption was propagated to disk. It is advised that the disk subsystems are checked before proceeding with restore operations on this system.Option 1:
Restore the last known verified backup and roll-forward if AI is enabled.
If either of the remaining Options 2, 3 need to be employed, physical integrity will be restored but there will be data loss and neither option can guarantee logical integrity.Option 2:
Perform a ASCII dump and load. Tables that fail to dump will need to be dumped by skipping over corrupted records. Further steps are needed to retrieve the records that were skipped, if it is possible to find them in prior backup copies.
Eliminate corruption by reformatting bad blocks in the current database
Refer to the instruction provided in Article 000016827, Possible method to fix an overlapped record: Bad record size Records overlap