X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fmanpages%2Fdbcheck.8;h=441b11df20334fb4cbe211d38cf97d513ba4951e;hb=6d9214b9ad5e6941db460fcc3294d39672a3746b;hp=9c31937e383df11a006788f0c31dc8633ba0f128;hpb=a18896757d81b61a990755940b0f4ce600911192;p=bacula%2Fbacula diff --git a/bacula/manpages/dbcheck.8 b/bacula/manpages/dbcheck.8 index 9c31937e38..441b11df20 100644 --- a/bacula/manpages/dbcheck.8 +++ b/bacula/manpages/dbcheck.8 @@ -6,7 +6,7 @@ .\" Please adjust this date whenever revising the manpage. .\" .SH NAME - bcopy \- Bacula's DB Check + dbcheck \- Bacula's Catalog Database Check/Clean program .SH SYNOPSIS .B bcopy .RI [ options ] @@ -14,41 +14,170 @@ .I bacula-database .I user .I password +.RI [ dbhost ] +.RI [ dbport ] .br .SH DESCRIPTION This manual page documents briefly the -.B bcopy +.B dbcheck command. .PP -.\" TeX users may be more comfortable with the \fB\fP and -.\" \fI\fP escape sequences to invode bold face and italics, -.\" respectively. -.SH OPTIONS -A summary of options is included below. -.TP -.B \-? -Show version and usage of program. -.TP -.BI \-b\ bootstrap -Specify a bootstrap file. -.TP -.BI \-c\ config -Specify configuration file. -.TP -.BI \-d\ nn -Set debug level to \fInn\fP. -.TP -.BI \-i\ input -Specify input Volume names (separated by '|') -.TP -.BI \-o\ output -Specify output Volume names (separated by '|') -.TP -.BI \-w\ directory -Specify working directory (default \fI/tmp\fP). -.TP -.B \-v -Set verbose mode. +dbcheck will not repair your database if it is broken. Please see your +vendor's instructions for fixing broken database. + +dbcheck is a simple program that will search for logical +inconsistencies in the Bacula tables in your database, and optionally fix them. +It is a database maintenance routine, in the sense that it can +detect and remove unused rows, but it is not a database repair +routine. To repair a database, see the tools furnished by the +database vendor. Normally dbcheck should never need to be run, +but if Bacula has crashed or you have a lot of Clients, Pools, or +Jobs that you have removed, it could be useful. + +It is called: + +Usage: dbcheck [-c config] [-C catalog name] [-d debug_level] [] + -b batch mode + -C catalog name in the director conf file + -c director conf filename + -dnn set debug level to nn + -f fix inconsistencies + -v verbose + -? print this message + +If the -c option is given with the Director's conf file, there is no +need to enter any of the command line arguments, in particular the working +directory as dbcheck will read them from the file. + +If the -f option is specified, dbcheck will repair (fix) the +inconsistencies it finds. Otherwise, it will report only. + +If the -b option is specified, dbcheck will run in batch mode, and +it will proceed to examine and fix (if -f is set) all programmed inconsistency +checks. If the -b option is not specified, dbcheck will enter +interactive mode and prompt with the following: + +Hello, this is the database check/correct program. +Please select the function you want to perform. + 1) Toggle modify database flag + 2) Toggle verbose flag + 3) Repair bad Filename records + 4) Repair bad Path records + 5) Eliminate duplicate Filename records + 6) Eliminate duplicate Path records + 7) Eliminate orphaned Jobmedia records + 8) Eliminate orphaned File records + 9) Eliminate orphaned Path records + 10) Eliminate orphaned Filename records + 11) Eliminate orphaned FileSet records + 12) Eliminate orphaned Client records + 13) Eliminate orphaned Job records + 14) Eliminate all Admin records + 15) Eliminate all Restore records + 16) All (3-15) + 17) Quit +Select function number: + +By entering 1 or 2, you can toggle the modify database flag (-f option) and +the verbose flag (-v). It can be helpful and reassuring to turn off the modify +database flag, then select one or more of the consistency checks (items 3 +through 9) to see what will be done, then toggle the modify flag on and re-run +the check. + +The inconsistencies examined are the following: + +.BR + Duplicate filename records. This can happen if you accidentally run two + copies of Bacula at the same time, and they are both adding filenames + simultaneously. It is a rare occurrence, but will create an inconsistent + database. If this is the case, you will receive error messages during Jobs + warning of duplicate database records. If you are not getting these error + messages, there is no reason to run this check. + +.BR +Repair bad Filename records. This checks and corrects filenames that + have a trailing slash. They should not. + +.BR +Repair bad Path records. This checks and corrects path names that do + not have a trailing slash. They should. + +.BR +Duplicate path records. This can happen if you accidentally run two + copies of Bacula at the same time, and they are both adding filenames + simultaneously. It is a rare occurrence, but will create an inconsistent + database. See the item above for why this occurs and how you know it is + happening. + +.BR +Orphaned JobMedia records. This happens when a Job record is deleted + (perhaps by a user issued SQL statement), but the corresponding JobMedia + record (one for each Volume used in the Job) was not deleted. Normally, this + should not happen, and even if it does, these records generally do not take + much space in your database. However, by running this check, you can + eliminate any such orphans. + +.BR +Orphaned File records. This happens when a Job record is deleted + (perhaps by a user issued SQL statement), but the corresponding File record + (one for each Volume used in the Job) was not deleted. Note, searching for + these records can be {\bf very} time consuming (i.e. it may take hours) for a + large database. Normally this should not happen as Bacula takes care to + prevent it. Just the same, this check can remove any orphaned File records. + It is recommended that you run this once a year since orphaned File records + can take a large amount of space in your database. You might + want to ensure that you have indexes on JobId, FilenameId, and + PathId for the File table in your catalog before running this + command. + +.BR +Orphaned Path records. This condition happens any time a directory is + deleted from your system and all associated Job records have been purged. + During standard purging (or pruning) of Job records, Bacula does not check + for orphaned Path records. As a consequence, over a period of time, old + unused Path records will tend to accumulate and use space in your database. + This check will eliminate them. It is recommended that you run this + check at least once a year. + +.BR +Orphaned Filename records. This condition happens any time a file is + deleted from your system and all associated Job records have been purged. + This can happen quite frequently as there are quite a large number of files + that are created and then deleted. In addition, if you do a system update or + delete an entire directory, there can be a very large number of Filename + records that remain in the catalog but are no longer used. + + During standard purging (or pruning) of Job records, Bacula does not check + for orphaned Filename records. As a consequence, over a period of time, old + unused Filename records will accumulate and use space in your database. This + check will eliminate them. It is strongly recommended that you run this check + at least once a year, and for large database (more than 200 Megabytes), it is + probably better to run this once every 6 months. + +.BR +Orphaned Client records. These records can remain in the database long + after you have removed a client. + +.BR +Orphaned Job records. If no client is defined for a job or you do not + run a job for a long time, you can accumulate old job records. This option + allow you to remove jobs that are not attached to any client (and thus + useless). + +.BR +All Admin records. This command will remove all Admin records, + regardless of their age. + +.BR +All Restore records. This command will remove all Restore records, + regardless of their age. + +By the way, I personally run dbcheck only where I have messed up +my database due to a bug in developing Bacula code, so normally +you should never need to run dbcheck inspite of the +recommendations given above, which are given so that users don't +waste their time running dbcheck too often. + .SH SEE ALSO .BR bls (1), .BR bextract (1).