.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "OVDB_INIT 8" .TH OVDB_INIT 8 "2023-03-07" "INN 2.7.2" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ovdb_init \- Prepare ovdb database for use .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBovdb_init\fR [\fB\-r\fR|\fB\-u\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" This command must be run before any other process can access the overview database. \fBovdb_init\fR is normally invoked automatically by \&\fBrc.news\fR when starting the news system. .PP \&\fBovdb_init\fR performs the following steps: .IP "1." 4 Creates the database environment, if necessary. .IP "2." 4 If the database is idle (and if the \fB\-u\fR 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. .IP "3." 4 If the \fB\-u\fR option is specified, it performs any necessary upgrades to the database. See the \*(L"\s-1UPGRADING\*(R"\s0 section below. .IP "4." 4 Starts the database housekeeping processes (\fBovdb_monitor\fR) if they are not already running. (Unless the \fB\-r\fR option is specified.) .IP "5." 4 Starts the ovdb readserver processes (\fBovdb_server\fR) if \fIreadserver\fR in \fIovdb.conf\fR is true, and if they are not already running. (Unless the \fB\-r\fR option is specified.) .PP Returns exit status of \f(CW0\fR if all steps were completed successfully. In the event of an error, messages are written to syslog and/or stderr. .PP If a recovery was attempted but failed, the database may be damaged beyond repair, requiring a rebuild with \fBmakehistory\fR. .PP This command can be run multiple times. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-r\fR" 4 .IX Item "-r" Perform recovery only. \fBovdb_monitor\fR is not started. .IP "\fB\-u\fR" 4 .IX Item "-u" Perform any needed upgrades. Recovery is not attempted. \&\fBovdb_monitor\fR is started if the upgrade succeeded. .Sp This option can be used even if no upgrades are needed. .SH "UPGRADING" .IX Header "UPGRADING" There are two situations in which the database will need to be upgraded: .IP "\(bu" 4 You upgrade the Berkeley\ \s-1DB\s0 library to a newer version, for example from 2.7.7 to 3.1.17. In this case, the Berkeley\ \s-1DB\s0 \f(CW\*(C`db\->upgrade()\*(C'\fR method is used. .IP "\(bu" 4 You upgrade ovdb to a newer major version; i.e., ovdb\-1.0 (shipped with \&\s-1INN\s0\ 2.3.0 up to \s-1INN\s0\ 2.3.5) to ovdb\-2.0 (since \s-1INN\s0\ 2.4.0). .PP 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. .PP Here's an example procedure to upgrade a database created with Berkeley\ \s-1DB\s0\ 2.7.7 to use Berkeley\ \s-1DB\s0\ 3.1.17: .IP "1." 4 Build and install the Berkeley\ \s-1DB\s0\ 3.1.17 version; .IP "2." 4 Run \fBconfigure\fR in the \s-1INN\s0 source tree and make sure it picks up the right Berkeley\ \s-1DB\s0 directory (e.g., \fI/usr/local/BerkeleyDB.3.1\fR); .IP "3." 4 Do a \f(CW\*(C`make\*(C'\fR; .IP "4." 4 Shut down \s-1INN\s0 (e.g., with \f(CW\*(C`rc.news stop\*(C'\fR) and be sure to kill all instances of \fBnnrpd\fR as well; .IP "5." 4 Do a \f(CW\*(C`make update\*(C'\fR to install the new binaries; .IP "6." 4 Run \f(CW\*(C`ovdb_init \-u\*(C'\fR as the news user; .IP "7." 4 Start \s-1INN\s0 with the \f(CW\*(C`rc.news\*(C'\fR command. .SH "HISTORY" .IX Header "HISTORY" Written by Heath Kehoe for InterNetNews. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBovdb\fR\|(5), \fBmakehistory\fR\|(8), \fBrc.news\fR\|(8).