ovdb_init - Man Page
Prepare ovdb database for use
Synopsis
Description
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:
- Creates the database environment, if necessary.
- 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.
- If the -u option is specified, it performs any necessary upgrades to the database. See the “Upgrading” section below.
- Starts the database housekeeping processes (ovdb_monitor) if they are not already running. (Unless the -r option is specified.)
- 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.
Options
- -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.
Upgrading
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:
- Build and install the Berkeley DB 3.1.17 version;
- 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);
- Do a
make
; - Shut down INN (e.g., with
rc.news stop
) and be sure to kill all instances of nnrpd as well; - Do a
make update
to install the new binaries; - Run
ovdb_init -u
as the news user; - Start INN with the
rc.news
command.
History
Written by Heath Kehoe <hakehoe@avalon.net> for InterNetNews.
See Also
Referenced By
makehistory(8), ovdb(5), ovdb_monitor(8), ovdb_server(8).