ovdb_init - Prepare ovdb database for use
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 irrepairable 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 <hakehoe@avalon.net> for InterNetNews.
ovdb(5), makehistory(8), rc.news(8).