ovdb_init - Prepare ovdb database for use
ovdb_init [
-r|
-u]
This command must be run before any other process can access the overview
database.
ovdb_init is normally invoked automatically by
rc.news
when starting the news system.
ovdb_init performs the following steps:
- 1.
- Creates the database environment, if necessary.
- 2.
- If the database is idle (and if the -u option is not
specified), it performs a normal recovery. The recovery will remove stale
locks, recreate the memory pool cache, and repair any damage caused by a
system crash or improper shutdown.
- 3.
- If the -u option is specified, it performs any
necessary upgrades to the database. See the "UPGRADING" section
below.
- 4.
- Starts the database housekeeping processes
(ovdb_monitor) if they are not already running. (Unless the
-r option is specified.)
- 5.
- Starts the ovdb readserver processes (ovdb_server)
if readserver in ovdb.conf is true, and if they are not
already running. (Unless the -r option is specified.)
Returns exit status of 0 if all steps were completed successfully. In the event
of an error, messages are written to syslog and/or stderr.
If a recovery was attempted but failed, the database may be damaged beyond
repair, requiring a rebuild with
makehistory.
This command can be run multiple times.
- -r
- Perform recovery only. ovdb_monitor is not
started.
- -u
- Perform any needed upgrades. Recovery is not attempted.
ovdb_monitor is started if the upgrade succeeded.
This option can be used even if no upgrades are needed.
There are two situations in which the database will need to be upgraded:
- •
- You upgrade the Berkeley DB library to a newer
version, for example from 2.7.7 to 3.1.17. In this case, the
Berkeley DB "db->upgrade()" method is used.
- •
- You upgrade ovdb to a newer major version; i.e., ovdb-1.0
(shipped with INN 2.3.0 up to INN 2.3.5) to ovdb-2.0 (since
INN 2.4.0).
In both of these cases, the database is upgraded in-place; and the upgrade
cannot be undone. Do not interrupt the upgrade process once it has started,
because there is a risk of irreparable corruption. The upgrade may take
several minutes to complete. If an upgrade does get interrupted, try running
the upgrade again.
Here's an example procedure to upgrade a database created with
Berkeley DB 2.7.7 to use Berkeley DB 3.1.17:
- 1.
- Build and install the Berkeley DB 3.1.17
version;
- 2.
- Run configure in the INN source tree and make sure
it picks up the right Berkeley DB directory (e.g.,
/usr/local/BerkeleyDB.3.1);
- 3.
- Do a "make";
- 4.
- Shut down INN (e.g., with "rc.news stop") and be
sure to kill all instances of nnrpd as well;
- 5.
- Do a "make update" to install the new
binaries;
- 6.
- Run "ovdb_init -u" as the news user;
- 7.
- Start INN with the "rc.news" command.
Written by Heath Kehoe <
[email protected]> for InterNetNews.
ovdb(5),
makehistory(8),
rc.news(8).