# autoconf/Make.common.in -*- Makefile -*-
# release date (man), LSM date, version number/name, current maintainer
-DATE="07 September 2005"
+DATE="05 October 2005"
LSMDATE=@LSMDATE@
-VERSION=1.37.38
+VERSION=1.37.41
VERNAME=bacula-$(VERSION)#
MAINT=Kern Sibbald#
MAINTEMAIL=<kern@sibbald.com>#
-1.37.38 (07 September 2005)
+1.37.41 (05 October 2005)
<div class="menuHead"> Support </div>
<div class="menuItem">
<ul class="menuitem">
- <li class="menuItem"> <a href="<? echo $spath ?>/?page=maillists"> Email Lists </a> </li>
<li class="menuItem"> <a href="<? echo $spath ?>/?page=bugs"> Bug Reports </a> </li>
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=donations"> Donations </a> </li>
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=maillists"> Email Lists </a> </li>
<li class="menuItem"> <a href="<? echo $spath ?>/?page=support"> Where & How </a> </li>
<li class="menuItem"> <a href="<? echo $spath ?>/?page=professional"> Professional </a></li>
</ul>
--- /dev/null
+
+<? require_once("inc/header.php"); ?>
+
+<form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr" method="post">
+<input type="hidden" name="cmd" value="_xclick">
+<input type="hidden" name="business" value="donations@bacula.org">
+<input type="hidden" name="currency_code" value="USD">
+<input type="image" src="http://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
+</form>
+
+
+<table>
+<tr>
+ <td class="contentTopic">
+ Donating to the Bacula Project
+ </td>
+</tr>
+<tr>
+ <td class="content">
+ Since beginning work on the Bacula project in January 2000
+ until now (October 2005), I have spent approximately $8000
+ per year for computers, tape drives, communications expenses,
+ electricity, software licenses, and other expenses. I am
+ pleased to have been able to afford these expenditures and
+ have no desire to have them reimbursed.
+ Bacula is now a fairly mature product, and to ensure its long
+ term servival, it should start to pay its own way.
+ <p>
+ As a consequence, it is now possible for you
+ to donate to the Bacula project.
+ All funds collected will be used to help further the Bacula project
+ by covering out of pocket expenses incurred by the project (no salaries).
+ <p>
+ The project actually has the following needs (approximate costs): <br>
+ Three Microsoft Visual C++ licenses: $3000<br>
+ Autochanger for FreeBSD testing: $3200<br>
+ Autochanger for Solaris testing: $3200<br>
+
+
+ <p>
+ Donations may not be US tax deductible as this is a individual
+ Bacula project account with PayPal.
+ <p>
+ If you are a government or for-profit corporation and cannot
+ make "donations", please consider paying a binary license
+ fee for any Bacula built binaries that you download. A reasonable
+ license fee would be:
+ <p>
+ <table>
+ <tr> <td>Number of Machines</td> <td>Fee</td></tr>
+ <tr> <td>1-10</td> <td>$10 per machine</td></tr>
+ <tr> <td>11-20</td> <td>$100 + $5.00 per machine over 10</td></tr>
+ <tr> <td>21-50</td> <td>$150 + $2.00 per machine over 20</td></tr>
+ <tr> <td>51-...</td> <td>$250 + $1.00 per machine over 50</td></tr>
+ </table>
+ <p>Example: 55 machine = $150 + 5 X $2.00 = $160<br>
+ <p>Upgrades are 10% of the original license fee.
+ <p>
+ If you wish your payment to be anonymous, please put the word
+ ANONYMOUS in the "Payment For:" field on the PayPal
+ payment form.
+
+ <p>
+ To make a donation, please click on the donate button at the
+ top of the screen, and your transaction will be secured and
+ confirmed directly by PayPal.
+
+<p>
+Donations received in 1995: $0<br>
+
+<p>
+</tr>
+
+</table>
+<? require_once("inc/footer.php"); ?>
<a href="http://www.alixen.fr">http://www.alixen.fr</a>
</td>
</tr>
+
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ Arden Group Inc
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:rberryNOSPAM@ardengrp.com">Roger Berry</a><br>
+ 5026 NE Clackamas<br>
+ Portland, OR 97213 USA<br>
+ +1(971)223-3987<br>
+ <br>
+ <a href="http://www.ardengrp.com">http://www.ardengrp.com</a><br>
+ </td>
+ </tr>
+
<tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
<tr> <td colspan="3"><hr></td>
<tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-1.37.38 (07 September 2005)
+1.37.41 (05 October 2005)
using (see above).
\label{CompactingPostgres}
+\subsection*{Performance Issues}
+\index[general]{Database Performance Issues}
+\index[general]{Performance!Database}
+\addcontentsline{toc}{subsection}{Database Performance Issues}
+
+There are a considerable number of ways each of the databases can be
+tuned to improve the performance. Going from an untuned database to one
+that is properly tuned can make a difference of a factor of 100 or more
+in the time to insert or search for records.
+
+For each of the databases, you may get significant improvements by adding
+additional indexes. The comments in the Bacula make_xxx_tables give some
+indications as to what indexes may be appropriate.
+
+For MySQL, what seems to be very important is to use the examine the
+my.cnf file. You may obtain significant performances by switching to
+the my-large.cnf or my-huge.cnf files that come with the MySQL source
+code.
+
+For SQLite3, one significant factor in improving the performance is
+to ensure that there is a "PRAGMA synchronous = NORMAL;" statement.
+This reduces the number of times that the database flushes the in memory
+cache to disk. There are other settings for this PRAGMA that can
+give even further performance improvements at the risk of a database
+corruption if your system crashes.
+
+For PostgreSQL, you might want to consider turning fsync off. Of course
+doing so can cause corrupted databases in the even of a machine crash.
+There are many different ways that you can tune PostgreSQL, the
+following document discusses a few of them:
+\elink{
+http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html}
+{http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html}.
+
+
+
\subsection*{Compacting Your PostgreSQL Database}
\index[general]{Database!Compacting Your PostgreSQL }
\index[general]{Compacting Your PostgreSQL Database }
\label{Time}
\item [time]
\index[dir]{time}
-A time or duration specified in seconds. The time is stored internally as a
-64 bit integer value, but it is specified in two parts: a number part and a
-modifier part. The number can be an integer or a floating point number. If it
-is entered in floating point notation, it will be rounded to the nearest
-integer. The modifier is mandatory and follows the number part, either with
-or without intervening spaces. The following modifiers are permitted:
+A time or duration specified in seconds. The time is stored internally as
+a 64 bit integer value, but it is specified in two parts: a number part and
+a modifier part. The number can be an integer or a floating point number.
+If it is entered in floating point notation, it will be rounded to the
+nearest integer. The modifier is mandatory and follows the number part,
+either with or without intervening spaces. The following modifiers are
+permitted:
\begin{description}
years (3600*24*365 seconds)
\end{description}
-Any abbreviation of these modifiers is also permitted (i.e. {\bf seconds} may
-be specified as {\bf sec} or {\bf s}. A specification of {\bf m} will be
-taken as months.
+Any abbreviation of these modifiers is also permitted (i.e. {\bf seconds}
+may be specified as {\bf sec} or {\bf s}. A specification of {\bf m} will
+be taken as months.
-The specification of a time may have as many number/modifier parts as you wish.
-For example:
+The specification of a time may have as many number/modifier parts as you
+wish. For example:
\footnotesize
\begin{verbatim}
\item [Incremental]
\index[dir]{Incremental }
- is all files that have changed since the last successful backup of the
-specified FileSet. If the Director cannot find a previous Full backup then
-the job will be upgraded into a Full backup. When the Director looks for a
-"suitable" backup record in the catalog database, it looks for a previous
-Job with:
+ is all files specified in the FileSet that have changed since the last successful backup of the
+ the same Job using the same FileSet and Client.
+ If the Director cannot find a previous valid Full backup then
+ the job will be upgraded into a Full backup. When the Director looks for a
+ valid backup record in the catalog database, it looks for a previous
+ Job with:
\begin{itemize}
\item The same Job name.
\item [Differential]
\index[dir]{Differential }
- is all files that have changed since the last successful Full backup of the
-specified FileSet. If the Director cannot find a previous Full backup or a
-suitable Full backup, then the Differential job will be upgraded into a Full
-backup. When the Director looks for a "suitable" Full backup record in the
-catalog database, it looks for a previous Job with:
+ is all files specified in the FileSet that have changed since the last
+ successful Full backup of the same Job. If the Director cannot find a
+ valid previous Full backup for the same Job, FileSet, and Client,
+ backup, then the Differential job will be upgraded into a Full backup.
+ When the Director looks for a valid Full backup record in the catalog
+ database, it looks for a previous Job with:
\begin{itemize}
\item The same Job name.
makes the necessary adjustments to the time between the server and the client
so that the times Bacula uses are synchronized.
-When Bacula does a Differential backup, all modified files that are still on
-the system are backed up. However, any file that has been deleted since the
-last Full backup remains in the Bacula catalog, which means that if between
-a Full save and the time you do a restore, some files are deleted, those
-deleted files will also be restored. The deleted files will no longer appear
-in the catalog after doing another Full save. However, to remove deleted
-files from the catalog during a Differential backup is quite a time consuming
-process and not currently implemented in Bacula.
+When Bacula does a Differential backup, all modified files that are still
+on the system are backed up. However, any file that has been deleted since
+the last Full backup remains in the Bacula catalog, which means that if
+between a Full save and the time you do a restore, some files are deleted,
+those deleted files will also be restored. The deleted files will no
+longer appear in the catalog after doing another Full save. However, to
+remove deleted files from the catalog during a Differential backup is quite
+a time consuming process and not currently implemented in Bacula. It is,
+however, a planned future feature.
+
As noted above, if you move a directory rather than copy it, the
files in it do not have their modification time (st\_mtime) or
Incremental or Differential backup which depend solely on these
time stamps. If you move a directory, and wish it to be
properly backed up, it is generally preferable to copy it, then
-delete the original.
+delete the original. Alternatively, you can move the directory, then
+use the {\bf touch} program to update the timestamps.
Every once and a while, someone asks why we need Differential
backups as long as Incremental backups pickup all changed files.
If you then start a second priority 2 job, the waiting priority 1 job will
prevent the new priority 2 job from running concurrently with the running
priority 2 job. That is: as long as there is a higher priority job waiting
-to
+ to
run, no new lower priority jobs will start even if the Maximum Concurrent
Jobs settings would normally allow them to run. This ensures that higher
priority jobs will be run as soon as possible.
\end{itemize}
-If you have several jobs of different priority, it is best not to start them
-at exactly the same time, because Bacula must examine them one at a time. If
-by chance Bacula treats a lower priority first, then it will run before your
-high priority jobs. To avoid this, start any higher priority a few seconds
-before lower ones. This insures that Bacula will examine the jobs in the
-correct order, and that your priority scheme will be respected.
+If you have several jobs of different priority, it may not best to start
+them at exactly the same time, because Bacula must examine them one at a
+time. If by Bacula starts a lower priority job first, then it will run
+before your high priority jobs. If you experience this problem, you may
+avoid it by starting any higher priority jobs a few seconds before lower
+priority ones. This insures that Bacula will examine the jobs in the
+correct order, and that your priority scheme will be respected.
\label{WritePartAfterJob}
\item [Write Part After Job = \lt{}yes|no\gt{}]
too can cause Bacula disconnects since Bacula can at times use very high
access rates. To avoid this, you should implement default accept
rules for the Bacula ports involved before the rate limiting rules.
+
+Finally, if you have a Windows machine, it will most likely by default
+disallow connections to the Bacula Windows File daemon. See the
+Windows chapter of this manual for additional details.
continuing with the configuration of Bacula. PostgreSQL is very similar to
MySQL, though it tends to be slightly more SQL92 compliant and has many more
advanced features such as transactions, stored procedures, and the such. It
-requires a certain knowledge to install and maintain. There are some important
-performance problems with PostgreSQL in Bacula versions prior to 1.35.5.
+requires a certain knowledge to install and maintain.
If you wish to use SQLite as the Bacula catalog, please see
\ilink{Installing and Configuring SQLite}{_ChapterStart33} chapter of
There are a number of options and important considerations given below
that you can skip for the moment if you have not had any problems building
Bacula with a simplified configuration as shown above.
+
+If the ./configure process is unable to find specific libraries (e.g.
+libintl, you should ensure that the appropriate package is installed on
+your system. Alternatively, if the package is installed in a non-standard
+location (as far as Bacula is concerned), then there is generally an
+option listed below (or listed with "./configure {-}{-}help" that will
+permit you to specify the directory that should be searched. In other
+cases, there are options that will permit you to disable to feature
+(e.g. {-}{-}disable-nls).
If you want to dive right into it, we recommend you skip to the next chapter,
and run the example program. It will teach you a lot about Bacula and as an
\item [ {-}{-}sysconfdir=\lt{}config-path\gt{}]
\index[general]{{-}{-}sysconfdir }
- Defines where the Bacula configuration files should be placed during a {\bf
- make install} command.
+ Defines where the Bacula configuration files should be placed during a
+ {\bf make install} command.
+
+\item [ {-}{-}mandir=\lt{}path\gt{}]
+ \index[general]{{-}{-}mandir}
+ By default, Bacula will install a simple Unix man page in
+ /usr/share/man. If you wish the man page to be installed in
+ a different location, use this option to specify the path.
+ Note, the main HTML and PDF Bacula documents are in a separate
+ tar file that is not part of the source distribution.
+
+\item [ {-}{-}datadir=\lt{}path\gt{}]
+ \index[general]{{-}{-}datadir}
+ If you translate Bacula or parts of Bacula into a different language
+ you may specify the location of the po files using the {\bf
+ {-}{-}datadir} option. You must manually install any po files as
+ Bacula does not (yet) automatically do so.
+
\item [ {-}{-}enable-smartalloc ]
\index[general]{{-}{-}enable-smartalloc }
- This enables the inclusion of the Smartalloc orphaned buffer detection code.
- This option is highly recommended. Because we never build without this
- option, you may experience problems if it is not enabled. In this case,
- simply re-enable the option. We strongly recommend keeping this option
- enabled as it helps detect memory leaks. This configuration parameter is used
- while building Bacula
+ This enables the inclusion of the Smartalloc orphaned buffer detection
+ code. This option is highly recommended. Because we never build
+ without this option, you may experience problems if it is not enabled.
+ In this case, simply re-enable the option. We strongly recommend
+ keeping this option enabled as it helps detect memory leaks. This
+ configuration parameter is used while building Bacula
\item [ {-}{-}enable-gnome ]
\index[general]{{-}{-}enable-gnome }
- If you have GNOME installed on your computer and you want to use the GNOME
- GUI Console interface to Bacula, you must specify this option. Doing so will
- build everything in the {\bf src/gnome-console} directory.
+ If you have GNOME installed on your computer and you want to use the
+ GNOME GUI Console interface to Bacula, you must specify this option.
+ Doing so will build everything in the {\bf src/gnome-console} directory.
\item [ {-}{-}enable-wx-console ]
\index[general]{{-}{-}enable-wx-console }
- If you have wxWidgets installed on your computer and you want to use the
- wxWidgets GUI Console interface to Bacula, you must specify this option.
- Doing so will build everything in the {\bf src/wx-console} directory. This
- could also be useful to users who want a GUI Console and don't want to
- install Gnome, as wxWidgets can work with GTK+, Motif or even X11 libraries.
+ If you have wxWidgets installed on your computer and you want to use the
+ wxWidgets GUI Console interface to Bacula, you must specify this option.
+ Doing so will build everything in the {\bf src/wx-console} directory.
+ This could also be useful to users who want a GUI Console and don't want
+ to install Gnome, as wxWidgets can work with GTK+, Motif or even X11
+ libraries.
\item [ {-}{-}enable-tray-monitor ]
\index[general]{{-}{-}enable-tray-monitor }
- If you have GTK installed on your computer, you run a graphical environment
- or a window manager compatible with the FreeDesktop system tray standard
- (like KDE and GNOME) and you want to use a GUI to monitor Bacula daemons, you
- must specify this option. Doing so will build everything in the {\bf
- src/tray-monitor} directory.
+ If you have GTK installed on your computer, you run a graphical
+ environment or a window manager compatible with the FreeDesktop system
+ tray standard (like KDE and GNOME) and you want to use a GUI to monitor
+ Bacula daemons, you must specify this option. Doing so will build
+ everything in the {\bf src/tray-monitor} directory.
\item [ {-}{-}enable-static-tools]
\index[general]{{-}{-}enable-static-tools }
- This option causes the linker to link the Storage daemon utility tools ({\bf
- bls}, {\bf bextract}, and {\bf bscan}) statically. This permits using them
- without having the shared libraries loaded. If you have problems linking in
- the {\bf src/stored} directory, make sure you have not enabled this option,
- or explicitly disable static linking by adding {\bf \verb:--:disable-static-tools}.
+ This option causes the linker to link the Storage daemon utility tools
+ ({\bf bls}, {\bf bextract}, and {\bf bscan}) statically. This permits
+ using them without having the shared libraries loaded. If you have
+ problems linking in the {\bf src/stored} directory, make sure you have
+ not enabled this option, or explicitly disable static linking by adding
+ {\bf \verb:--:disable-static-tools}.
\item [ {-}{-}enable-static-fd]
\index[general]{{-}{-}enable-static-fd }
- This option causes the make process to build a {\bf static-bacula-fd} in
- addition to the standard File daemon. This static version will include
- statically linked libraries and is required for the Bare Metal recovery. This
- option is largely superseded by using {\bf make static-bacula-fd} from with
- in the {\bf src/filed} directory. Also, the {\bf \verb:--:enable-client-only} option
- described below is useful for just building a client so that all the other
- parts of the program are not compiled.
+ This option causes the make process to build a {\bf static-bacula-fd} in
+ addition to the standard File daemon. This static version will include
+ statically linked libraries and is required for the Bare Metal recovery.
+ This option is largely superseded by using {\bf make static-bacula-fd}
+ from with in the {\bf src/filed} directory. Also, the {\bf
+ \verb:--:enable-client-only} option described below is useful for just
+ building a client so that all the other parts of the program are not
+ compiled.
\item [ {-}{-}enable-static-sd]
\index[general]{{-}{-}enable-static-sd }
- This option causes the make process to build a {\bf static-bacula-sd} in
- addition to the standard Storage daemon. This static version will include
- statically linked libraries and could be useful during a Bare Metal recovery.
+ This option causes the make process to build a {\bf static-bacula-sd} in
+ addition to the standard Storage daemon. This static version will
+ include statically linked libraries and could be useful during a Bare
+ Metal recovery.
\item [ {-}{-}enable-static-dir]
write files greater than 2 GBytes in size. You may disable this feature and
revert to 32 bit file addresses by using {\bf \verb:--:disable-largefile}.
+\item [ {-}{-}disable-nls]
+ \index[general]{{-}{-}disable-nls}
+ By default, Bacula uses the GNU Native Language Support (NLS) libraries. On
+ some machines, these libraries may not be present or may not function
+ correctly (especially on non-Linux implementations). In such cases, you
+ may specify {\bf {-}{-}disable-nls} to disable use of those libraries.
+ In such a case, Bacula will revert to using English.
+
\item [ {-}{-}with-sqlite=\lt{}sqlite-path\gt{}]
\index[general]{{-}{-}with-sqlite }
This enables use of the SQLite version 2.8.x database. The {\bf sqlite-path} is not
\ilink{Python chapter}{_ChapterStart60} for the details of using
Python scripting.
+\item [ {-}{-}with-libintl-prefix=\lt{}DIR\gt{}]
+ \index[general]{{-}{-}with-libintl-prefix}
+ This option may be used to tell Bacula to search DIR/include and
+ DIR/lib for the libintl headers and libraries needed for Native
+ Language Support (NLS).
+
\item [ {-}{-}enable-conio]
\index[general]{{-}{-}enable-conio }
Tells Bacula to enable building the small, light weight readline replacement
directory.
Most of this code is copyrighted: Copyright \copyright 2000-2004 Kern Sibbald and
-John Walker. or Copyright \copyright 2000-2005 Kern Sibbald
+John Walker or Copyright \copyright 2000-2005 Kern Sibbald.
Portions may be copyrighted by other people (ATT, the Free Software
Foundation, ...). Generally these portions are released under a
\index[general]{Public Domain }
\addcontentsline{toc}{subsection}{Public Domain}
-Some of the Bacula code has been released to the public domain. E.g. md5.c,
-SQLite.
+Some of the Bacula code, or code that Bacula references, has been released
+to the public domain. E.g. md5.c, SQLite.
\subsection*{Trademark}
\index[general]{Trademark }
Bacula\raisebox{.6ex}{\textsuperscript{\textregistered}}is a registered
trademark of Kern Sibbald and John Walker.
-We have trademarked the Bacula name to ensure that any variant of Bacula will
-be exactly compatible with the program that we have released. The use of the
-name Bacula is restricted to software systems that agree exactly with the
-program presented here.
+We have trademarked the Bacula name to ensure that any program using the
+name Bacula will be exactly compatible with the program that we have
+released. The use of the name Bacula is restricted to software systems
+that agree exactly with the program presented here.
\subsection*{Disclaimer}
\index[general]{Disclaimer }
\begin{enumerate}
\item Start {\bf mysql}. You might want to use the {\bf startmysql} script
provided in the Bacula release.
-\item cd \lt{}install-directory\gt{}
+\item cd \lt{}install-directory\gt{}
This directory contains the Bacula catalog interface routines.
\item ./grant\_mysql\_privileges
-
This script creates unrestricted access rights for the user {\bf bacula}.
You may want to modify it to suit your situation. Please
note that none of the userids, including root, are password protected.
and to bacula. The program {\bf mysqladmin} can be used for this.
\item ./create\_mysql\_database
-
- This script creates the MySQL {\bf bacula} database. The databases you create
-as well as the access databases will be located in \lt{}install-dir\gt{}/var/
-in a subdirectory with the name of the database, where \lt{}install-dir\gt{}
-is the directory name that you specified on the {\bf \verb:--:prefix} option. This
-can be important to know if you want to make a special backup of the Bacula
-database or to check its size.
+ This script creates the MySQL {\bf bacula} database. The databases you
+ create as well as the access databases will be located in
+ \lt{}install-dir\gt{}/var/ in a subdirectory with the name of the
+ database, where \lt{}install-dir\gt{} is the directory name that you
+ specified on the {\bf \verb:--:prefix} option. This can be important to
+ know if you want to make a special backup of the Bacula database or to
+ check its size.
\item ./make\_mysql\_tables
-
This script creates the MySQL tables used by {\bf Bacula}.
\end{enumerate}
bacula-sd.conf} in the current directory, but you may specify a different
configuration file using the {\bf -c} option.
+
\subsection*{Specifying a Device Name For a Tape}
\index[general]{Tape!Specifying a Device Name For a }
\index[general]{Specifying a Device Name For a Tape }
work, it must find the identical name in the Device resource of the
configuration file. See below for specifying Volume names.
+Please note that if you have Bacula running and you ant to use
+one of these programs, you will either need to stop the Storage daemon, or
+{\bf unmount} any tape drive you want to use, otherwise the drive
+will {\bf busy} because Bacula is using it.
+
+
\subsection*{Specifying a Device Name For a File}
\index[general]{File!Specifying a Device Name For a }
\index[general]{Specifying a Device Name For a File }
\end{verbatim}
\normalsize
-The following are the methods (subroutines) provided within the
-directory by the {\bf job} object.
+When a job event is triggered, the appropriate event definition is
+called in the JobEvents class. This is the means by which your Python
+script or code gets control. Once it has control, it may read job
+attributes, or set them. See below for a list of read-only attributes,
+and those that are writable.
+
+In addition, the Bacula {\bf job} obbject in the Director has
+a number of methods (subroutines) that can be called. They
+are:
\begin{description}
\item [set\_events] The set\_events takes a single
argument, which is the instantation of the Job Events class
for the {\bf job} object.
\begin{description}
-\item [Level]
-\item [Type]
-\item [JobId]
-\item [Client]
-\item [NumVols]
-\item [Pool]
-\item [Storage]
-\item [Catalog]
-\item [MediaType]
-\item [JobName]
-\item [JobStatus]
+
+\item [Level] This attribute contains a string representing the Job
+ level, e.g. Full, Differential, Incremental, ...
+\item [Type] This attribute contains a string representing the Job
+ type, e.g. Backup, Restore, Verify, ...
+\item [JobId] This attribute contains an integer representing the
+ JobId.
+\item [Client] This attribute contains a string with the name of the
+ Client for this job.
+\item [NumVols] This attribute contains an integer with the number of
+ Volumes in the Pool being used by the Job.
+\item [Pool] This attribute contains a string with the name of the Pool
+ being used by the Job.
+\item [Storage] This attribute contains a string with the name of the
+ Storage resource being used by the Job.
+\item [Catalog] This attribute contains a string with the name of the
+ Catalog resource being used by the Job.
+\item [MediaType] This attribute contains a string with the name of the
+ Media Type associated with the Storage resource being used by the Job.
+\item [Job] This attribute contains a string containing the name of the
+ Job resource used by this job (not unique).
+\item [JobName] This attribute contains a string representing the full
+ unique Job name.
+\item [JobStatus] This attribute contains a single character string
+ representing the current Job status. The status may change
+ during execution of the job.
+\item [Priority] This attribute contains an integer with the priority
+ assigned to the job.
\item [CatalogRes] tuple consisting of (DBName, Address, User,
Password, Socket, Port, Database Vendor) taken from the Catalog resource
for the Job with the exception of Database Vendor, which is
one of the following: MySQL, PostgreSQL, SQLite, Internal,
depending on what database you configured.
+\item [VolumeName]
+ After a Volume has been purged, this attribute will contain the
+ name of that Volume. At other times, this value may have no meaning.
\end{description}
The following write-only attributes are available within the
noop = 1
def NewVolume(self, job):
+ # Called when Bacula wants a new Volume name. The Volume
+ # name returned, if any, must be stored in job.VolumeName
jobid = job.JobId
client = job.Client
numvol = job.NumVols
job.JobReport="Python before New Volume set for Job.\n"
job.VolumeName=volname
+ def VolumePurged(self, job):
+ # Called when a Volume is purged. The Volume name can be referenced
+ # with job.VolumeName
+ noop = 1
+
+
\end{verbatim}
\normalsize
\ilink{System Requirements}{SysReqs} then at the
\ilink{Compiling and Installing Bacula}{_ChapterStart17} chapter of
this manual.
-\label{PoolsVolsLabels}
-\subsection*{Understanding Pools, Volumes and Labels}
-\index[general]{Labels!Understanding Pools Volumes and }
-\index[general]{Understanding Pools, Volumes and Labels }
-\addcontentsline{toc}{subsection}{Understanding Pools, Volumes and Labels}
+\label{JobsandSchedules}
+\subsection*{Understanding Jobs and Schedules}
+\index[general]{Jobs!Understanding}
+\index[general]{Schedules!Understanding}
+\addcontentsline{toc}{subsection}{Understanding Jobs and Schedules}
+
+In order to make Bacula as flexible as possible, the directions given
+to Bacula are specified in several pieces. The main instruction is the
+job resource, which defines a job. A backup job generally consists of a
+FileSet, a Client, a Schedule for one or several types or times of backups,
+a Pool, as well as additional instructions. Another way of looking
+at it is the FileSet is what to backup; the Client is who to backup; the
+Schedule defines when, and the Pool defines where (i.e. what Volume).
+
+Typically one FileSet/Client combination will have one corresponding job.
+Most of the directives, such as FileSets, Pools, Schedules, can be mixed
+and matched among the jobs. So you might have two different Job
+definitions (resources) backing up different servers using the same
+Schedule, the same Fileset (backing up the same directories on 2 machines)
+and maybe even the same Pools. The Schedule will define what type of
+backup will run when (e.g Full on Monday, incremental the rest of the
+week), and when more than one job uses the same schedule, the job priority
+determines which actually runs first. If you have a lot of jobs, you might
+want to use JobDefs, where you can set defaults for the jobs, which can
+then be changed int the job resource, but this saves rewriting the
+identical parameters for each job. In addition to the FileSets you want to
+back up, you should also have a job that backs up your catalog.
+
+Finally, be aware that in addition to the backup jobs there are
+restore, verify, and admin jobs, which have different requirements.
+
+\ label{PoolsVolsLabels}
+\ subsection*{Understanding Pools, Volumes and Labels}
+\ index[general]{Labels!Understanding Pools Volumes and }
+\ index[general]{Understanding Pools, Volumes and Labels }
+\ addcontentsline{toc}{subsection}{Understanding Pools, Volumes and Labels}
If you have been using a program such as {\bf tar} to backup your system,
Pools, Volumes, and labeling may be a bit confusing at first. A Volume is a
versions are available and tested.
You may install and use SQLite version 3.x with Bacula by using:
-{\bf ./configure \verb:--:with-sqlite3}. However, our testing indicates
-that SQLite version 3.x is 4 to 10 times slower than version 2.8.16, and
-consquently, we do not recommend using it.
+{\bf ./configure \verb:--:with-sqlite3}. You should ensure that
+when the database is created that you have used
+\begin{verbatim}
+PRAGMA synchronous = NORMAL;
+\end{verbatim}
+otherwiset SQLite version 3.x is 4 to 10 times slower than version 2.8.16.
Installing and Configuring is quite easy.
-1.37.38 (07 September 2005)
+1.37.41 (05 October 2005)