\begin{itemize}
\item
\label{DirDef}
- {\bf Bacula Director} service consists of the program that supervises all
-the
-backup, restore, verify and archive operations. The system administrator uses
-the Bacula Director to schedule backups and to recover files. For more
-details see the Director Services Daemon Design Document in the Bacula
-Developer's Guide. The Director runs as a daemon or a service (i.e. in the
-background).
+ {\bf Bacula Director} service consists of the program that supervises
+ all the backup, restore, verify and archive operations. The system
+ administrator uses the Bacula Director to schedule backups and to
+ recover files. For more details see the Director Services Daemon Design
+ Document in the Bacula Developer's Guide. The Director runs as a daemon
+ or a service (i.e. in the background).
\item
\label{UADef}
- {\bf Bacula Console} services is the program that allows the administrator
-or
-user to communicate with the {\bf Bacula Director} (see above). Currently,
-the Bacula Console is available in three versions. The first and simplest is
-to run the Console program in a shell window (i.e. TTY interface). Most
-system administrators will find this completely adequate. The second version
-is a GNOME GUI interface that is far from
-complete, but quite functional as it has most the capabilities of the shell
-Console. The third version is a wxWidgets GUI with an interactive file
-restore. It also has most of the capabilities of the shell console, allows
-command completion with tabulation, and gives you instant help about the
-command you are typing. For more details see the
-\ilink{Bacula Console Design Document}{_ConsoleChapter}.
+ {\bf Bacula Console} services is the program that allows the
+ administrator or user to communicate with the {\bf Bacula Director} (see
+ above). Currently, the Bacula Console is available in three versions.
+ The first and simplest is to run the Console program in a shell window
+ (i.e. TTY interface). Most system administrators will find this
+ completely adequate. The second version is a GNOME GUI interface that
+ is far from complete, but quite functional as it has most the
+ capabilities of the shell Console. The third version is a wxWidgets GUI
+ with an interactive file restore. It also has most of the capabilities
+ of the shell console, allows command completion with tabulation, and
+ gives you instant help about the command you are typing. For more
+ details see the \ilink{Bacula Console Design Document}{_ConsoleChapter}.
\item
\label{FDDef}
- {\bf Bacula File} services (or Client program) is the software program that
-is installed on the machine to be backed up. It is specific to the operating
-system on which it runs and is responsible for providing the file attributes
-and data when requested by the Director. The File services are also
-responsible for the file system dependent part of restoring the file
-attributes and data during a recovery operation. For more details see the
-File Services Daemon Design Document in the Bacula Developer's Guide. This
-program runs as a daemon on the machine to be backed up, and in some of the
-documentation, the File daemon is referred to as the Client (for example in
-Bacula's configuration file). In addition to Unix/Linux File daemons, there
-is a Windows File daemon (normally distributed in binary format). The Windows
-File daemon runs on current Windows versions (NT,
-2000, XP, 2003, and possibly Me and 98).
+ {\bf Bacula File} services (or Client program) is the software program
+ that is installed on the machine to be backed up. It is specific to the
+ operating system on which it runs and is responsible for providing the
+ file attributes and data when requested by the Director. The File
+ services are also responsible for the file system dependent part of
+ restoring the file attributes and data during a recovery operation. For
+ more details see the File Services Daemon Design Document in the Bacula
+ Developer's Guide. This program runs as a daemon on the machine to be
+ backed up, and in some of the documentation, the File daemon is referred
+ to as the Client (for example in Bacula's configuration file). In
+ addition to Unix/Linux File daemons, there is a Windows File daemon
+ (normally distributed in binary format). The Windows File daemon runs
+ on current Windows versions (NT, 2000, XP, 2003, and possibly Me and
+ 98).
\item
\label{SDDef}
- {\bf Bacula Storage} services consist of the software programs that perform
-the storage and recovery of the file attributes and data to the physical
-backup media or volumes. In other words, the Storage daemon is responsible
-for reading and writing your tapes (or other storage media, e.g. files). For
-more details see the Storage Services Daemon Design Document in the Bacula
-Developer's Guild. The Storage services runs as a daemon on the machine that
-has the backup device (usually a tape drive).
+ {\bf Bacula Storage} services consist of the software programs that
+ perform the storage and recovery of the file attributes and data to the
+ physical backup media or volumes. In other words, the Storage daemon is
+ responsible for reading and writing your tapes (or other storage media,
+ e.g. files). For more details see the Storage Services Daemon Design
+ Document in the Bacula Developer's Guild. The Storage services runs as
+ a daemon on the machine that has the backup device (usually a tape
+ drive).
\item
\label{DBDefinition}
- {\bf Catalog} services are comprised of the software programs responsible
-for
-maintaining the file indexes and volume databases for all files backed up.
-The Catalog services permit the System Administrator or user to quickly
-locate and restore any desired file. The Catalog services sets Bacula apart
-from simple backup programs like tar and bru, because the catalog maintains a
-record of all Volumes used, all Jobs run, and all Files saved, permitting
-efficient restoration and Volume management. Bacula currently supports
-three different databases, MySQL, PostgreSQL, and SQLite, one of which must
-be chosen when building {\bf Bacula}.
-
-The three SQL databases currently supported (MySQL, PostgreSQL or SQLite)
-provide quite a number of features, including rapid indexing, arbitrary
-queries, and security. Although we plan to support other major SQL databases,
-the current Bacula implementation interfaces only to MySQL, PostgreSQL and
-SQLite. For the technical and porting details see the Catalog Services
-Design Document in the developer's documented.
-
-The RPMs for MySQL and PostgreSQL ship as part of the Linux RedHat
-and several other releases. Alternatively, building the rpms from the source is
-quite easy, see the
-\ilink{ Installing and Configuring MySQL}{_ChapterStart} chapter of
-this document for the details. For more information on MySQL, please see:
-\elink{www.mysql.com}{http://www.mysql.com}. Or see the
-\ilink{ Installing and Configuring PostgreSQL}{_ChapterStart10}
-chapter of this document for the details. For more information on PostgreSQL,
-please see:
-\elink{www.postgresql.org}{http://www.postgresql.org}.
-
-Configuring and building SQLite is even easier. For the details of
-configuring SQLite, please see the
-\ilink{ Installing and Configuring SQLite}{_ChapterStart33} chapter
-of this document.
+ {\bf Catalog} services are comprised of the software programs
+ responsible for maintaining the file indexes and volume databases for
+ all files backed up. The Catalog services permit the System
+ Administrator or user to quickly locate and restore any desired file.
+ The Catalog services sets Bacula apart from simple backup programs like
+ tar and bru, because the catalog maintains a record of all Volumes used,
+ all Jobs run, and all Files saved, permitting efficient restoration and
+ Volume management. Bacula currently supports three different databases,
+ MySQL, PostgreSQL, and SQLite, one of which must be chosen when building
+ {\bf Bacula}.
+
+ The three SQL databases currently supported (MySQL, PostgreSQL or
+ SQLite) provide quite a number of features, including rapid indexing,
+ arbitrary queries, and security. Although we plan to support other
+ major SQL databases, the current Bacula implementation interfaces only
+ to MySQL, PostgreSQL and SQLite. For the technical and porting details
+ see the Catalog Services Design Document in the developer's documented.
+
+ The RPMs for MySQL and PostgreSQL ship as part of the Linux RedHat and
+ several other releases. Alternatively, building the rpms from the
+ source is quite easy, see the \ilink{ Installing and Configuring
+ MySQL}{_ChapterStart} chapter of this document for the details. For
+ more information on MySQL, please see:
+ \elink{www.mysql.com}{http://www.mysql.com}. Or see the \ilink{
+ Installing and Configuring PostgreSQL}{_ChapterStart10} chapter of this
+ document for the details. For more information on PostgreSQL, please
+ see: \elink{www.postgresql.org}{http://www.postgresql.org}.
+
+ Configuring and building SQLite is even easier. For the details of
+ configuring SQLite, please see the \ilink{ Installing and Configuring
+ SQLite}{_ChapterStart33} chapter of this document.
\item
\label{MonDef}
- {\bf Bacula Monitor} services is the program that allows the administrator
-or
-user to watch current status of {\bf Bacula Directors}, {\bf Bacula File
-Daemons} and {\bf Bacula Storage Daemons} (see above). Currently, only a GTK+
-version is available, which works with Gnome and KDE (or any window manager
-that supports the FreeDesktop.org system tray standard).
-\end{itemize}
-
-To perform a successful save or restore, the following four daemons must be
-configured and running: the Director daemon, the File daemon, the Storage
-daemon, and MySQL, PostgreSQL or SQLite.
+ {\bf Bacula Monitor} services is the program that allows the
+ administrator or user to watch current status of {\bf Bacula Directors},
+ {\bf Bacula File Daemons} and {\bf Bacula Storage Daemons} (see above).
+ Currently, only a GTK+ version is available, which works with Gnome and
+ KDE (or any window manager that supports the FreeDesktop.org system tray
+ standard). \end{itemize}
+
+ To perform a successful save or restore, the following four daemons must be
+ configured and running: the Director daemon, the File daemon, the Storage
+ daemon, and MySQL, PostgreSQL or SQLite.
\subsection*{Bacula Configuration}
\index[general]{Configuration!Bacula }
\item [Bootstrap File]
\index[fd]{Bootstrap File }
- The bootstrap file is an ASCII file containing a compact form of commands
-that allow Bacula or the stand-alone file extraction utility ({\bf bextract})
-to restore the contents of one or more Volumes, for example, the current
-state of a system just backed up. With a bootstrap file, Bacula can restore
-your system without a Catalog. You can create a bootstrap file from a Catalog
-to extract any file or files you wish.
+ The bootstrap file is an ASCII file containing a compact form of
+ commands that allow Bacula or the stand-alone file extraction utility
+ ({\bf bextract}) to restore the contents of one or more Volumes, for
+ example, the current state of a system just backed up. With a bootstrap
+ file, Bacula can restore your system without a Catalog. You can create
+ a bootstrap file from a Catalog to extract any file or files you wish.
\item [Catalog]
\index[fd]{Catalog }
- The Catalog is used to store summary information about the Jobs, Clients,
-and
-Files that were backed up and on what Volume or Volumes. The information
-saved in the Catalog permits the administrator or user to determine what jobs
-were run, their status as well as the important characteristics of each file
-that was backed up. The Catalog is an online resource, but does not contain
-the data for the files backed up. Most of the information stored in the
-catalog is also stored on the backup volumes (i.e. tapes). Of course, the
-tapes will also have a copy of the file data in addition to the File Attributes
-(see below).
-
-The catalog feature is one part of Bacula that distinguishes it from simple
-backup and archive programs such as {\bf dump} and {\bf tar}.
+ The Catalog is used to store summary information about the Jobs,
+ Clients, and Files that were backed up and on what Volume or Volumes.
+ The information saved in the Catalog permits the administrator or user
+ to determine what jobs were run, their status as well as the important
+ characteristics of each file that was backed up, and most importantly,
+ it permits you to choose what files to restore.
+ The Catalog is an
+ online resource, but does not contain the data for the files backed up.
+ Most of the information stored in the catalog is also stored on the
+ backup volumes (i.e. tapes). Of course, the tapes will also have a
+ copy of the file data in addition to the File Attributes (see below).
+
+ The catalog feature is one part of Bacula that distinguishes it from
+ simple backup and archive programs such as {\bf dump} and {\bf tar}.
\item [Client]
\index[fd]{Client }
- In Bacula's terminology, the word Client refers to the machine being backed
-up, and it is synonymous with the File services or File daemon, and quite
-often, we refer to it as the FD. A Client is defined in a configuration file
-resource.
+ In Bacula's terminology, the word Client refers to the machine being
+ backed up, and it is synonymous with the File services or File daemon,
+ and quite often, we refer to it as the FD. A Client is defined in a
+ configuration file resource.
\item [Console]
\index[fd]{Console }
The program that interfaces to the Director allowing the user or system
-administrator to control Bacula.
+ administrator to control Bacula.
\item [Daemon]
\index[fd]{Daemon }
\item [Directive]
\index[fd]{Directive }
The term directive is used to refer to a statement or a record within a
-Resource in a configuration file that defines one specific thing. For
-example, the {\bf Name} directive defines the name of the Resource.
+ Resource in a configuration file that defines one specific thing. For
+ example, the {\bf Name} directive defines the name of the Resource.
\item [Director]
\index[fd]{Director }
The main Bacula server daemon that schedules and directs all Bacula
-operations. Occasionally, we refer to the Director as DIR.
+ operations. Occasionally, we refer to the Director as DIR.
\item [Differential]
\index[fd]{Differential }
A backup that includes all files changed since the last Full save started.
-Note, other backup programs may define this differently.
+ Note, other backup programs may define this differently.
\item [File Attributes]
\index[fd]{File Attributes }
+ identify it and all its properties such as size, creation date, modification
+ date, permissions, etc. Normally, the attributes are handled entirely by
+ Bacula so that the user never needs to be concerned about them. The
+ attributes do not include the file's data.
The File Attributes are all the information necessary about a file to
-identify it and all its properties such as size, creation date, modification
-date, permissions, etc. Normally, the attributes are handled entirely by
-Bacula so that the user never needs to be concerned about them. The
-attributes do not include the file's data.
\item [File Daemon]
\index[fd]{File Daemon }
The daemon running on the client computer to be backed up. This is also
-referred to as the File services, and sometimes as the Client services or the
-FD.
+ referred to as the File services, and sometimes as the Client services or the
+ FD.
-\item [
- \label{FileSetDef}
- FileSet]
+\label{FileSetDef}
+\item [FileSet]
\index[fd]{a name }
-A FileSet is a Resource contained in a configuration file that defines the
-files to be backed up. It consists of a list of included files or
-directories, a list of excluded files, and how the file is to be stored
-(compression, encryption, signatures). For more details, see the
-\ilink{FileSet Resource definition}{FileSetResource} in the
-Director chapter of this document.
+ A FileSet is a Resource contained in a configuration file that defines
+ the files to be backed up. It consists of a list of included files or
+ directories, a list of excluded files, and how the file is to be stored
+ (compression, encryption, signatures). For more details, see the
+ \ilink{FileSet Resource definition}{FileSetResource} in the Director
+ chapter of this document.
\item [Incremental]
\index[fd]{Incremental }
A backup that includes all files changed since the last Full, Differential,
-or Incremental backup started. It is normally specified on the {\bf Level}
-directive within the Job resource definition, or in a Schedule resource.
+ or Incremental backup started. It is normally specified on the {\bf Level}
+ directive within the Job resource definition, or in a Schedule resource.
-\item [
- \label{JobDef}
- Job]
+\label{JobDef}
+\item [Job]
\index[fd]{a name }
-A Bacula Job is a configuration resource that defines the work that Bacula
-must perform to backup or restore a particular Client. It consists of the
-{\bf Type} (backup, restore, verify, etc), the {\bf Level} (full,
-incremental,...), the {\bf FileSet}, and {\bf Storage} the files are to be
-backed up (Storage device, Media Pool). For more details, see the
-\ilink{Job Resource definition}{JobResource} in the Director
-chapter of this document.
+ A Bacula Job is a configuration resource that defines the work that
+ Bacula must perform to backup or restore a particular Client. It
+ consists of the {\bf Type} (backup, restore, verify, etc), the {\bf
+ Level} (full, incremental,...), the {\bf FileSet}, and {\bf Storage} the
+ files are to be backed up (Storage device, Media Pool). For more
+ details, see the \ilink{Job Resource definition}{JobResource} in the
+ Director chapter of this document.
\item [Monitor]
\index[fd]{Monitor }
The program that interfaces to all the daemons allowing the user or
-system administrator to monitor Bacula status.
+ system administrator to monitor Bacula status.
\item [Resource]
\index[fd]{Resource }
- A resource is a part of a configuration file that defines a specific unit of
-information that is available to Bacula. It consists of several directives
-(individual configuration statements). For example, the {\bf Job} resource
-defines all the properties of a specific Job: name, schedule, Volume pool,
-backup type, backup level, ...
+ A resource is a part of a configuration file that defines a specific
+ unit of information that is available to Bacula. It consists of several
+ directives (individual configuration statements). For example, the {\bf
+ Job} resource defines all the properties of a specific Job: name,
+ schedule, Volume pool, backup type, backup level, ...
\item [Restore]
\index[fd]{Restore }
- A restore is a configuration resource that describes the operation of
-recovering a file from backup media. It is the inverse of a
-save, except that in most cases, a restore will normally have a small set of
-files to restore, while normally a Save backs up all the files on the system.
-Of course, after a disk crash, Bacula can be called upon to do a full
-Restore of all files that were on the system.
+ A restore is a configuration resource that describes the operation of
+ recovering a file from backup media. It is the inverse of a save,
+ except that in most cases, a restore will normally have a small set of
+ files to restore, while normally a Save backs up all the files on the
+ system. Of course, after a disk crash, Bacula can be called upon to do
+ a full Restore of all files that were on the system.
\item [Schedule]
\index[fd]{Schedule }
- A Schedule is a configuration resource that defines when the Bacula Job will
-be scheduled for execution. To use the Schedule, the Job resource will refer
-to the name of the Schedule. For more details, see the
-\ilink{Schedule Resource definition}{ScheduleResource} in the
-Director chapter of this document.
+ A Schedule is a configuration resource that defines when the Bacula Job
+ will be scheduled for execution. To use the Schedule, the Job resource
+ will refer to the name of the Schedule. For more details, see the
+ \ilink{Schedule Resource definition}{ScheduleResource} in the Director
+ chapter of this document.
\item [Service]
\index[fd]{Service }
This is Windows terminology for a {\bf daemon} -- see above. It is now
-frequently used in Unix environments as well.
+ frequently used in Unix environments as well.
\item [Storage Coordinates]
\index[fd]{Storage Coordinates }
- The information returned from the Storage Services that uniquely locates a
-file on a backup medium. It consists of two parts: one part pertains to each
-file saved, and the other part pertains to the whole Job. Normally, this
-information is saved in the Catalog so that the user doesn't need specific
-knowledge of the Storage Coordinates. The Storage Coordinates include the
-File Attributes (see above) plus the unique location of the information on
-the backup Volume.
+ The information returned from the Storage Services that uniquely locates
+ a file on a backup medium. It consists of two parts: one part pertains
+ to each file saved, and the other part pertains to the whole Job.
+ Normally, this information is saved in the Catalog so that the user
+ doesn't need specific knowledge of the Storage Coordinates. The Storage
+ Coordinates include the File Attributes (see above) plus the unique
+ location of the information on the backup Volume.
\item [Storage Daemon]
\index[fd]{Storage Daemon }
- The Storage daemon, sometimes referred to as the SD, is the code that writes
-the attributes and data to a storage Volume (usually a tape or disk).
+ The Storage daemon, sometimes referred to as the SD, is the code that
+ writes the attributes and data to a storage Volume (usually a tape or
+ disk).
\item [Session]
\index[sd]{Session }
- Normally refers to the internal conversation between the File daemon and the
-Storage daemon. The File daemon opens a {\bf session} with the Storage daemon
-to save a FileSet, or to restore it. A session has a one to one
-correspondence to a Bacula Job (see above).
+ Normally refers to the internal conversation between the File daemon and
+ the Storage daemon. The File daemon opens a {\bf session} with the
+ Storage daemon to save a FileSet, or to restore it. A session has a one
+ to one correspondence to a Bacula Job (see above).
\item [Verify]
\index[sd]{Verify }
- A verify is a job that compares the current file attributes to the
-attributes
-that have previously been stored in the Bacula Catalog. This feature can be
-used for detecting changes to critical system files similar to what {\bf
-Tripwire} does. One of the major advantages of using Bacula to do this is
-that on the machine you want protected such as a server, you can run just
-the File daemon, and the Director, Storage daemon, and Catalog reside on a
-different machine. As a consequence, if your server is ever compromised, it
-is unlikely that your verification database will be tampered with.
-
-Verify can also be used to check that the most recent Job data written to a
-Volume agrees with what is stored in the Catalog (i.e. it compares the file
-attributes), *or it can check the Volume contents against the original files
-on disk.
+ A verify is a job that compares the current file attributes to the
+ attributes that have previously been stored in the Bacula Catalog. This
+ feature can be used for detecting changes to critical system files
+ similar to what {\bf Tripwire} does. One of the major advantages of
+ using Bacula to do this is that on the machine you want protected such
+ as a server, you can run just the File daemon, and the Director, Storage
+ daemon, and Catalog reside on a different machine. As a consequence, if
+ your server is ever compromised, it is unlikely that your verification
+ database will be tampered with.
+
+ Verify can also be used to check that the most recent Job data written
+ to a Volume agrees with what is stored in the Catalog (i.e. it compares
+ the file attributes), *or it can check the Volume contents against the
+ original files on disk.
\item [*Archive]
\index[fd]{*Archive }
\item [Retention Period]
\index[fd]{Retention Period }
- There are various kinds of retention periods that Bacula recognizes. The
-most
-important are the {\bf File} Retention Period, {\bf Job} Retention Period,
-and the {\bf Volume} Retention Period. Each of these retention periods
-applies to the time that specific records will be kept in the Catalog
-database. This should not be confused with the time that the data saved to a
-Volume is valid.
-
-The File Retention Period determines the time that File records are kept in
-the catalog database. This period is important because the volume of the
-database File records by far use the most storage space in the database. As a
-consequence, you must ensure that regular "pruning" of the database file
-records is done. (See the Console {\bf retention} command for more details on
-this subject).
-
-The Job Retention Period is the length of time that Job records will be kept
-in the database. Note, all the File records are tied to the Job that saved
-those files. The File records can be purged leaving the Job records. In this
-case, information will be available about the jobs that ran, but not the
-details of the files that were backed up. Normally, when a Job record is
-purged, all its File records will also be purged.
-
-The Volume Retention Period is the minimum of time that a Volume will be
-kept before it is reused. Bacula will normally never overwrite a Volume that
-contains the only backup copy of a file. Under ideal conditions, the Catalog
-would retain entries for all files backed up for all current Volumes. Once a
-Volume is overwritten, the files that were backed up on that Volume are
-automatically removed from the Catalog. However, if there is a very large
-pool of Volumes or a Volume is never overwritten, the Catalog database may
-become enormous. To keep the Catalog to a manageable size, the backup
-information should be removed from the Catalog after the defined File Retention
-Period. Bacula provides the mechanisms for the catalog to be automatically
-pruned according to the retention periods defined.
+ There are various kinds of retention periods that Bacula recognizes.
+ The most important are the {\bf File} Retention Period, {\bf Job}
+ Retention Period, and the {\bf Volume} Retention Period. Each of these
+ retention periods applies to the time that specific records will be kept
+ in the Catalog database. This should not be confused with the time that
+ the data saved to a Volume is valid.
+
+ The File Retention Period determines the time that File records are kept
+ in the catalog database. This period is important because the volume of
+ the database File records by far use the most storage space in the
+ database. As a consequence, you must ensure that regular "pruning" of
+ the database file records is done. (See the Console {\bf retention}
+ command for more details on this subject).
+
+ The Job Retention Period is the length of time that Job records will be
+ kept in the database. Note, all the File records are tied to the Job
+ that saved those files. The File records can be purged leaving the Job
+ records. In this case, information will be available about the jobs
+ that ran, but not the details of the files that were backed up.
+ Normally, when a Job record is purged, all its File records will also be
+ purged.
+
+ The Volume Retention Period is the minimum of time that a Volume will be
+ kept before it is reused. Bacula will normally never overwrite a Volume
+ that contains the only backup copy of a file. Under ideal conditions,
+ the Catalog would retain entries for all files backed up for all current
+ Volumes. Once a Volume is overwritten, the files that were backed up on
+ that Volume are automatically removed from the Catalog. However, if
+ there is a very large pool of Volumes or a Volume is never overwritten,
+ the Catalog database may become enormous. To keep the Catalog to a
+ manageable size, the backup information should be removed from the
+ Catalog after the defined File Retention Period. Bacula provides the
+ mechanisms for the catalog to be automatically pruned according to the
+ retention periods defined.
\item [Scan]
\index[sd]{Scan }
- A Scan operation causes the contents of a Volume or a series of Volumes to
-be
-scanned. These Volumes with the information on which files they contain are
-restored to the Bacula Catalog. Once the information is restored to the
-Catalog, the files contained on those Volumes may be easily restored. This
-function is particularly useful if certain Volumes or Jobs have exceeded
-their retention period and have been pruned or purged from the Catalog.
-Scanning data from Volumes into the Catalog is done by using the {\bf bscan}
-program. See the
-\ilink{ bscan section}{bscan} of the Bacula Utilities Chapter of
-this manual for more details.
+ A Scan operation causes the contents of a Volume or a series of Volumes
+ to be scanned. These Volumes with the information on which files they
+ contain are restored to the Bacula Catalog. Once the information is
+ restored to the Catalog, the files contained on those Volumes may be
+ easily restored. This function is particularly useful if certain
+ Volumes or Jobs have exceeded their retention period and have been
+ pruned or purged from the Catalog. Scanning data from Volumes into the
+ Catalog is done by using the {\bf bscan} program. See the \ilink{ bscan
+ section}{bscan} of the Bacula Utilities Chapter of this manual for more
+ details.
\item [Volume]
\index[sd]{Volume }
- A Volume is an archive unit, normally a tape or a named disk file where
-Bacula stores the data from one or more backup jobs. All Bacula Volumes have
-a software label written to the Volume by Bacula so that it identifies what
-Volume it is really reading. (Normally there should be no confusion with disk
-files, but with tapes, it is easy to mount the wrong one).
+ A Volume is an archive unit, normally a tape or a named disk file where
+ Bacula stores the data from one or more backup jobs. All Bacula Volumes
+ have a software label written to the Volume by Bacula so that it
+ identifies what Volume it is really reading. (Normally there should be
+ no confusion with disk files, but with tapes, it is easy to mount the
+ wrong one).
\end{description}
\subsection*{What Bacula is Not}
-\index[general]{Not!What Bacula is }
-\index[general]{What Bacula is Not }
+\index[general]{What Bacula is Not}
\addcontentsline{toc}{subsection}{What Bacula is Not}
{\bf Bacula} is a backup, restore and verification program and is not a
files to restore).
\subsection*{Interactions Between the Bacula Services}
-\index[general]{Interactions Between the Bacula Services }
-\index[general]{Services!Interactions Between the Bacula }
+\index[general]{Interactions Between the Bacula Services}
+\index[general]{Services!Interactions Between the Bacula}
\addcontentsline{toc}{subsection}{Interactions Between the Bacula Services}
The following block diagram shows the typical interactions between the Bacula
\end{verbatim}
\normalsize
+\subsection*{Installing MySQL from RPMs}
+\index[general]{MySQL!Installing from RPMs}
+\index[general]{Installing MySQL from RPMs}
+\addcontentsline{toc}{subsection}{Installing MySQL from RPMs}
+If you are installing MySQL from RPMs, you will need to install
+both the MySQL binaries and the client libraries. The client
+libraries are ususally found in a devel package, so you must
+install:
+
+\footnotesize
+\begin{verbatim}
+ mysql
+ mysql-devel
+\end{verbatim}
+\normalsize
+
+This will be the same with most other package managers too.
+
\subsection*{Upgrading MySQL}
\index[general]{Upgrading MySQL }
\index[general]{Upgrading!MySQL }
Where you should replace {\bf /dev/nst0} with the appropriate tape drive
device name for your machine.
+\subsection*{Installing PostgreSQL from RPMs}
+\index[general]{PostgreSQL!Installing from RPMs}
+\index[general]{Installing PostgreSQL from RPMs}
+\addcontentsline{toc}{subsection}{Installing PostgreSQL from RPMs}
+If you are installing PostgreSQL from RPMs, you will need to install
+both the PostgreSQL binaries and the client libraries. The client
+libraries are ususally found in a devel package, so you must
+install:
+
+\footnotesize
+\begin{verbatim}
+ postgresql
+ postgresql-devel
+\end{verbatim}
+\normalsize
+
+This will be the same with most other package managers too.
+
+
\subsection*{Converting from MySQL to PostgreSQL}
\index[general]{PostgreSQL!Converting from MySQL to }
\index[general]{Converting from MySQL to PostgreSQL }
\item [AutoPrune = \lt{}yes|no\gt{}]
\index[console]{AutoPrune }
- If AutoPrune is set to {\bf yes} (default), Bacula (version 1.20 or greater)
-will automatically apply the Volume retention period when running a Job and
-it needs a new Volume but no appendable volumes are available. At that point,
-Bacula will prune all Volumes that can be pruned (i.e. AutoPrune set) in an
-attempt to find a usable volume. If during the autoprune, all files are
-pruned from the Volume, it will be marked with VolStatus {\bf Purged}. The
-default is {\bf yes}.
+ If AutoPrune is set to {\bf yes} (default), Bacula
+ will automatically apply the Volume retention period when running a Job and
+ it needs a new Volume but no appendable volumes are available. At that point,
+ Bacula will prune all Volumes that can be pruned (i.e. AutoPrune set) in an
+ attempt to find a usable volume. If during the autoprune, all files are
+ pruned from the Volume, it will be marked with VolStatus {\bf Purged}. The
+ default is {\bf yes}. Note, that although the File and Job records may be
+ pruned from the catalog, a Volume will be marked Purged (and hence
+ ready for recycling) if the Volume status is Append, Full, Used, or Error.
+ If the Volume has another status, such as Archive, Read-Only, Disabled,
+ Busy, or Cleaning, the Volume status will not be changed to Purged.
\item [Volume Retention = \lt{}time-period-specification\gt{}]
\index[console]{Volume Retention }
The Volume Retention record defines the length of time that Bacula will
-guarantee that the Volume is not reused counting from the time the last job
-stored on the Volume terminated.
-
-When this time period expires, and if {\bf AutoPrune} is set to {\bf yes},
-and a new Volume is needed, but no appendable Volume is available, Bacula
-will prune (remove) Job records that are older than the specified Volume
-Retention period.
-
-The Volume Retention period takes precedence over any Job Retention period
-you have specified in the Client resource. It should also be noted, that the
-Volume Retention period is obtained by reading the Catalog Database Media
-record rather than the Pool resource record. This means that if you change
-the VolumeRetention in the Pool resource record, you must ensure that the
-corresponding change is made in the catalog by using the {\bf update pool}
-command. Doing so will insure that any new Volumes will be created with the
-changed Volume Retention period. Any existing Volumes will have their own
-copy of the Volume Retention period that can only be changed on a Volume by
-Volume basis using the {\bf update volume} command.
-
-When all file catalog entries are removed from the volume, its VolStatus is
-set to {\bf Purged}. The files remain physically on the Volume until the
-volume is overwritten.
-
-Retention periods are specified in seconds, minutes, hours, days, weeks,
-months, quarters, or years on the record. See the
-\ilink{Configuration chapter}{Time} of this manual for
-additional details of time specification.
+ guarantee that the Volume is not reused counting from the time the last job
+ stored on the Volume terminated.
+
+ When this time period expires, and if {\bf AutoPrune} is set to {\bf yes},
+ and a new Volume is needed, but no appendable Volume is available, Bacula
+ will prune (remove) Job records that are older than the specified Volume
+ Retention period.
+
+ The Volume Retention period takes precedence over any Job Retention period
+ you have specified in the Client resource. It should also be noted, that the
+ Volume Retention period is obtained by reading the Catalog Database Media
+ record rather than the Pool resource record. This means that if you change
+ the VolumeRetention in the Pool resource record, you must ensure that the
+ corresponding change is made in the catalog by using the {\bf update pool}
+ command. Doing so will insure that any new Volumes will be created with the
+ changed Volume Retention period. Any existing Volumes will have their own
+ copy of the Volume Retention period that can only be changed on a Volume by
+ Volume basis using the {\bf update volume} command.
+
+ When all file catalog entries are removed from the volume, its VolStatus is
+ set to {\bf Purged}. The files remain physically on the Volume until the
+ volume is overwritten.
+
+ Retention periods are specified in seconds, minutes, hours, days, weeks,
+ months, quarters, or years on the record. See the
+ \ilink{Configuration chapter}{Time} of this manual for
+ additional details of time specification.
The default is 1 year.
\item [Recycle = \lt{}yes|no\gt{}]
\index[fd]{Recycle }
This statement tells Bacula whether or not the particular Volume can be
-recycled (i.e. rewritten). If Recycle is set to {\bf no} (the default), then
-even if Bacula prunes all the Jobs on the volume and it is marked {\bf
-Purged}, it will not consider the tape for recycling. If Recycle is set to
-{\bf yes} and all Jobs have been pruned, the volume status will be set to
-{\bf Purged} and the volume may then be reused when another volume is needed.
-If the volume is reused, it is relabeled with the same Volume Name, however
-all previous data will be lost.
-\end{description}
-
-Note, it is also possible to "force" pruning of all Volumes in the Pool
-associated with a Job by adding {\bf Prune Files = yes} to the Job resource.
-\label{Recycling}
+ recycled (i.e. rewritten). If Recycle is set to {\bf no} (the default), then
+ even if Bacula prunes all the Jobs on the volume and it is marked {\bf
+ Purged}, it will not consider the tape for recycling. If Recycle is set to
+ {\bf yes} and all Jobs have been pruned, the volume status will be set to
+ {\bf Purged} and the volume may then be reused when another volume is needed.
+ If the volume is reused, it is relabeled with the same Volume Name, however
+ all previous data will be lost.
+ \end{description}
+
+ It is also possible to "force" pruning of all Volumes in the Pool
+ associated with a Job by adding {\bf Prune Files = yes} to the Job resource.
+\label{Recycling}
\subsection*{Recycling Algorithm}
\index[general]{Algorithm!Recycling }
\index[general]{Recycling Algorithm }
and if the {\bf Recycle} flag is on (Recycle=yes) for that Volume, Bacula will
relabel it and write new data on it.
-The full recycling algorithm that Bacula uses when it needs a new Volume is:
+The full algorithm that Bacula uses when it needs a new Volume is:
\begin{itemize}
-\item Search the Pool for a Volume with VolStatus=Append (if there is more
- than one, the Volume with the oldest date last written is chosen. If two have
- the same date then the one with the lowest MediaId is chosen).
-\item Search the Pool for a Volume with VolStatus=Recycle (if there is more
- than one, the Volume with the oldest date last written is chosen. If two have
- the same date then the one with the lowest MediaId is chosen).
+\item Search the Pool for a Volume with VolStatus=Append (if there is more
+ than one, the Volume with the oldest date last written is chosen. If
+ two have the same date then the one with the lowest MediaId is chosen).
+\item Search the Pool for a Volume with VolStatus=Recycle and the InChanger
+ flag is set true (if there is more than one, the Volume with the oldest
+ date last written is chosen. If two have the same date then the one
+ with the lowest MediaId is chosen).
\item Try recycling any purged Volumes.
\item Prune volumes applying Volume retention period (Volumes with VolStatus
Full, Used, or Append are pruned).
\item Search the Pool for a Volume with VolStatus=Purged
+\item If InChanger was set, go back to the first step above, but
+ this second time, ignore the InChanger flag in step 2.
\item Attempt to create a new Volume if automatic labeling enabled
+ If Python is enabled, a Python NewVolume even is generated before
+ the Label Format check is used.
\item If a Pool named "Scratch" exists, search for a Volume and if found
move it to the current Pool for the Job and use it.
\item Prune the oldest Volume if RecycleOldestVolume=yes (the Volume with the
PurgeOldestVolume} as it can quite easily lead to loss of current backup
data.
\item Give up and ask operator.
- \end{itemize}
+\end{itemize}
The above occurs when Bacula has finished writing a Volume or when no Volume
is present in the drive.
the Director to use this Volume. In this case, if you have set {\bf Recycle
Current Volume = yes} and the Volume is marked as Used or Full, Bacula will
prune the volume and if all jobs were removed during the pruning (respecting
-the retention periods), the Volume will be recycled and used. For this to
-work, you must have {\bf Accept Any Volume = yes} in the Pool. The recycling
-algorithm in this case is:
+the retention periods), the Volume will be recycled and used.
+The recycling algorithm in this case is:
\begin{itemize}
\item If the VolStatus is {\bf Append} or {\bf Recycle} and {\bf Accept Any
{\bf Recycle} field is set to {\bf 1}
\item Use the {\bf purge jobs volume} command in the Console to mark the
Volume as {\bf Purged}. Check by using {\bf list volumes}.
- \end{itemize}
+\end{itemize}
Once the Volume is marked Purged, it will be recycled the next time a Volume
is needed.
Volume as {\bf Purged}. Check by using {\bf list volumes}.
\item In Bacula version 1.30 or greater, use the Console {\bf relabel}
command to relabel the Volume.
- \end{itemize}
+\end{itemize}
Please note that the relabel command applies only to tape Volumes.
remove the tape, and insert the tape to be renamed.
\item Write an EOF mark in the tape using the following commands:
- \footnotesize
+\footnotesize
\begin{verbatim}
mt -f /dev/nst0 rewind
mt -f /dev/nst0 weof
system.
\item Use the {\bf label} command to write a new label to the tape and to
enter it in the catalog.
- \end{itemize}
+\end{itemize}
Please be aware that the {\bf delete} command can be dangerous. Once it is
done, to recover the File records, you must either restore your database as it
In other words, what is and what is not currently implemented and functional.
\subsection*{What is Implemented}
-\index[general]{Implemented!What is }
-\index[general]{What is Implemented }
+\index[general]{Implemented!What}
+\index[general]{What is Implemented}
\addcontentsline{toc}{subsection}{What is Implemented}
\begin{itemize}
\index[general]{Daemons!Starting the }
\addcontentsline{toc}{subsection}{Starting the Daemons}
-To start the three daemons, from your installation directory, simply enter:
+Assuming you have built from source or have installed the rpms,
+to start the three daemons, from your installation directory, simply enter:
-./bacula start This script starts the Storage daemon, the File daemon, and the
+./bacula start
+
+The {\bf bacula} script starts the Storage daemon, the File daemon, and the
Director daemon, which all normally run as daemons in the background. If you
are using the autostart feature of Bacula, your daemons will either be
automatically started on reboot, or you can control them individually with the
files {\bf bacula-dir}, {\bf bacula-fd}, and {\bf bacula-sd}, which are
usually located in {\bf /etc/init.d}, though the actual location is system
dependent.
+Some distributions may do this differently.
Note, on Windows, currently only the File daemon is ported, and it must be
started differently. Please see the
./bconsole
-Note, on 1.32 versions and lower, the command name is {\bf console} rather
-than bconsole. Alternatively to running the command line console, if you have
+Alternatively to running the command line console, if you have
GNOME installed and used the {\bf \verb:--:enable-gnome} on the configure command,
you may use the GNOME Console program:
./gnome-console
-For simplicity, here we will describe only the {\bf ./console} program. Most
-of what is described here applies equally well to {\bf ./gnome-console}.
+Another possibilty is to run the wxWidgets program {\bf wx-console}.
+
+For simplicity, here we will describe only the {\bf ./bconsole} program. Most
+of what is described here applies equally well to {\bf ./gnome-console}
+and to {\bf wx-console}
The {\bf ./bconsole} runs the Bacula Console program, which connects to the
Director daemon. Since Bacula is a network program, you can run the Console
\item Have possibly edited your {\bf bacula-dir.conf} file to personalize it
a bit. BE CAREFUL! if you change the Director's name or password, you will
need to make similar modifications in the other .conf files. For the moment
-it is probably better to make no changes.
+ it is probably better to make no changes.
\item You have started Bacula with {\bf ./bacula start}
\item You have invoked the Console program with {\bf ./bconsole}
- \end{itemize}
+\end{itemize}
Furthermore, we assume for the moment you are using the default configuration
files.
{\bf Catalog} is used for backing up Bacula's catalog and is not of interest
to us for the moment. The {\bf Inc:} entries are the files or directories that
will be included in the backup and the {\bf Exc:} are those that will be
-excluded.
+excluded. You can change what is backed up by editing {\bf bacula-dir.conf}
+and changing the {\bf File =} line in the {\bf FileSet} resource.
Now is the time to run your first backup job. We are going to backup your
Bacula source directory to a File Volume in your {\bf /tmp} directory just to
output. This is normal because we have not yet created (labeled) any Volumes.
Bacula indicates to you all the details of the volume it needs.
-At this point, the job is blocked waiting for a Volume. You can check this if
+At this point, the job is BLOCKED waiting for a Volume. You can check this if
you want by doing a {\bf status dir}. In order to continue, we must create a
Volume that Bacula can write on. We do so with:
to be restored. You will be presented several methods
of specifying the JobIds. Then you will be allowed to
select which files from those JobIds are to be restored.
+
To select the JobIds, you have the following choices:
1: List last 20 Jobs run
2: List Jobs where a given File is saved
6: Select backup for a client before a specified time
7: Enter a list of files to restore
8: Enter a list of files to restore before a specified time
- 9: Cancel
-Select item: (1-9):
+ 9: Find the JobIds of the most recent backup for a client
+ 10: Find the JobIds for a backup for a client before a specified time
+ 11: Enter a list of directories to restore for found JobIds
+ 12: Cancel
+Select item: (1-12):
\end{verbatim}
\normalsize
Client: rufus-fd
Storage: File
JobId: *None*
-When: 2003-04-28 14:53:54
+When: 2005-04-28 14:53:54
OK to run? (yes/mod/no):
\end{verbatim}
\normalsize
\footnotesize
\begin{verbatim}
-28-Apr-2003 14:56 rufus-dir: Bacula 1.30 (28Apr03): 28-Apr-2003 14:56
+28-Apr-2005 14:56 rufus-dir: Bacula 1.30 (28Apr03): 28-Apr-2003 14:56
JobId: 2
-Job: RestoreFiles.2003-04-28_14.56.06
+Job: RestoreFiles.2005-04-28_14.56.06
Client: rufus-fd
-Start time: 28-Apr-2003 14:56
-End time: 28-Apr-2003 14:56
+Start time: 28-Apr-2005 14:56
+End time: 28-Apr-2005 14:56
Files Restored: 1,444
Bytes Restored: 38,816,381
Rate: 9704.1 KB/s
FD termination status: OK
Termination: Restore OK
-28-Apr-2003 14:56 rufus-dir: Begin pruning Jobs.
-28-Apr-2003 14:56 rufus-dir: No Jobs found to prune.
-28-Apr-2003 14:56 rufus-dir: Begin pruning Files.
-28-Apr-2003 14:56 rufus-dir: No Files found to prune.
-28-Apr-2003 14:56 rufus-dir: End auto prune.
+28-Apr-2005 14:56 rufus-dir: Begin pruning Jobs.
+28-Apr-2005 14:56 rufus-dir: No Jobs found to prune.
+28-Apr-2005 14:56 rufus-dir: Begin pruning Files.
+28-Apr-2005 14:56 rufus-dir: No Files found to prune.
+28-Apr-2005 14:56 rufus-dir: End auto prune.
\end{verbatim}
\normalsize
\begin{itemize}
\item
\label{DirDef}
- {\bf Bacula Director} service consists of the program that supervises all
-the
-backup, restore, verify and archive operations. The system administrator uses
-the Bacula Director to schedule backups and to recover files. For more
-details see the Director Services Daemon Design Document in the Bacula
-Developer's Guide. The Director runs as a daemon or a service (i.e. in the
-background).
+ {\bf Bacula Director} service consists of the program that supervises
+ all the backup, restore, verify and archive operations. The system
+ administrator uses the Bacula Director to schedule backups and to
+ recover files. For more details see the Director Services Daemon Design
+ Document in the Bacula Developer's Guide. The Director runs as a daemon
+ or a service (i.e. in the background).
\item
\label{UADef}
- {\bf Bacula Console} services is the program that allows the administrator
-or
-user to communicate with the {\bf Bacula Director} (see above). Currently,
-the Bacula Console is available in three versions. The first and simplest is
-to run the Console program in a shell window (i.e. TTY interface). Most
-system administrators will find this completely adequate. The second version
-is a GNOME GUI interface that is far from
-complete, but quite functional as it has most the capabilities of the shell
-Console. The third version is a wxWidgets GUI with an interactive file
-restore. It also has most of the capabilities of the shell console, allows
-command completion with tabulation, and gives you instant help about the
-command you are typing. For more details see the
-\ilink{Bacula Console Design Document}{_ConsoleChapter}.
+ {\bf Bacula Console} services is the program that allows the
+ administrator or user to communicate with the {\bf Bacula Director} (see
+ above). Currently, the Bacula Console is available in three versions.
+ The first and simplest is to run the Console program in a shell window
+ (i.e. TTY interface). Most system administrators will find this
+ completely adequate. The second version is a GNOME GUI interface that
+ is far from complete, but quite functional as it has most the
+ capabilities of the shell Console. The third version is a wxWidgets GUI
+ with an interactive file restore. It also has most of the capabilities
+ of the shell console, allows command completion with tabulation, and
+ gives you instant help about the command you are typing. For more
+ details see the \ilink{Bacula Console Design Document}{_ConsoleChapter}.
\item
\label{FDDef}
- {\bf Bacula File} services (or Client program) is the software program that
-is installed on the machine to be backed up. It is specific to the operating
-system on which it runs and is responsible for providing the file attributes
-and data when requested by the Director. The File services are also
-responsible for the file system dependent part of restoring the file
-attributes and data during a recovery operation. For more details see the
-File Services Daemon Design Document in the Bacula Developer's Guide. This
-program runs as a daemon on the machine to be backed up, and in some of the
-documentation, the File daemon is referred to as the Client (for example in
-Bacula's configuration file). In addition to Unix/Linux File daemons, there
-is a Windows File daemon (normally distributed in binary format). The Windows
-File daemon runs on current Windows versions (NT,
-2000, XP, 2003, and possibly Me and 98).
+ {\bf Bacula File} services (or Client program) is the software program
+ that is installed on the machine to be backed up. It is specific to the
+ operating system on which it runs and is responsible for providing the
+ file attributes and data when requested by the Director. The File
+ services are also responsible for the file system dependent part of
+ restoring the file attributes and data during a recovery operation. For
+ more details see the File Services Daemon Design Document in the Bacula
+ Developer's Guide. This program runs as a daemon on the machine to be
+ backed up, and in some of the documentation, the File daemon is referred
+ to as the Client (for example in Bacula's configuration file). In
+ addition to Unix/Linux File daemons, there is a Windows File daemon
+ (normally distributed in binary format). The Windows File daemon runs
+ on current Windows versions (NT, 2000, XP, 2003, and possibly Me and
+ 98).
\item
\label{SDDef}
- {\bf Bacula Storage} services consist of the software programs that perform
-the storage and recovery of the file attributes and data to the physical
-backup media or volumes. In other words, the Storage daemon is responsible
-for reading and writing your tapes (or other storage media, e.g. files). For
-more details see the Storage Services Daemon Design Document in the Bacula
-Developer's Guild. The Storage services runs as a daemon on the machine that
-has the backup device (usually a tape drive).
+ {\bf Bacula Storage} services consist of the software programs that
+ perform the storage and recovery of the file attributes and data to the
+ physical backup media or volumes. In other words, the Storage daemon is
+ responsible for reading and writing your tapes (or other storage media,
+ e.g. files). For more details see the Storage Services Daemon Design
+ Document in the Bacula Developer's Guild. The Storage services runs as
+ a daemon on the machine that has the backup device (usually a tape
+ drive).
\item
\label{DBDefinition}
- {\bf Catalog} services are comprised of the software programs responsible
-for
-maintaining the file indexes and volume databases for all files backed up.
-The Catalog services permit the System Administrator or user to quickly
-locate and restore any desired file. The Catalog services sets Bacula apart
-from simple backup programs like tar and bru, because the catalog maintains a
-record of all Volumes used, all Jobs run, and all Files saved, permitting
-efficient restoration and Volume management. Bacula currently supports
-three different databases, MySQL, PostgreSQL, and SQLite, one of which must
-be chosen when building {\bf Bacula}.
-
-The three SQL databases currently supported (MySQL, PostgreSQL or SQLite)
-provide quite a number of features, including rapid indexing, arbitrary
-queries, and security. Although we plan to support other major SQL databases,
-the current Bacula implementation interfaces only to MySQL, PostgreSQL and
-SQLite. For the technical and porting details see the Catalog Services
-Design Document in the developer's documented.
-
-The RPMs for MySQL and PostgreSQL ship as part of the Linux RedHat
-and several other releases. Alternatively, building the rpms from the source is
-quite easy, see the
-\ilink{ Installing and Configuring MySQL}{_ChapterStart} chapter of
-this document for the details. For more information on MySQL, please see:
-\elink{www.mysql.com}{http://www.mysql.com}. Or see the
-\ilink{ Installing and Configuring PostgreSQL}{_ChapterStart10}
-chapter of this document for the details. For more information on PostgreSQL,
-please see:
-\elink{www.postgresql.org}{http://www.postgresql.org}.
-
-Configuring and building SQLite is even easier. For the details of
-configuring SQLite, please see the
-\ilink{ Installing and Configuring SQLite}{_ChapterStart33} chapter
-of this document.
+ {\bf Catalog} services are comprised of the software programs
+ responsible for maintaining the file indexes and volume databases for
+ all files backed up. The Catalog services permit the System
+ Administrator or user to quickly locate and restore any desired file.
+ The Catalog services sets Bacula apart from simple backup programs like
+ tar and bru, because the catalog maintains a record of all Volumes used,
+ all Jobs run, and all Files saved, permitting efficient restoration and
+ Volume management. Bacula currently supports three different databases,
+ MySQL, PostgreSQL, and SQLite, one of which must be chosen when building
+ {\bf Bacula}.
+
+ The three SQL databases currently supported (MySQL, PostgreSQL or
+ SQLite) provide quite a number of features, including rapid indexing,
+ arbitrary queries, and security. Although we plan to support other
+ major SQL databases, the current Bacula implementation interfaces only
+ to MySQL, PostgreSQL and SQLite. For the technical and porting details
+ see the Catalog Services Design Document in the developer's documented.
+
+ The RPMs for MySQL and PostgreSQL ship as part of the Linux RedHat and
+ several other releases. Alternatively, building the rpms from the
+ source is quite easy, see the \ilink{ Installing and Configuring
+ MySQL}{_ChapterStart} chapter of this document for the details. For
+ more information on MySQL, please see:
+ \elink{www.mysql.com}{http://www.mysql.com}. Or see the \ilink{
+ Installing and Configuring PostgreSQL}{_ChapterStart10} chapter of this
+ document for the details. For more information on PostgreSQL, please
+ see: \elink{www.postgresql.org}{http://www.postgresql.org}.
+
+ Configuring and building SQLite is even easier. For the details of
+ configuring SQLite, please see the \ilink{ Installing and Configuring
+ SQLite}{_ChapterStart33} chapter of this document.
\item
\label{MonDef}
- {\bf Bacula Monitor} services is the program that allows the administrator
-or
-user to watch current status of {\bf Bacula Directors}, {\bf Bacula File
-Daemons} and {\bf Bacula Storage Daemons} (see above). Currently, only a GTK+
-version is available, which works with Gnome and KDE (or any window manager
-that supports the FreeDesktop.org system tray standard).
-\end{itemize}
-
-To perform a successful save or restore, the following four daemons must be
-configured and running: the Director daemon, the File daemon, the Storage
-daemon, and MySQL, PostgreSQL or SQLite.
+ {\bf Bacula Monitor} services is the program that allows the
+ administrator or user to watch current status of {\bf Bacula Directors},
+ {\bf Bacula File Daemons} and {\bf Bacula Storage Daemons} (see above).
+ Currently, only a GTK+ version is available, which works with Gnome and
+ KDE (or any window manager that supports the FreeDesktop.org system tray
+ standard). \end{itemize}
+
+ To perform a successful save or restore, the following four daemons must be
+ configured and running: the Director daemon, the File daemon, the Storage
+ daemon, and MySQL, PostgreSQL or SQLite.
\subsection*{Bacula Configuration}
\index[general]{Configuration!Bacula }
\item [Bootstrap File]
\index[fd]{Bootstrap File }
- The bootstrap file is an ASCII file containing a compact form of commands
-that allow Bacula or the stand-alone file extraction utility ({\bf bextract})
-to restore the contents of one or more Volumes, for example, the current
-state of a system just backed up. With a bootstrap file, Bacula can restore
-your system without a Catalog. You can create a bootstrap file from a Catalog
-to extract any file or files you wish.
+ The bootstrap file is an ASCII file containing a compact form of
+ commands that allow Bacula or the stand-alone file extraction utility
+ ({\bf bextract}) to restore the contents of one or more Volumes, for
+ example, the current state of a system just backed up. With a bootstrap
+ file, Bacula can restore your system without a Catalog. You can create
+ a bootstrap file from a Catalog to extract any file or files you wish.
\item [Catalog]
\index[fd]{Catalog }
- The Catalog is used to store summary information about the Jobs, Clients,
-and
-Files that were backed up and on what Volume or Volumes. The information
-saved in the Catalog permits the administrator or user to determine what jobs
-were run, their status as well as the important characteristics of each file
-that was backed up. The Catalog is an online resource, but does not contain
-the data for the files backed up. Most of the information stored in the
-catalog is also stored on the backup volumes (i.e. tapes). Of course, the
-tapes will also have a copy of the file data in addition to the File Attributes
-(see below).
-
-The catalog feature is one part of Bacula that distinguishes it from simple
-backup and archive programs such as {\bf dump} and {\bf tar}.
+ The Catalog is used to store summary information about the Jobs,
+ Clients, and Files that were backed up and on what Volume or Volumes.
+ The information saved in the Catalog permits the administrator or user
+ to determine what jobs were run, their status as well as the important
+ characteristics of each file that was backed up, and most importantly,
+ it permits you to choose what files to restore.
+ The Catalog is an
+ online resource, but does not contain the data for the files backed up.
+ Most of the information stored in the catalog is also stored on the
+ backup volumes (i.e. tapes). Of course, the tapes will also have a
+ copy of the file data in addition to the File Attributes (see below).
+
+ The catalog feature is one part of Bacula that distinguishes it from
+ simple backup and archive programs such as {\bf dump} and {\bf tar}.
\item [Client]
\index[fd]{Client }
- In Bacula's terminology, the word Client refers to the machine being backed
-up, and it is synonymous with the File services or File daemon, and quite
-often, we refer to it as the FD. A Client is defined in a configuration file
-resource.
+ In Bacula's terminology, the word Client refers to the machine being
+ backed up, and it is synonymous with the File services or File daemon,
+ and quite often, we refer to it as the FD. A Client is defined in a
+ configuration file resource.
\item [Console]
\index[fd]{Console }
The program that interfaces to the Director allowing the user or system
-administrator to control Bacula.
+ administrator to control Bacula.
\item [Daemon]
\index[fd]{Daemon }
\item [Directive]
\index[fd]{Directive }
The term directive is used to refer to a statement or a record within a
-Resource in a configuration file that defines one specific thing. For
-example, the {\bf Name} directive defines the name of the Resource.
+ Resource in a configuration file that defines one specific thing. For
+ example, the {\bf Name} directive defines the name of the Resource.
\item [Director]
\index[fd]{Director }
The main Bacula server daemon that schedules and directs all Bacula
-operations. Occasionally, we refer to the Director as DIR.
+ operations. Occasionally, we refer to the Director as DIR.
\item [Differential]
\index[fd]{Differential }
A backup that includes all files changed since the last Full save started.
-Note, other backup programs may define this differently.
+ Note, other backup programs may define this differently.
\item [File Attributes]
\index[fd]{File Attributes }
+ identify it and all its properties such as size, creation date, modification
+ date, permissions, etc. Normally, the attributes are handled entirely by
+ Bacula so that the user never needs to be concerned about them. The
+ attributes do not include the file's data.
The File Attributes are all the information necessary about a file to
-identify it and all its properties such as size, creation date, modification
-date, permissions, etc. Normally, the attributes are handled entirely by
-Bacula so that the user never needs to be concerned about them. The
-attributes do not include the file's data.
\item [File Daemon]
\index[fd]{File Daemon }
The daemon running on the client computer to be backed up. This is also
-referred to as the File services, and sometimes as the Client services or the
-FD.
+ referred to as the File services, and sometimes as the Client services or the
+ FD.
-\item [
- \label{FileSetDef}
- FileSet]
+\label{FileSetDef}
+\item [FileSet]
\index[fd]{a name }
-A FileSet is a Resource contained in a configuration file that defines the
-files to be backed up. It consists of a list of included files or
-directories, a list of excluded files, and how the file is to be stored
-(compression, encryption, signatures). For more details, see the
-\ilink{FileSet Resource definition}{FileSetResource} in the
-Director chapter of this document.
+ A FileSet is a Resource contained in a configuration file that defines
+ the files to be backed up. It consists of a list of included files or
+ directories, a list of excluded files, and how the file is to be stored
+ (compression, encryption, signatures). For more details, see the
+ \ilink{FileSet Resource definition}{FileSetResource} in the Director
+ chapter of this document.
\item [Incremental]
\index[fd]{Incremental }
A backup that includes all files changed since the last Full, Differential,
-or Incremental backup started. It is normally specified on the {\bf Level}
-directive within the Job resource definition, or in a Schedule resource.
+ or Incremental backup started. It is normally specified on the {\bf Level}
+ directive within the Job resource definition, or in a Schedule resource.
-\item [
- \label{JobDef}
- Job]
+\label{JobDef}
+\item [Job]
\index[fd]{a name }
-A Bacula Job is a configuration resource that defines the work that Bacula
-must perform to backup or restore a particular Client. It consists of the
-{\bf Type} (backup, restore, verify, etc), the {\bf Level} (full,
-incremental,...), the {\bf FileSet}, and {\bf Storage} the files are to be
-backed up (Storage device, Media Pool). For more details, see the
-\ilink{Job Resource definition}{JobResource} in the Director
-chapter of this document.
+ A Bacula Job is a configuration resource that defines the work that
+ Bacula must perform to backup or restore a particular Client. It
+ consists of the {\bf Type} (backup, restore, verify, etc), the {\bf
+ Level} (full, incremental,...), the {\bf FileSet}, and {\bf Storage} the
+ files are to be backed up (Storage device, Media Pool). For more
+ details, see the \ilink{Job Resource definition}{JobResource} in the
+ Director chapter of this document.
\item [Monitor]
\index[fd]{Monitor }
The program that interfaces to all the daemons allowing the user or
-system administrator to monitor Bacula status.
+ system administrator to monitor Bacula status.
\item [Resource]
\index[fd]{Resource }
- A resource is a part of a configuration file that defines a specific unit of
-information that is available to Bacula. It consists of several directives
-(individual configuration statements). For example, the {\bf Job} resource
-defines all the properties of a specific Job: name, schedule, Volume pool,
-backup type, backup level, ...
+ A resource is a part of a configuration file that defines a specific
+ unit of information that is available to Bacula. It consists of several
+ directives (individual configuration statements). For example, the {\bf
+ Job} resource defines all the properties of a specific Job: name,
+ schedule, Volume pool, backup type, backup level, ...
\item [Restore]
\index[fd]{Restore }
- A restore is a configuration resource that describes the operation of
-recovering a file from backup media. It is the inverse of a
-save, except that in most cases, a restore will normally have a small set of
-files to restore, while normally a Save backs up all the files on the system.
-Of course, after a disk crash, Bacula can be called upon to do a full
-Restore of all files that were on the system.
+ A restore is a configuration resource that describes the operation of
+ recovering a file from backup media. It is the inverse of a save,
+ except that in most cases, a restore will normally have a small set of
+ files to restore, while normally a Save backs up all the files on the
+ system. Of course, after a disk crash, Bacula can be called upon to do
+ a full Restore of all files that were on the system.
\item [Schedule]
\index[fd]{Schedule }
- A Schedule is a configuration resource that defines when the Bacula Job will
-be scheduled for execution. To use the Schedule, the Job resource will refer
-to the name of the Schedule. For more details, see the
-\ilink{Schedule Resource definition}{ScheduleResource} in the
-Director chapter of this document.
+ A Schedule is a configuration resource that defines when the Bacula Job
+ will be scheduled for execution. To use the Schedule, the Job resource
+ will refer to the name of the Schedule. For more details, see the
+ \ilink{Schedule Resource definition}{ScheduleResource} in the Director
+ chapter of this document.
\item [Service]
\index[fd]{Service }
This is Windows terminology for a {\bf daemon} -- see above. It is now
-frequently used in Unix environments as well.
+ frequently used in Unix environments as well.
\item [Storage Coordinates]
\index[fd]{Storage Coordinates }
- The information returned from the Storage Services that uniquely locates a
-file on a backup medium. It consists of two parts: one part pertains to each
-file saved, and the other part pertains to the whole Job. Normally, this
-information is saved in the Catalog so that the user doesn't need specific
-knowledge of the Storage Coordinates. The Storage Coordinates include the
-File Attributes (see above) plus the unique location of the information on
-the backup Volume.
+ The information returned from the Storage Services that uniquely locates
+ a file on a backup medium. It consists of two parts: one part pertains
+ to each file saved, and the other part pertains to the whole Job.
+ Normally, this information is saved in the Catalog so that the user
+ doesn't need specific knowledge of the Storage Coordinates. The Storage
+ Coordinates include the File Attributes (see above) plus the unique
+ location of the information on the backup Volume.
\item [Storage Daemon]
\index[fd]{Storage Daemon }
- The Storage daemon, sometimes referred to as the SD, is the code that writes
-the attributes and data to a storage Volume (usually a tape or disk).
+ The Storage daemon, sometimes referred to as the SD, is the code that
+ writes the attributes and data to a storage Volume (usually a tape or
+ disk).
\item [Session]
\index[sd]{Session }
- Normally refers to the internal conversation between the File daemon and the
-Storage daemon. The File daemon opens a {\bf session} with the Storage daemon
-to save a FileSet, or to restore it. A session has a one to one
-correspondence to a Bacula Job (see above).
+ Normally refers to the internal conversation between the File daemon and
+ the Storage daemon. The File daemon opens a {\bf session} with the
+ Storage daemon to save a FileSet, or to restore it. A session has a one
+ to one correspondence to a Bacula Job (see above).
\item [Verify]
\index[sd]{Verify }
- A verify is a job that compares the current file attributes to the
-attributes
-that have previously been stored in the Bacula Catalog. This feature can be
-used for detecting changes to critical system files similar to what {\bf
-Tripwire} does. One of the major advantages of using Bacula to do this is
-that on the machine you want protected such as a server, you can run just
-the File daemon, and the Director, Storage daemon, and Catalog reside on a
-different machine. As a consequence, if your server is ever compromised, it
-is unlikely that your verification database will be tampered with.
-
-Verify can also be used to check that the most recent Job data written to a
-Volume agrees with what is stored in the Catalog (i.e. it compares the file
-attributes), *or it can check the Volume contents against the original files
-on disk.
+ A verify is a job that compares the current file attributes to the
+ attributes that have previously been stored in the Bacula Catalog. This
+ feature can be used for detecting changes to critical system files
+ similar to what {\bf Tripwire} does. One of the major advantages of
+ using Bacula to do this is that on the machine you want protected such
+ as a server, you can run just the File daemon, and the Director, Storage
+ daemon, and Catalog reside on a different machine. As a consequence, if
+ your server is ever compromised, it is unlikely that your verification
+ database will be tampered with.
+
+ Verify can also be used to check that the most recent Job data written
+ to a Volume agrees with what is stored in the Catalog (i.e. it compares
+ the file attributes), *or it can check the Volume contents against the
+ original files on disk.
\item [*Archive]
\index[fd]{*Archive }
\item [Retention Period]
\index[fd]{Retention Period }
- There are various kinds of retention periods that Bacula recognizes. The
-most
-important are the {\bf File} Retention Period, {\bf Job} Retention Period,
-and the {\bf Volume} Retention Period. Each of these retention periods
-applies to the time that specific records will be kept in the Catalog
-database. This should not be confused with the time that the data saved to a
-Volume is valid.
-
-The File Retention Period determines the time that File records are kept in
-the catalog database. This period is important because the volume of the
-database File records by far use the most storage space in the database. As a
-consequence, you must ensure that regular "pruning" of the database file
-records is done. (See the Console {\bf retention} command for more details on
-this subject).
-
-The Job Retention Period is the length of time that Job records will be kept
-in the database. Note, all the File records are tied to the Job that saved
-those files. The File records can be purged leaving the Job records. In this
-case, information will be available about the jobs that ran, but not the
-details of the files that were backed up. Normally, when a Job record is
-purged, all its File records will also be purged.
-
-The Volume Retention Period is the minimum of time that a Volume will be
-kept before it is reused. Bacula will normally never overwrite a Volume that
-contains the only backup copy of a file. Under ideal conditions, the Catalog
-would retain entries for all files backed up for all current Volumes. Once a
-Volume is overwritten, the files that were backed up on that Volume are
-automatically removed from the Catalog. However, if there is a very large
-pool of Volumes or a Volume is never overwritten, the Catalog database may
-become enormous. To keep the Catalog to a manageable size, the backup
-information should be removed from the Catalog after the defined File Retention
-Period. Bacula provides the mechanisms for the catalog to be automatically
-pruned according to the retention periods defined.
+ There are various kinds of retention periods that Bacula recognizes.
+ The most important are the {\bf File} Retention Period, {\bf Job}
+ Retention Period, and the {\bf Volume} Retention Period. Each of these
+ retention periods applies to the time that specific records will be kept
+ in the Catalog database. This should not be confused with the time that
+ the data saved to a Volume is valid.
+
+ The File Retention Period determines the time that File records are kept
+ in the catalog database. This period is important because the volume of
+ the database File records by far use the most storage space in the
+ database. As a consequence, you must ensure that regular "pruning" of
+ the database file records is done. (See the Console {\bf retention}
+ command for more details on this subject).
+
+ The Job Retention Period is the length of time that Job records will be
+ kept in the database. Note, all the File records are tied to the Job
+ that saved those files. The File records can be purged leaving the Job
+ records. In this case, information will be available about the jobs
+ that ran, but not the details of the files that were backed up.
+ Normally, when a Job record is purged, all its File records will also be
+ purged.
+
+ The Volume Retention Period is the minimum of time that a Volume will be
+ kept before it is reused. Bacula will normally never overwrite a Volume
+ that contains the only backup copy of a file. Under ideal conditions,
+ the Catalog would retain entries for all files backed up for all current
+ Volumes. Once a Volume is overwritten, the files that were backed up on
+ that Volume are automatically removed from the Catalog. However, if
+ there is a very large pool of Volumes or a Volume is never overwritten,
+ the Catalog database may become enormous. To keep the Catalog to a
+ manageable size, the backup information should be removed from the
+ Catalog after the defined File Retention Period. Bacula provides the
+ mechanisms for the catalog to be automatically pruned according to the
+ retention periods defined.
\item [Scan]
\index[sd]{Scan }
- A Scan operation causes the contents of a Volume or a series of Volumes to
-be
-scanned. These Volumes with the information on which files they contain are
-restored to the Bacula Catalog. Once the information is restored to the
-Catalog, the files contained on those Volumes may be easily restored. This
-function is particularly useful if certain Volumes or Jobs have exceeded
-their retention period and have been pruned or purged from the Catalog.
-Scanning data from Volumes into the Catalog is done by using the {\bf bscan}
-program. See the
-\ilink{ bscan section}{bscan} of the Bacula Utilities Chapter of
-this manual for more details.
+ A Scan operation causes the contents of a Volume or a series of Volumes
+ to be scanned. These Volumes with the information on which files they
+ contain are restored to the Bacula Catalog. Once the information is
+ restored to the Catalog, the files contained on those Volumes may be
+ easily restored. This function is particularly useful if certain
+ Volumes or Jobs have exceeded their retention period and have been
+ pruned or purged from the Catalog. Scanning data from Volumes into the
+ Catalog is done by using the {\bf bscan} program. See the \ilink{ bscan
+ section}{bscan} of the Bacula Utilities Chapter of this manual for more
+ details.
\item [Volume]
\index[sd]{Volume }
- A Volume is an archive unit, normally a tape or a named disk file where
-Bacula stores the data from one or more backup jobs. All Bacula Volumes have
-a software label written to the Volume by Bacula so that it identifies what
-Volume it is really reading. (Normally there should be no confusion with disk
-files, but with tapes, it is easy to mount the wrong one).
+ A Volume is an archive unit, normally a tape or a named disk file where
+ Bacula stores the data from one or more backup jobs. All Bacula Volumes
+ have a software label written to the Volume by Bacula so that it
+ identifies what Volume it is really reading. (Normally there should be
+ no confusion with disk files, but with tapes, it is easy to mount the
+ wrong one).
\end{description}
\subsection*{What Bacula is Not}
-\index[general]{Not!What Bacula is }
-\index[general]{What Bacula is Not }
+\index[general]{What Bacula is Not}
\addcontentsline{toc}{subsection}{What Bacula is Not}
{\bf Bacula} is a backup, restore and verification program and is not a
files to restore).
\subsection*{Interactions Between the Bacula Services}
-\index[general]{Interactions Between the Bacula Services }
-\index[general]{Services!Interactions Between the Bacula }
+\index[general]{Interactions Between the Bacula Services}
+\index[general]{Services!Interactions Between the Bacula}
\addcontentsline{toc}{subsection}{Interactions Between the Bacula Services}
The following block diagram shows the typical interactions between the Bacula
\end{verbatim}
\normalsize
+\subsection*{Installing MySQL from RPMs}
+\index[general]{MySQL!Installing from RPMs}
+\index[general]{Installing MySQL from RPMs}
+\addcontentsline{toc}{subsection}{Installing MySQL from RPMs}
+If you are installing MySQL from RPMs, you will need to install
+both the MySQL binaries and the client libraries. The client
+libraries are ususally found in a devel package, so you must
+install:
+
+\footnotesize
+\begin{verbatim}
+ mysql
+ mysql-devel
+\end{verbatim}
+\normalsize
+
+This will be the same with most other package managers too.
+
\subsection*{Upgrading MySQL}
\index[general]{Upgrading MySQL }
\index[general]{Upgrading!MySQL }
Where you should replace {\bf /dev/nst0} with the appropriate tape drive
device name for your machine.
+\subsection*{Installing PostgreSQL from RPMs}
+\index[general]{PostgreSQL!Installing from RPMs}
+\index[general]{Installing PostgreSQL from RPMs}
+\addcontentsline{toc}{subsection}{Installing PostgreSQL from RPMs}
+If you are installing PostgreSQL from RPMs, you will need to install
+both the PostgreSQL binaries and the client libraries. The client
+libraries are ususally found in a devel package, so you must
+install:
+
+\footnotesize
+\begin{verbatim}
+ postgresql
+ postgresql-devel
+\end{verbatim}
+\normalsize
+
+This will be the same with most other package managers too.
+
+
\subsection*{Converting from MySQL to PostgreSQL}
\index[general]{PostgreSQL!Converting from MySQL to }
\index[general]{Converting from MySQL to PostgreSQL }
\item [AutoPrune = \lt{}yes|no\gt{}]
\index[console]{AutoPrune }
- If AutoPrune is set to {\bf yes} (default), Bacula (version 1.20 or greater)
-will automatically apply the Volume retention period when running a Job and
-it needs a new Volume but no appendable volumes are available. At that point,
-Bacula will prune all Volumes that can be pruned (i.e. AutoPrune set) in an
-attempt to find a usable volume. If during the autoprune, all files are
-pruned from the Volume, it will be marked with VolStatus {\bf Purged}. The
-default is {\bf yes}.
+ If AutoPrune is set to {\bf yes} (default), Bacula
+ will automatically apply the Volume retention period when running a Job and
+ it needs a new Volume but no appendable volumes are available. At that point,
+ Bacula will prune all Volumes that can be pruned (i.e. AutoPrune set) in an
+ attempt to find a usable volume. If during the autoprune, all files are
+ pruned from the Volume, it will be marked with VolStatus {\bf Purged}. The
+ default is {\bf yes}. Note, that although the File and Job records may be
+ pruned from the catalog, a Volume will be marked Purged (and hence
+ ready for recycling) if the Volume status is Append, Full, Used, or Error.
+ If the Volume has another status, such as Archive, Read-Only, Disabled,
+ Busy, or Cleaning, the Volume status will not be changed to Purged.
\item [Volume Retention = \lt{}time-period-specification\gt{}]
\index[console]{Volume Retention }
The Volume Retention record defines the length of time that Bacula will
-guarantee that the Volume is not reused counting from the time the last job
-stored on the Volume terminated.
-
-When this time period expires, and if {\bf AutoPrune} is set to {\bf yes},
-and a new Volume is needed, but no appendable Volume is available, Bacula
-will prune (remove) Job records that are older than the specified Volume
-Retention period.
-
-The Volume Retention period takes precedence over any Job Retention period
-you have specified in the Client resource. It should also be noted, that the
-Volume Retention period is obtained by reading the Catalog Database Media
-record rather than the Pool resource record. This means that if you change
-the VolumeRetention in the Pool resource record, you must ensure that the
-corresponding change is made in the catalog by using the {\bf update pool}
-command. Doing so will insure that any new Volumes will be created with the
-changed Volume Retention period. Any existing Volumes will have their own
-copy of the Volume Retention period that can only be changed on a Volume by
-Volume basis using the {\bf update volume} command.
-
-When all file catalog entries are removed from the volume, its VolStatus is
-set to {\bf Purged}. The files remain physically on the Volume until the
-volume is overwritten.
-
-Retention periods are specified in seconds, minutes, hours, days, weeks,
-months, quarters, or years on the record. See the
-\ilink{Configuration chapter}{Time} of this manual for
-additional details of time specification.
+ guarantee that the Volume is not reused counting from the time the last job
+ stored on the Volume terminated.
+
+ When this time period expires, and if {\bf AutoPrune} is set to {\bf yes},
+ and a new Volume is needed, but no appendable Volume is available, Bacula
+ will prune (remove) Job records that are older than the specified Volume
+ Retention period.
+
+ The Volume Retention period takes precedence over any Job Retention period
+ you have specified in the Client resource. It should also be noted, that the
+ Volume Retention period is obtained by reading the Catalog Database Media
+ record rather than the Pool resource record. This means that if you change
+ the VolumeRetention in the Pool resource record, you must ensure that the
+ corresponding change is made in the catalog by using the {\bf update pool}
+ command. Doing so will insure that any new Volumes will be created with the
+ changed Volume Retention period. Any existing Volumes will have their own
+ copy of the Volume Retention period that can only be changed on a Volume by
+ Volume basis using the {\bf update volume} command.
+
+ When all file catalog entries are removed from the volume, its VolStatus is
+ set to {\bf Purged}. The files remain physically on the Volume until the
+ volume is overwritten.
+
+ Retention periods are specified in seconds, minutes, hours, days, weeks,
+ months, quarters, or years on the record. See the
+ \ilink{Configuration chapter}{Time} of this manual for
+ additional details of time specification.
The default is 1 year.
\item [Recycle = \lt{}yes|no\gt{}]
\index[fd]{Recycle }
This statement tells Bacula whether or not the particular Volume can be
-recycled (i.e. rewritten). If Recycle is set to {\bf no} (the default), then
-even if Bacula prunes all the Jobs on the volume and it is marked {\bf
-Purged}, it will not consider the tape for recycling. If Recycle is set to
-{\bf yes} and all Jobs have been pruned, the volume status will be set to
-{\bf Purged} and the volume may then be reused when another volume is needed.
-If the volume is reused, it is relabeled with the same Volume Name, however
-all previous data will be lost.
-\end{description}
-
-Note, it is also possible to "force" pruning of all Volumes in the Pool
-associated with a Job by adding {\bf Prune Files = yes} to the Job resource.
-\label{Recycling}
+ recycled (i.e. rewritten). If Recycle is set to {\bf no} (the default), then
+ even if Bacula prunes all the Jobs on the volume and it is marked {\bf
+ Purged}, it will not consider the tape for recycling. If Recycle is set to
+ {\bf yes} and all Jobs have been pruned, the volume status will be set to
+ {\bf Purged} and the volume may then be reused when another volume is needed.
+ If the volume is reused, it is relabeled with the same Volume Name, however
+ all previous data will be lost.
+ \end{description}
+
+ It is also possible to "force" pruning of all Volumes in the Pool
+ associated with a Job by adding {\bf Prune Files = yes} to the Job resource.
+\label{Recycling}
\subsection*{Recycling Algorithm}
\index[general]{Algorithm!Recycling }
\index[general]{Recycling Algorithm }
and if the {\bf Recycle} flag is on (Recycle=yes) for that Volume, Bacula will
relabel it and write new data on it.
-The full recycling algorithm that Bacula uses when it needs a new Volume is:
+The full algorithm that Bacula uses when it needs a new Volume is:
\begin{itemize}
-\item Search the Pool for a Volume with VolStatus=Append (if there is more
- than one, the Volume with the oldest date last written is chosen. If two have
- the same date then the one with the lowest MediaId is chosen).
-\item Search the Pool for a Volume with VolStatus=Recycle (if there is more
- than one, the Volume with the oldest date last written is chosen. If two have
- the same date then the one with the lowest MediaId is chosen).
+\item Search the Pool for a Volume with VolStatus=Append (if there is more
+ than one, the Volume with the oldest date last written is chosen. If
+ two have the same date then the one with the lowest MediaId is chosen).
+\item Search the Pool for a Volume with VolStatus=Recycle and the InChanger
+ flag is set true (if there is more than one, the Volume with the oldest
+ date last written is chosen. If two have the same date then the one
+ with the lowest MediaId is chosen).
\item Try recycling any purged Volumes.
\item Prune volumes applying Volume retention period (Volumes with VolStatus
Full, Used, or Append are pruned).
\item Search the Pool for a Volume with VolStatus=Purged
+\item If InChanger was set, go back to the first step above, but
+ this second time, ignore the InChanger flag in step 2.
\item Attempt to create a new Volume if automatic labeling enabled
+ If Python is enabled, a Python NewVolume even is generated before
+ the Label Format check is used.
\item If a Pool named "Scratch" exists, search for a Volume and if found
move it to the current Pool for the Job and use it.
\item Prune the oldest Volume if RecycleOldestVolume=yes (the Volume with the
PurgeOldestVolume} as it can quite easily lead to loss of current backup
data.
\item Give up and ask operator.
- \end{itemize}
+\end{itemize}
The above occurs when Bacula has finished writing a Volume or when no Volume
is present in the drive.
the Director to use this Volume. In this case, if you have set {\bf Recycle
Current Volume = yes} and the Volume is marked as Used or Full, Bacula will
prune the volume and if all jobs were removed during the pruning (respecting
-the retention periods), the Volume will be recycled and used. For this to
-work, you must have {\bf Accept Any Volume = yes} in the Pool. The recycling
-algorithm in this case is:
+the retention periods), the Volume will be recycled and used.
+The recycling algorithm in this case is:
\begin{itemize}
\item If the VolStatus is {\bf Append} or {\bf Recycle} and {\bf Accept Any
{\bf Recycle} field is set to {\bf 1}
\item Use the {\bf purge jobs volume} command in the Console to mark the
Volume as {\bf Purged}. Check by using {\bf list volumes}.
- \end{itemize}
+\end{itemize}
Once the Volume is marked Purged, it will be recycled the next time a Volume
is needed.
Volume as {\bf Purged}. Check by using {\bf list volumes}.
\item In Bacula version 1.30 or greater, use the Console {\bf relabel}
command to relabel the Volume.
- \end{itemize}
+\end{itemize}
Please note that the relabel command applies only to tape Volumes.
remove the tape, and insert the tape to be renamed.
\item Write an EOF mark in the tape using the following commands:
- \footnotesize
+\footnotesize
\begin{verbatim}
mt -f /dev/nst0 rewind
mt -f /dev/nst0 weof
system.
\item Use the {\bf label} command to write a new label to the tape and to
enter it in the catalog.
- \end{itemize}
+\end{itemize}
Please be aware that the {\bf delete} command can be dangerous. Once it is
done, to recover the File records, you must either restore your database as it
In other words, what is and what is not currently implemented and functional.
\subsection*{What is Implemented}
-\index[general]{Implemented!What is }
-\index[general]{What is Implemented }
+\index[general]{Implemented!What}
+\index[general]{What is Implemented}
\addcontentsline{toc}{subsection}{What is Implemented}
\begin{itemize}
\index[general]{Daemons!Starting the }
\addcontentsline{toc}{subsection}{Starting the Daemons}
-To start the three daemons, from your installation directory, simply enter:
+Assuming you have built from source or have installed the rpms,
+to start the three daemons, from your installation directory, simply enter:
-./bacula start This script starts the Storage daemon, the File daemon, and the
+./bacula start
+
+The {\bf bacula} script starts the Storage daemon, the File daemon, and the
Director daemon, which all normally run as daemons in the background. If you
are using the autostart feature of Bacula, your daemons will either be
automatically started on reboot, or you can control them individually with the
files {\bf bacula-dir}, {\bf bacula-fd}, and {\bf bacula-sd}, which are
usually located in {\bf /etc/init.d}, though the actual location is system
dependent.
+Some distributions may do this differently.
Note, on Windows, currently only the File daemon is ported, and it must be
started differently. Please see the
./bconsole
-Note, on 1.32 versions and lower, the command name is {\bf console} rather
-than bconsole. Alternatively to running the command line console, if you have
+Alternatively to running the command line console, if you have
GNOME installed and used the {\bf \verb:--:enable-gnome} on the configure command,
you may use the GNOME Console program:
./gnome-console
-For simplicity, here we will describe only the {\bf ./console} program. Most
-of what is described here applies equally well to {\bf ./gnome-console}.
+Another possibilty is to run the wxWidgets program {\bf wx-console}.
+
+For simplicity, here we will describe only the {\bf ./bconsole} program. Most
+of what is described here applies equally well to {\bf ./gnome-console}
+and to {\bf wx-console}
The {\bf ./bconsole} runs the Bacula Console program, which connects to the
Director daemon. Since Bacula is a network program, you can run the Console
\item Have possibly edited your {\bf bacula-dir.conf} file to personalize it
a bit. BE CAREFUL! if you change the Director's name or password, you will
need to make similar modifications in the other .conf files. For the moment
-it is probably better to make no changes.
+ it is probably better to make no changes.
\item You have started Bacula with {\bf ./bacula start}
\item You have invoked the Console program with {\bf ./bconsole}
- \end{itemize}
+\end{itemize}
Furthermore, we assume for the moment you are using the default configuration
files.
{\bf Catalog} is used for backing up Bacula's catalog and is not of interest
to us for the moment. The {\bf Inc:} entries are the files or directories that
will be included in the backup and the {\bf Exc:} are those that will be
-excluded.
+excluded. You can change what is backed up by editing {\bf bacula-dir.conf}
+and changing the {\bf File =} line in the {\bf FileSet} resource.
Now is the time to run your first backup job. We are going to backup your
Bacula source directory to a File Volume in your {\bf /tmp} directory just to
output. This is normal because we have not yet created (labeled) any Volumes.
Bacula indicates to you all the details of the volume it needs.
-At this point, the job is blocked waiting for a Volume. You can check this if
+At this point, the job is BLOCKED waiting for a Volume. You can check this if
you want by doing a {\bf status dir}. In order to continue, we must create a
Volume that Bacula can write on. We do so with:
to be restored. You will be presented several methods
of specifying the JobIds. Then you will be allowed to
select which files from those JobIds are to be restored.
+
To select the JobIds, you have the following choices:
1: List last 20 Jobs run
2: List Jobs where a given File is saved
6: Select backup for a client before a specified time
7: Enter a list of files to restore
8: Enter a list of files to restore before a specified time
- 9: Cancel
-Select item: (1-9):
+ 9: Find the JobIds of the most recent backup for a client
+ 10: Find the JobIds for a backup for a client before a specified time
+ 11: Enter a list of directories to restore for found JobIds
+ 12: Cancel
+Select item: (1-12):
\end{verbatim}
\normalsize
Client: rufus-fd
Storage: File
JobId: *None*
-When: 2003-04-28 14:53:54
+When: 2005-04-28 14:53:54
OK to run? (yes/mod/no):
\end{verbatim}
\normalsize
\footnotesize
\begin{verbatim}
-28-Apr-2003 14:56 rufus-dir: Bacula 1.30 (28Apr03): 28-Apr-2003 14:56
+28-Apr-2005 14:56 rufus-dir: Bacula 1.30 (28Apr03): 28-Apr-2003 14:56
JobId: 2
-Job: RestoreFiles.2003-04-28_14.56.06
+Job: RestoreFiles.2005-04-28_14.56.06
Client: rufus-fd
-Start time: 28-Apr-2003 14:56
-End time: 28-Apr-2003 14:56
+Start time: 28-Apr-2005 14:56
+End time: 28-Apr-2005 14:56
Files Restored: 1,444
Bytes Restored: 38,816,381
Rate: 9704.1 KB/s
FD termination status: OK
Termination: Restore OK
-28-Apr-2003 14:56 rufus-dir: Begin pruning Jobs.
-28-Apr-2003 14:56 rufus-dir: No Jobs found to prune.
-28-Apr-2003 14:56 rufus-dir: Begin pruning Files.
-28-Apr-2003 14:56 rufus-dir: No Files found to prune.
-28-Apr-2003 14:56 rufus-dir: End auto prune.
+28-Apr-2005 14:56 rufus-dir: Begin pruning Jobs.
+28-Apr-2005 14:56 rufus-dir: No Jobs found to prune.
+28-Apr-2005 14:56 rufus-dir: Begin pruning Files.
+28-Apr-2005 14:56 rufus-dir: No Files found to prune.
+28-Apr-2005 14:56 rufus-dir: End auto prune.
\end{verbatim}
\normalsize