- Berkeley DB Reference Guide:
- Access Methods
|
|
Database verification and salvage
The DB->verify function is the standard interface for verifying that a
file, and any databases it may contain, are uncorrupted. In addition,
the method may optionally be called with a file stream argument to which
all key/data pairs found in the database are output. There are two modes
for finding key/data pairs to be output:
- If the DB_SALVAGE flag is specified, the key/data pairs in the
database are output. When run in this mode, the database is assumed to
be largely uncorrupted. For example, while key/data pairs from pages that
are no longer linked into the database will be output, the key/data pairs
marked as deleted on those pages will not be output.
- If both the DB_SALVAGE and DB_AGGRESSIVE flags are
specified, all possible key/data pairs are output. When run in this mode,
the database is assumed to be seriously corrupted. For example, key/data
pairs that have been deleted will re-appear in the output. In addition,
because pages may have been subsequently re-used and modified during
normal database operations after the key/data pairs were deleted, it is
not uncommon for apparently corrupted key/data pairs to be output in this
mode, even when there is no corruption in the underlying database. The
output will almost always have to be edited by hand or other means before
the data is ready for re-load into another database. We recommend that
DB_SALVAGE be tried first, and DB_AGGRESSIVE only tried
if the output from that first attempt is obviously missing data items or
the data is sufficiently valuable that human review of the output is
preferable to any kind of data loss.
Copyright Sleepycat Software