From e8bc3a36ffa590ae0e73124a9831e815e50d59e3 Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Sun, 24 Jul 2005 10:27:39 +0000 Subject: [PATCH] Update doc --- docs/manual/autochangerres.tex | 43 +++++++++++-- docs/manual/catmaintenance.tex | 12 +++- docs/manual/console.tex | 20 +++++- docs/manual/dirdconf.tex | 80 +++++++++++++++++++++-- docs/manual/fileset.tex | 51 +++++++++------ docs/manual/install.tex | 109 ++++++++++++++++++------------- docs/manual/pools.tex | 8 ++- docs/manual/restore.tex | 113 ++++++++++++++++++++++++--------- docs/manual/sqlite.tex | 14 +++- docs/manual/storedconf.tex | 21 ++++-- docs/manual/supported.tex | 6 +- docs/manual/uploaddoc | 7 +- docs/manual/win32.tex | 76 ++++++++++++++++++++-- 13 files changed, 426 insertions(+), 134 deletions(-) diff --git a/docs/manual/autochangerres.tex b/docs/manual/autochangerres.tex index 5205c692..6dc4897d 100644 --- a/docs/manual/autochangerres.tex +++ b/docs/manual/autochangerres.tex @@ -3,9 +3,10 @@ \index[sd]{Resource!Autochanger } \addcontentsline{toc}{subsection}{Autochanger Resource} -The Autochanger resource serves to group one or more Device resources -into one unit called an autochanger in Bacula (referred to -as a tape library by autochanger manufacturers). +The Autochanger resource supports single or multiple drive +autochangers by grouping one or more Device resources +into one unit called an autochanger in Bacula (often referred to +as a ``tape library´´ by autochanger manufacturers). \begin{description} \item [Name = \lt{}Autochanger-Name\gt{}] @@ -15,10 +16,11 @@ as a tape library by autochanger manufacturers). This directive is required. \item [Device = \lt{}Device-name1, device-name2, ...\gt{}] - Specifies the names of the Device resource that corresponds + Specifies the names of the Device resource or + resources that correspond to the autochanger drive. If you have a multiple drive autochanger, you must specify multiple Device names, each - one referring to a Device resource that contains a the + one referring to a separate Device resource that contains a the Drive Index specification that corresponds to the drive number. You may specify multiple device names on a single line separated by commas, and/or you may specify @@ -50,19 +52,48 @@ The following is an example of a valid Autochanger resource definition: \begin{verbatim} Autochanger { Name = "DDS-4-changer" - Device = DDS-4-1, DDS-4-2 + Device = DDS-4-1, DDS-4-2, DDS-4-3 Changer Device = /dev/sg0 Changer Command = "/etc/bacula/mtx-changer %c %o %S %a %d" } Device { Name = "DDS-4-1" Drive Index = 0 + Autochanger = yes ... } Device { Name = "DDS-4-2" Drive Index = 1 + Autochanger = yes + ... +Device { + Name = "DDS-4-3" + Drive Index = 2 + Autochanger = yes + Autoselect = no ... } \end{verbatim} \normalsize + +Please note that it is important to include the {\bf Autochanger = yes} directive +in each Device definition that belongs to an Autochanger. A device definition +should not belong to more than one Autochanger resource. + +If you have a drive that physically belongs to an Autochanger but you don't want +to have it automatically used when Bacula references the Autochanger for backups, +for example, you want to reserve it for restores, you can add the directive: + +\footnotesize +\begin{verbatim} +Autoselect = no +\end{verbatim} +\normalsize + +to the Device resource for that drive. In that case, Bacula will not automatically +select that drive when accessing the Autochanger. You can, still use the drive +by referencing it by the Device name rather than the Autochanger name. An example +of such a definition is shown above for the Device DDS-4-3, which will not be +selected when the name DDS-4-changer is used in a Storage definition, but will +be used if DDS-4-3 is used. diff --git a/docs/manual/catmaintenance.tex b/docs/manual/catmaintenance.tex index 981d1d8a..45287f4b 100644 --- a/docs/manual/catmaintenance.tex +++ b/docs/manual/catmaintenance.tex @@ -121,7 +121,7 @@ explore the utility of the {\bf OPTIMIZE TABLE} command in MySQL. All database programs have some means of writing the database out in ASCII format and then reloading it. Doing so will re-create the database from scratch producing a compacted result, so below, we show you how you can do -this for both MySQL and SQLite. +this for MySQL, PostgreSQL and SQLite. For a {\bf MySQL} database, you could write the Bacula database as an ASCII file (bacula.sql) then reload it by doing the following: @@ -268,8 +268,8 @@ SQLite dump into MySQL using the {\bf -f} command line option to continue past the errors that are generated by the DDL statements that SQLite's dump creates. Of course, you could edit the dump and remove the offending statements. Otherwise, MySQL accepts the SQL produced by SQLite. -\label{BackingUpBacula} +\label{BackingUpBacula} \subsection*{Backing Up Your Bacula Database} \index[general]{Backing Up Your Bacula Database } \index[general]{Database!Backing Up Your Bacula } @@ -321,6 +321,7 @@ Job { Pool = Default RunBeforeJob = "/home/kern/bacula/bin/make_catalog_backup" RunAfterJob = "/home/kern/bacula/bin/delete_catalog_backup" + Write Bootstrap = "/home/kern/bacula/working/BackupCatalog.bsr" } # This schedule does the catalog. It starts after the WeeklyCycle Schedule { @@ -337,8 +338,13 @@ FileSet { \end{verbatim} \normalsize -\label{BackingUPOtherDBs} +Be sure to write a bootstrap file as in the above example. It is preferable +to write or copy the bootstrap file to another computer. It will allow +you to quickly recover the database backup should that be necessary. If +you do not have a bootstrap file, it is still possible to recover your +database backup, but it will be more work and take longer. +\label{BackingUPOtherDBs} \subsection*{Backing Up Third Party Databases} \index[general]{Backing Up Third Party Databases } \index[general]{Databases!Backing Up Third Party } diff --git a/docs/manual/console.tex b/docs/manual/console.tex index d02f73a4..31f5601c 100644 --- a/docs/manual/console.tex +++ b/docs/manual/console.tex @@ -520,8 +520,22 @@ If you have specified {\bf Automatic Mount = yes} in the Storage daemon's Device resource, under most circumstances, Bacula will automatically access the Volume unless you have explicitly {\bf unmount}ed it in the Console program. -\label{ManualPruning} +\item[python] + \index[console]{python} + The python command takes a slingle argument {\bf restart}: + +python restart + + This causes the Python interpreter in the Director to be + reinitialized. This can be helpful for testing because once + the Director starts and the Python interpreter is initialized, + there is no other way to make it accept any changes to the + startup script {\bf DirStartUp.py}. For more details on + Python scripting, please see the \ilink{Python Scripting}{_ChapterStart60} + chapter of this manual. + +\label{ManualPruning} \item [prune] \index[console]{prune } The Prune command allows you to safely remove expired database records from @@ -609,8 +623,8 @@ completely release (close) the device. 10 prior set of configurations before it will refuse a reload command. Once at least one old set of config values has been released it will again accept new reload commands. - - + + \item [restore] \index[console]{restore } The restore command allows you to select one or more Jobs (JobIds) to be diff --git a/docs/manual/dirdconf.tex b/docs/manual/dirdconf.tex index 52f075d8..4abcb4d3 100644 --- a/docs/manual/dirdconf.tex +++ b/docs/manual/dirdconf.tex @@ -402,6 +402,13 @@ in the catalog after doing another Full save. However, to remove deleted files from the catalog during an Incremental backup is quite a time consuming process and not currently implemented in Bacula. +In addition, if you move a directory rather than copy it, the files in it do not +have their modification time (st\_mtime) or their attribute change time (st\_ctime) +changed. As a conseqence, those files will probably not be backed up by an Incremental +or Differential backup which depend solely on these time stamps. If you move a directory, +and which it to be properly backed up, it is generally preferable to copy it then +delete the original. + \item [Differential] \index[dir]{Differential } is all files that have changed since the last successful Full backup of the @@ -427,8 +434,8 @@ performed as requested. The File daemon (Client) decides which files to backup for a differential backup by comparing the start time of the prior Full backup Job against the time each file was last ``modified'' (st\_mtime) and the time its attributes -were last ``changed''(st\_ctime). If the file was modified or its attributs -were changed on or after this start time, it will then be backed up. The +were last ``changed'' (st\_ctime). If the file was modified or its attributes +were changed on or after this start time, it will then be backed up. The start time used is displayed after the {\bf Since} on the Job report. In rare cases, using the start time of the prior backup may cause some files to be backed up twice, but it ensures that no change is missed. As with the @@ -444,8 +451,15 @@ last Full backup remains in the Bacula catalog, which means that if between a Full save and the time you do a restore, some files are deleted, those deleted files will also be restored. The deleted files will no longer appear in the catalog after doing another Full save. However, to remove deleted -files from the catalog during a Differential backup is quite a time consuming +files from the catalog during a Differential backup is quite a time consuming process and not currently implemented in Bacula. + +As noted above, if you move a directory rather than copy it, the files in it do not +have their modification time (st\_mtime) or their attribute change time (st\_ctime) +changed. As a conseqence, those files will probably not be backed up by an Incremental +or Differential backup which depend solely on these time stamps. If you move a directory, +and which it to be properly backed up, it is generally preferable to copy it then +delete the original. \end{description} For a {\bf Restore} Job, no level needs to be specified. @@ -614,7 +628,7 @@ For more details on using this file, please see the chapter entitled \item [Pool = \lt{}pool-resource-name\gt{}] \index[dir]{Pool } - The Pool directive defines the pool of Volumes where your data can be backed + The Pool directive defines the pool of Volumes where your data can be backed up. Many Bacula installations will use only the {\bf Default} pool. However, if you want to specify a different set of Volumes for different Clients or different Jobs, you will probably want to use Pools. For additional details, @@ -710,6 +724,20 @@ For more details on using this file, please see the chapter entitled the same as when the job was scheduled). Please note that if there is a {\bf Max Wait Time} it may also be applied to the job. +\item [Prefer Mounted Volumes = \lt{}yes|no\gt{}] + \index[dir]{Prefer Mounted Volumes} + It the Prefer Mounted Volumes directive is set to {\bf yes} + (default yes), it is used to inform the Storage daemon + to select either an Autochanger or a drive with a valid + Volume already mounted in preference to a drive that is + not ready. If none is available, it will select the first + available drive. If the directive is set to {\bf no}, the + Storage daemon will prefer finding an unused drive. This + can potentially be useful for those sites that prefer to + maximum backup throughput at the expense of using additional + drives and Volumes. + + \item [Prune Jobs = \lt{}yes|no\gt{}] \index[dir]{Prune Jobs } Normally, pruning of Jobs from the Catalog is specified on a Client by @@ -1032,6 +1060,38 @@ Bacula wants to restore a file or directory that already exists. You have the job. If it is set to zero (the default) the job will be rescheduled an indefinite number of times. +\item [Run = \lt{}job-name\gt{}] + \index[dir]{Run directive} + \index[dir]{Clone a Job} + The Run directive (not to be confused with the Run option in a + Schedule) allows you to clone jobs and thus, if you want backup + the same data (or almost the same data) to two or more drives + at the same time. The {\bf job-name} is normally the same name + as the current Job resource (thus creating a clone). However, it + may be any Job name, so one job may start other related jobs. + + The part after the equal sign must be enclosed in double quotes, + and can contain any string or set of options (overrides) that you + can specify when entering the Run command from the console. For + example {\bf storage=DDS-4 ...}. In addition, there are two special + keywords that permit you to clone the current job. They are {\bf level=\%l} + and {\bf since=\%s}. The \%l in the level keyword permits + entering the actual level of the current job and the \%s in the since + keyword permits putting the same time for comparison as used on the + current job. Note, in the case of the since keyword, the \%s must be + enclosed in double quotes, and thus they must be preceded by a backslash + since they are already inside quotes. For example: + +\begin{verbatim} + run = "Nightly-backup level=%s since=\"%s\" storage=DDS-4" +\end{verbatim} + + + A cloned job will not start additional clones, so it is not + possible to recurse. + + + \label{Priority} \item [Priority = \lt{}number\gt{}] \index[dir]{Priority } @@ -1718,6 +1778,7 @@ more information on this subject, please see the \ilink{Backup Strategies}{_ChapterStart3} chapter of this manual. + To use a Pool, there are three distinct steps. First the Pool must be defined in the Director's configuration file. Then the Pool must be written to the Catalog database. This is done automatically by the Director each time that it @@ -2135,6 +2196,17 @@ Pool { \end{verbatim} \normalsize +\subsubsection*{The Scratch Pool} +\addcontentsline{toc}{subsection}{Scratch Pool} +\index[general]{Scratch Pool} +In general, you can give your Pools any name you wish, but there is one +important restriction: the Pool named {\bf Scratch}, if it exists behaves +like a scratch pool of Volumes in that when Bacula needs a new Volume for +writing and it cannot find one, it will look in the Scratch pool, and if +it finds an available Volume, it will move it out of the Scratch pool into +the Pool currently being used by the job. + + \subsection*{The Catalog Resource} \label{CatalogResource} \index[general]{Resource!Catalog } diff --git a/docs/manual/fileset.tex b/docs/manual/fileset.tex index 22833ad6..05be2827 100644 --- a/docs/manual/fileset.tex +++ b/docs/manual/fileset.tex @@ -31,7 +31,7 @@ defined for each Backup job. The name of the FileSet resource. This directive is required. \item [Ignore FileSet Changes = \lt{}yes|no\gt{}] -\index[dir]{Ignore FileSet Changes } +\index[dir]{Ignore FileSet Changes} If this directive is set to {\bf yes}, any changes you make to the FileSet Include or Exclude lists will be ignored and not cause Bacula to immediately perform a Full backup. The default is {\bf no}, in which case, if you change @@ -39,16 +39,27 @@ The name of the FileSet resource. This directive is required. everything is properly backed up. It is not recommended to set this directive to yes. This directive is available in Bacula version 1.35.4 or later. +\item [Enable VSS = \lt{}yes|no\gt{}] +\index[dir]{Enable VSS} + If this directive is set to {\bf yes} the File daemon will be notified + that the user wants to use a Volume Shadow Copy Service (VSS) backup + for this job. The default is {\bf no}. This directive is effective + only for VSS enabled Win32 File daemons. It permits a consistent copy + of open files to be made for cooperating writer applications, and for + applications that are not VSS away, Bacula can at least copy open files. + For more information, please see the + \ilink{Windows}{VSS} chapter of this manual. + \item [Include \{ Options \{\lt{}file-options\gt{}\} ...; \lt{}file-list\gt{} \} ] -\index[dir]{Include \ \{ [ Options \{\lt{}file-options\gt{}\} ...] +\index[dir]{Include \{ [ Options \{\lt{}file-options\gt{}\} ...] \lt{}file-list\gt{} \} } -\item [Options \ \{ \lt{}file-options\gt{} \} ] -\index[dir]{Options \ \{ \lt{}file-options\gt{} \} } +\item [Options \{ \lt{}file-options\gt{} \} ] +\index[dir]{Options \{ \lt{}file-options\gt{} \} } -\item [Exclude \ \{ \lt{}file-list\gt{} \}] -\index[dir]{Exclude \ \{ \lt{}file-list\gt{} \} } +\item [Exclude \{ \lt{}file-list\gt{} \}] +\index[dir]{Exclude \{ \lt{}file-list\gt{} \} } \end{description} @@ -358,6 +369,20 @@ The directives within an Options resource may be one of the following: to use {\bf mtimeonly = yes} as well as keepatime (thanks to Rudolf Cejka for this tip). +\item [hardlinks=yes|no] +\index[dir]{hardlinks} + When enabled (default), this directive will cause hardl inks to be + backed up. However, the File daemon keeps track of hard linked files and + will backup the data only once. The process of keeping track of the + hard links can be quite expensive if you have lots of them (tens of + thousands or more). This doesn't occur on normal Unix systems, but if + you use a program like BackupPC, it can create hundreds of thousands, or + even millions of hard links. Backups become very long and the File daemon + will consume a lot of CPU power checking hard links. In such a case, + set {\bf hardlinks=no} and hard links will not be backed up. Note, using + this option will most likely backup more data and on a restore the file + system will not be restored identically to the original. + \item [wild=\lt{}string\gt{}] \index[dir]{wild } Specifies a wild-card string to be applied to the filenames and @@ -1143,9 +1168,8 @@ page, they should be written on a single line in real use. \index[general]{Considerations!Windows NTFS Naming } \addcontentsline{toc}{paragraph}{Windows NTFS Naming Considerations} -NTFS filenames containing Unicode characters (i.e. \gt{} 0xFF) cannot be -explicitly named at the moment. You must include such names by naming a higher -level directory or a drive letter that does not contain Unicode characters. +NTFS filenames containing Unicode characters should now be supported +as of version 1.37.30 or later. \subsubsection*{Testing Your FileSet} \index[general]{FileSet!Testing Your } @@ -1157,12 +1181,3 @@ exclusion rules will work correctly, you can test it by using the {\bf estimate} command in the Console program. See the \ilink{estimate command}{estimate} in the Console chapter of this manual. - -\subsubsection*{The Old FileSet Resource} -\index[general]{Resource!Old FileSet } -\index[general]{Old FileSet Resource } -\addcontentsline{toc}{subsection}{Old FileSet Resource} - -The old pre-version 1.34.3 FileSet Resource has been deprecated but may still -work. You are encouraged to convert to using the new form since the old code -will be removed sometime during 1.37 development. diff --git a/docs/manual/install.tex b/docs/manual/install.tex index 420ea5a2..33c66658 100644 --- a/docs/manual/install.tex +++ b/docs/manual/install.tex @@ -13,7 +13,8 @@ In general, you will need the Bacula source release, and if you want to run a Windows client, you will need the Bacula Windows binary release. However, -Bacula needs certain third party packages (such as {\bf SQLite}, {\bf MySQL} +Bacula needs certain third party packages (such as {\bf SQLite}, {\bf MySQL}, or +{\bf PostgreSQL} to build properly depending on the options you specify. To simplify your task, we have combined a number of these packages into two {\bf depkgs} releases (Dependency Packages). This can vastly simplify your life by providing you @@ -130,8 +131,9 @@ because the {\bf tapeinfo} program that comes with it can often provide you with valuable information about your SCSI tape drive (e.g. compression, min/max block sizes, ...). -The {\bf depkgs-win32} package contains the source code for the pthreads and -zlib libraries used by the native Win32 client program. It will only be needed +The {\bf depkgs-win32} package contains the source code for the pthreads, +zlib, and wxWidgets libraries used by the native Win32 client program. +It will only be needed if you intend to build the Win32 client from source. \subsection*{Supported Operating Systems} @@ -422,17 +424,17 @@ customize your installation. \begin{description} \item [ {-}{-}sysbindir=\lt{}binary-path\gt{}] - \index[dir]{{-}{-}sysbindir } + \index[general]{{-}{-}sysbindir } Defines where the Bacula binary (executable) files will be placed during a {\bf make install} command. \item [ {-}{-}sysconfdir=\lt{}config-path\gt{}] - \index[dir]{{-}{-}sysconfdir } + \index[general]{{-}{-}sysconfdir } Defines where the Bacula configuration files should be placed during a {\bf make install} command. \item [ {-}{-}enable-smartalloc ] - \index[dir]{{-}{-}enable-smartalloc } + \index[general]{{-}{-}enable-smartalloc } This enables the inclusion of the Smartalloc orphaned buffer detection code. This option is highly recommended. Because we never build without this option, you may experience problems if it is not enabled. In this case, @@ -441,13 +443,13 @@ customize your installation. while building Bacula \item [ {-}{-}enable-gnome ] - \index[dir]{{-}{-}enable-gnome } + \index[general]{{-}{-}enable-gnome } If you have GNOME installed on your computer and you want to use the GNOME GUI Console interface to Bacula, you must specify this option. Doing so will build everything in the {\bf src/gnome-console} directory. \item [ {-}{-}enable-wx-console ] - \index[console]{{-}{-}enable-wx-console } + \index[general]{{-}{-}enable-wx-console } If you have wxWidgets installed on your computer and you want to use the wxWidgets GUI Console interface to Bacula, you must specify this option. Doing so will build everything in the {\bf src/wx-console} directory. This @@ -456,7 +458,7 @@ customize your installation. \item [ {-}{-}enable-tray-monitor ] - \index[dir]{{-}{-}enable-tray-monitor } + \index[general]{{-}{-}enable-tray-monitor } If you have GTK installed on your computer, you run a graphical environment or a window manager compatible with the FreeDesktop system tray standard (like KDE and GNOME) and you want to use a GUI to monitor Bacula daemons, you @@ -464,7 +466,7 @@ customize your installation. src/tray-monitor} directory. \item [ {-}{-}enable-static-tools] - \index[dir]{{-}{-}enable-static-tools } + \index[general]{{-}{-}enable-static-tools } This option causes the linker to link the Storage daemon utility tools ({\bf bls}, {\bf bextract}, and {\bf bscan}) statically. This permits using them without having the shared libraries loaded. If you have problems linking in @@ -473,7 +475,7 @@ customize your installation. \item [ {-}{-}enable-static-fd] - \index[fd]{{-}{-}enable-static-fd } + \index[general]{{-}{-}enable-static-fd } This option causes the make process to build a {\bf static-bacula-fd} in addition to the standard File daemon. This static version will include statically linked libraries and is required for the Bare Metal recovery. This @@ -483,28 +485,28 @@ customize your installation. parts of the program are not compiled. \item [ {-}{-}enable-static-sd] - \index[sd]{{-}{-}enable-static-sd } + \index[general]{{-}{-}enable-static-sd } This option causes the make process to build a {\bf static-bacula-sd} in addition to the standard Storage daemon. This static version will include statically linked libraries and could be useful during a Bare Metal recovery. \item [ {-}{-}enable-static-dir] - \index[dir]{{-}{-}enable-static-dir } + \index[general]{{-}{-}enable-static-dir } This option causes the make process to build a {\bf static-bacula-dir} in addition to the standard Director. This static version will include statically linked libraries and could be useful during a Bare Metal recovery. \item [ {-}{-}enable-static-cons] - \index[dir]{{-}{-}enable-static-cons } + \index[general]{{-}{-}enable-static-cons } This option causes the make process to build a {\bf static-console} and a {\bf static-gnome-console} in addition to the standard console. This static version will include statically linked libraries and could be useful during a Bare Metal recovery. \item [ {-}{-}enable-client-only] - \index[console]{{-}{-}enable-client-only } + \index[general]{{-}{-}enable-client-only } This option causes the make process to build only the File daemon and the libraries that it needs. None of the other daemons, storage tools, nor the console will be built. Likewise a {\bf make install} will then only install @@ -513,22 +515,33 @@ customize your installation. Client on a client only machine. \item [ {-}{-}enable-largefile] - \index[console]{{-}{-}enable-largefile } + \index[general]{{-}{-}enable-largefile } This option (default) causes Bacula to be built with 64 bit file address support if it is available on your system. This permits Bacula to read and write files greater than 2 GBytes in size. You may disable this feature and revert to 32 bit file addresses by using {\bf \verb:--:disable-largefile}. \item [ {-}{-}with-sqlite=\lt{}sqlite-path\gt{}] - \index[fd]{{-}{-}with-sqlite } - This enables use of the SQLite database. The {\bf sqlite-path} is not + \index[general]{{-}{-}with-sqlite } + This enables use of the SQLite version 2.8.x database. The {\bf sqlite-path} is not normally specified as Bacula looks for the necessary components in a standard location ({\bf depkgs/sqlite}). See \ilink{Installing and Configuring SQLite}{_ChapterStart33} chapter of this manual for more details. +\item [ {-}{-}with-sqlite3=\lt{}sqlite3-path\gt{}] + \index[general]{{-}{-}with-sqlite3 } + This enables use of the SQLite version 3.x database. The {\bf sqlite3-path} is not + normally specified as Bacula looks for the necessary components in a + standard location ({\bf depkgs/sqlite3}). Although Bacula will run + with SQLite version 3.x, our testing shows that it is 4 to 10 times + slower than version 2.8.x and consequently, we do not recommend using + it. See + \ilink{Installing and Configuring SQLite}{_ChapterStart33} chapter of + this manual for more details. + \item [ {-}{-}with-mysql=\lt{}mysql-path\gt{}] - \index[fd]{{-}{-}with-mysql } + \index[general]{{-}{-}with-mysql } This enables building of the Catalog services for Bacula. It assumes that MySQL is running on your system, and expects it to be installed in the {\bf mysql-path} that you specify. If this option is not present, the build will @@ -536,15 +549,23 @@ customize your installation. you use this option if possible. If you do use this option, please proceed to installing MySQL in the \ilink{Installing and Configuring MySQL}{_ChapterStart} chapter - before proceeding with the configuration. + before proceeding with the configuration. + +\item [ {-}{-}with-openssl=\lt{}path\gt{}] + This configuration option is necessary if you want to enable TLS (ssl) + in Bacula. Normally, the {\bf path} specification is not necessary since + the configuration searches for the OpenSSL libraries in standard system + locations. Enabling OpenSSL in Bacula permits secure communications + between the daemons. For more information on using TLS, please see the + \ilink{Bacula TLS}{_ChapterStart61} chapter of this manual. \item [ {-}{-}with-postgresql=\lt{}path\gt{}] - \index[fd]{{-}{-}with-postgresql } + \index[general]{{-}{-}with-postgresql } This provides an explicit path to the PostgreSQL libraries if Bacula cannot find it by default. \item [ {-}{-}with-python=\lt{}path\gt{}] - \index[fd]{{-}{-}with-python } + \index[general]{{-}{-}with-python } This option enables Bacula support for Python. If no path is supplied, configure will search the standard library locations for Python 2.2, 2.3, or 2.4. If it cannot @@ -554,13 +575,13 @@ customize your installation. Python scripting. \item [ {-}{-}enable-conio] - \index[fd]{{-}{-}enable-conio } + \index[general]{{-}{-}enable-conio } Tells Bacula to enable building the small, light weight readline replacement routine. It is generally much easier to configure than readline, although, like readline, it needs either the termcap or ncurses library. \item [ {-}{-}with-readline=\lt{}readline-path\gt{}] - \index[fd]{{-}{-}with-readline } + \index[general]{{-}{-}with-readline } Tells Bacula where {\bf readline} is installed. Normally, Bacula will find readline if it is in a standard library. If it is not found and no \verb:--:with-readline is specified, readline will be disabled. This option affects @@ -569,13 +590,13 @@ customize your installation. own if you have problems. \item [ {-}{-}enable-readline] - \index[fd]{{-}{-}enable-readline } + \index[general]{{-}{-}enable-readline } Tells Bacula to enable readline support. It is normally disabled due to the large number of configuration problems and the fact that the package seems to change in incompatible ways from version to version. \item [ {-}{-}with-tcp-wrappers=\lt{}path\gt{}] - \index[fd]{{-}{-}with-tcp-wrappers } + \index[general]{{-}{-}with-tcp-wrappers } This specifies that you want TCP wrappers (man hosts\_access(5)) compiled in. The path is optional since Bacula will normally find the libraries in the standard locations. This option affects the Bacula build. In specifying your @@ -591,7 +612,7 @@ customize your installation. in the Security Chapter. \item [ {-}{-}with-working-dir=\lt{}working-directory-path\gt{} ] - \index[dir]{{-}{-}with-working-dir } + \index[general]{{-}{-}with-working-dir } This option is mandatory and specifies a directory into which Bacula may safely place files that will remain between Bacula executions. For example, if the internal database is used, Bacula will keep those files in this @@ -601,7 +622,7 @@ customize your installation. you must ensure that it exists before using Bacula for the first time. \item [ {-}{-}with-base-port=\lt{}port=number\gt{}] - \index[dir]{{-}{-}with-base-port } + \index[general]{{-}{-}with-base-port } In order to run, Bacula needs three TCP/IP ports (one for the Bacula Console, one for the Storage daemon, and one for the File daemon). The {\bf \verb:--:with-baseport} option will automatically assign three ports beginning at @@ -614,19 +635,19 @@ customize your installation. may also accomplish the same thing by directly editing them later. \item [ {-}{-}with-dump-email=\lt{}email-address\gt{}] - \index[dir]{{-}{-}with-dump-email } + \index[general]{{-}{-}with-dump-email } This option specifies the email address where any core dumps should be set. This option is normally only used by developers. \item [ {-}{-}with-pid-dir=\lt{}PATH\gt{} ] - \index[dir]{{-}{-}with-pid-dir } + \index[general]{{-}{-}with-pid-dir } This specifies where Bacula should place the process id file during execution. The default is: {\bf /var/run}. This directory is not created by the install process, so you must ensure that it exists before using Bacula the first time. \item [ {-}{-}with-subsys-dir=\lt{}PATH\gt{}] - \index[dir]{{-}{-}with-subsys-dir } + \index[general]{{-}{-}with-subsys-dir } This specifies where Bacula should place the subsystem lock file during execution. The default is {\bf /var/run/subsys}. Please make sure that you do not specify the same directory for this directory and for the {\bf sbindir} @@ -635,39 +656,39 @@ customize your installation. create it before using Bacula. \item [ {-}{-}with-dir-password=\lt{}Password\gt{}] - \index[dir]{{-}{-}with-dir-password } + \index[general]{{-}{-}with-dir-password } This option allows you to specify the password used to access the Directory (normally from the Console program). If it is not specified, configure will automatically create a random password. \item [ {-}{-}with-fd-password=\lt{}Password\gt{} ] - \index[fd]{{-}{-}with-fd-password } + \index[general]{{-}{-}with-fd-password } This option allows you to specify the password used to access the File daemon (normally called from the Director). If it is not specified, configure will automatically create a random password. \item [ {-}{-}with-sd-password=\lt{}Password\gt{} ] - \index[sd]{{-}{-}with-sd-password } + \index[general]{{-}{-}with-sd-password } This option allows you to specify the password used to access the Directory (normally called from the Director). If it is not specified, configure will automatically create a random password. \item [ {-}{-}with-dir-user=\lt{}User\gt{} ] - \index[dir]{{-}{-}with-dir-user } + \index[general]{{-}{-}with-dir-user } This option allows you to specify the Userid used to run the Director. The Director must be started as root, but doesn't need to run as root, and after doing preliminary initializations, it can ``drop'' to the UserId specified on this option. \item [ {-}{-}with-dir-group=\lt{}Group\gt{} ] - \index[dir]{{-}{-}with-dir-group } + \index[general]{{-}{-}with-dir-group } This option allows you to specify the GroupId used to run the Director. The Director must be started as root, but doesn't need to run as root, and after doing preliminary initializations, it can ``drop'' to the GroupId specified on this option. \item [ {-}{-}with-sd-user=\lt{}User\gt{} ] - \index[sd]{{-}{-}with-sd-user } + \index[general]{{-}{-}with-sd-user } This option allows you to specify the Userid used to run the Storage daemon. The Storage daemon must be started as root, but doesn't need to run as root, and after doing preliminary initializations, it can ``drop'' to the UserId @@ -676,14 +697,14 @@ customize your installation. it needs. \item [ {-}{-}with-sd-group=\lt{}Group\gt{} ] - \index[sd]{{-}{-}with-sd-group } + \index[general]{{-}{-}with-sd-group } This option allows you to specify the GroupId used to run the Storage daemon. The Storage daemon must be started as root, but doesn't need to run as root, and after doing preliminary initializations, it can ``drop'' to the GroupId specified on this option. \item [ {-}{-}with-fd-user=\lt{}User\gt{} ] - \index[fd]{{-}{-}with-fd-user } + \index[general]{{-}{-}with-fd-user } This option allows you to specify the Userid used to run the File daemon. The File daemon must be started as root, and in most cases, it needs to run as root, so this option is used only in very special cases, after doing @@ -691,7 +712,7 @@ customize your installation. option. \item [ {-}{-}with-fd-group=\lt{}Group\gt{} ] - \index[fd]{{-}{-}with-fd-group } + \index[general]{{-}{-}with-fd-group } This option allows you to specify the GroupId used to run the File daemon. The File daemon must be started as root, and in most cases, it must be run as root, however, after doing preliminary initializations, it can ``drop'' to @@ -961,8 +982,8 @@ Since the File daemon does not access the Catalog database, you can remove the client programs and thus avoids the necessity of installing one or another of those database programs to build the File daemon. With the above option, you simply enter {\bf make} and just the client will be built. -\label{autostart} +\label{autostart} \subsection*{Auto Starting the Daemons} \index[general]{Daemons!Auto Starting the } \index[general]{Auto Starting the Daemons } @@ -982,11 +1003,11 @@ make install-autostart \normalsize Please note, that the auto-start feature is implemented only on systems that -we officially support (currently, FreeBSD, RedHat Linux, and Solaris), and has -only been fully tested on RedHat Linux. +we officially support (currently, FreeBSD, RedHat/Fedora Linux, and Solaris), and has +only been fully tested on Fedora Linux. The {\bf make install-autostart} will cause the appropriate startup scripts to -be installed with the necessary symbolic links. On RedHat Linux systems, these +be installed with the necessary symbolic links. On RedHat/Fedora Linux systems, these scripts reside in {\bf /etc/rc.d/init.d/bacula-dir} {\bf /etc/rc.d/init.d/bacula-fd}, and {\bf /etc/rc.d/init.d/bacula-sd}. However the exact location depends on what operating system you are using. diff --git a/docs/manual/pools.tex b/docs/manual/pools.tex index 987c95dc..fb064d32 100644 --- a/docs/manual/pools.tex +++ b/docs/manual/pools.tex @@ -1,11 +1,14 @@ %% %% -\section*{Using Pools to Manage Volumes} +\section*{Automated Disk Backup} \label{_ChapterStart11} \index[general]{Volumes!Using Pools to Manage } +\index[general]{Disk!Automated Backup} \index[general]{Using Pools to Manage Volumes } +\index[general]{Automated Disk Backup} \addcontentsline{toc}{section}{Using Pools to Manage Volumes} +\addcontentsline{toc}{section}{Automated Disk Backup} If you manage 5 or 10 machines and have a nice tape backup, you don't need Pools, and you may wonder what they are good for. In this chapter, you will @@ -15,8 +18,8 @@ various different Volumes to meet their needs. The rest of this chapter will give an example involving backup to disk Volumes, but most of the information applies equally well to tape Volumes. -\label{TheProblem} +\label{TheProblem} \subsection*{The Problem} \index[general]{Problem } \addcontentsline{toc}{subsection}{Problem} @@ -346,4 +349,3 @@ Messages { } \end{verbatim} \normalsize - diff --git a/docs/manual/restore.tex b/docs/manual/restore.tex index 01915d59..61a91dda 100644 --- a/docs/manual/restore.tex +++ b/docs/manual/restore.tex @@ -93,16 +93,20 @@ Select item: (1-12): \begin{itemize} \item Item 1 will list the last 20 jobs run. If you find the Job you want, - you can then select item 3 and enter its JobId(s). + you can then select item 3 and enter its JobId(s). + \item Item 2 will list all the Jobs where a specified file is saved. If you - find the Job you want, you can then select item 3 and enter the JobId. + find the Job you want, you can then select item 3 and enter the JobId. + \item Item 3 allows you the enter a list of comma separated JobIds whose files will be put into the directory tree. You may then select which files from those JobIds to restore. + \item Item 4 allows you to enter any arbitrary SQL command. This is probably the most primitive way of finding the desired JobIds, but at the same time, the most flexible. Once you have found the JobId(s), you can select item 3 - and enter them. + and enter them. + \item Item 5 will automatically select the most recent Full backup and all subsequent incremental and differential backups for a specified Client. These are the Jobs and Files which, if reloaded, will restore your @@ -135,21 +139,27 @@ Select item: (1-12): automatically select the most recent Full backup and all subsequent incremental and differential backups that started before the specified date and time. + \item Item 7 allows you to specify one or more filenames (complete path required) to be restored. Each filename is entered one at a time or if you prefix a filename with the less-than symbol (\lt{}) Bacula will read that file and assume it is a list of filenames to be restored. The filename entry - mode is terminated by entering a blank line. + mode is terminated by entering a blank line. + \item Item 8 allows you to specify a date and time before entering the - filenames. See Item 7 above for more details. + filenames. See Item 7 above for more details. + \item Item 9 allows you find the JobIds of the most recent backup for a client. This is much like option 5 (it uses the same code), but those JobIds are retained internally as if you had entered them manually. You may then select item 11 (see below) to restore one or more directories. + \item Item 10 is the same as item 9, except that it allows you to enter a before date (as with item 6). These JobIds will then be retained internally. + +\index[general]{Restore Directories} \item Item 11 allows you to enter a list of JobIds from which you can select directories to be restored. The list of JobIds can have been previously created by using either item 9 or 10 on the menu. You @@ -159,6 +169,7 @@ Select item: (1-12): be restored, but if the directory contains subdirectories, nothing will be restored in the subdirectory unless you explicitly enter its name. + \item Item 12 allows you to cancel the restore command. \end{itemize} @@ -631,25 +642,18 @@ the problem. \index[general]{Restoring Files Can Be Slow } \addcontentsline{toc}{subsection}{Restoring Files Can Be Slow} -Restoring files is generally {\bf much} slower than backing it up for several +Restoring files is generally {\bf much} slower than backing them up for several reasons. The first is that during a backup the tape is normally already positioned and Bacula only needs to write. On the other hand, because restoring -files is done so rarely, Bacula keeps only the he start file and block on the +files is done so rarely, Bacula keeps only the start file and block on the tape for the whole job rather than on a file by file basis which would use quite a lot of space in the catalog. -Bacula versions 1.31a and older would seek to the first file on the first -tape, then sequentially search the tape for the specified files. If you were -doing a full restore, this is OK, but if you want to restore one or two files, -the process could be quite long. - -This deficiency has been corrected in version 1.32. The consequence is that Bacula will forward space to the correct file mark on the tape for the Job, then forward space to the correct block, and finally sequentially read each record until it gets to the correct one(s) for the file or files you want to restore. Once the desired files are restored, Bacula will stop reading the -tape. For restoring a small number of files, version 1.32 and greater are -hundreds of times faster than previous versions. +tape. Finally, instead of just reading a file for backup, during the restore, Bacula must create the file, and the operating system must allocate disk space for @@ -700,19 +704,19 @@ what it is now after each individual test: restore. This is a new directive and untested. \item Set ''Minimum Block Size = 512`` and ''Maximum Block Size = 512`` and try the restore. Again send me the full job report output. If you are able -to + to determine the block size your drive was previously using, you should try that size if 512 does not work. \item Try editing the restore.bsr file at the Run xxx yes/mod/no prompt before starting the restore job and remove all the VolBlock statements. -These + These are what causes Bacula to reposition the tape, and where problems occur if you have a fixed block size set for your drive. The VolFile commands also cause repositioning, but this will work regardless of the block size. \item Use bextract to extract the files you want -- it reads the Volume sequentially if you use the include list feature, or if you use a .bsr file, but remove all the VolBlock statements after the .bsr file is created (at -the + the Run yes/mod/no) prompt but before you start the restore. \end{enumerate} @@ -760,12 +764,12 @@ mark} command. The available commands are: \item [cd] The {\bf cd} command changes the current directory to the argument -specified. + specified. It operates much like the Unix {\bf cd} command. Wildcard specifications are not permitted. Note, on Windows systems, the various drives (c:, d:, ...) are treated like -a + a directory within the file tree while in the file selection mode. As a consequence, you must do a {\bf cd c:} or possibly in some cases a {\bf cd C:} (note upper case) to get down to the first directory. @@ -774,7 +778,7 @@ a \index[dir]{dir } The {\bf dir} command is similar to the {\bf ls} command, except that it prints it in long format (all details). This command can be a bit slower -than + than the {\bf ls} command because it must access the catalog database for the detailed information for each file. @@ -782,9 +786,9 @@ than \index[dir]{estimate } The {\bf estimate} command prints a summary of the total files in the tree, how many are marked to be restored, and an estimate of the number of bytes -to + to be restored. This can be useful if you are short on disk space on the -machine + machine where the files will be restored. \item [find] @@ -1005,15 +1009,18 @@ VolSessionTime=1114075126 FileIndex=1-1 \end{verbatim} \normalsize - Where we have inserted the Volume name, Volume Session Id, and Volume Session Time that - correspond to the values in the job report. We've also used a FileIndex of one, + Where we have inserted the Volume name, Volume Session Id, and Volume Session +Time that + correspond to the values in the job report. We've also used a FileIndex of +one, which will always be the case providing that there was only one file backed up in the job. The disadvantage of this bootstrap file compared to what is created when you ask for one to be written, is that there is no File and Block specified, so the restore code must search all data in the Volume to find the requested - file. A fully specified bootstrap file would have the File and Blocks specified + file. A fully specified bootstrap file would have the File and Blocks +specified as follows: \footnotesize \begin{verbatim} @@ -1042,15 +1049,20 @@ FileIndex=1-1 \footnotesize \begin{verbatim} bls: butil.c:258 Using device: "/dev/nst0" for reading. -21-Jul 18:34 bls: Ready to read from volume "DLT-22Apr05" on device "DLTDrive" (/dev/nst0). +21-Jul 18:34 bls: Ready to read from volume "DLT-22Apr05" on device "DLTDrive" +(/dev/nst0). Volume Record: File:blk=0:0 SessId=11 SessTime=1114075126 JobId=0 DataLen=164 ... -Begin Job Session Record: File:blk=118:0 SessId=11 SessTime=1114075126 JobId=7510 +Begin Job Session Record: File:blk=118:0 SessId=11 SessTime=1114075126 +JobId=7510 Job=CatalogBackup.2005-04-22_01.10.0 Date=22-Apr-2005 10:21:00 Level=F Type=B -End Job Session Record: File:blk=118:4053 SessId=11 SessTime=1114075126 JobId=7510 - Date=22-Apr-2005 10:23:06 Level=F Type=B Files=1 Bytes=210,739,395 Errors=0 Status=T +End Job Session Record: File:blk=118:4053 SessId=11 SessTime=1114075126 +JobId=7510 + Date=22-Apr-2005 10:23:06 Level=F Type=B Files=1 Bytes=210,739,395 Errors=0 +Status=T ... -21-Jul 18:34 bls: End of Volume at file 201 on device "DLTDrive" (/dev/nst0), Volume "DLT-22Apr05" +21-Jul 18:34 bls: End of Volume at file 201 on device "DLTDrive" (/dev/nst0), +Volume "DLT-22Apr05" 21-Jul 18:34 bls: End of all volumes. \end{verbatim} \normalsize @@ -1059,4 +1071,43 @@ End Job Session Record: File:blk=118:4053 SessId=11 SessTime=1114075126 JobId=75 Job Session Records, you can reconstruct a bootstrap file such as the one shown above. +\item[Problem] + How can I find where a file is stored. +\item[Solution] + Normally, it is not necessary, you just use the {\bf restore} command to +restore the + most recently saved version (menu option 5), or a version saved before a given +date (menu + option 8). If you know the JobId of the job in which it was saved, you can +use menu + option 3 to enter that JobId. + + If you would like to know the JobId where a file was saved, select restore +menu option + 2. + + You can also use the {\bf query} command to find information such as: +\footnotesize +\begin{verbatim} +*query +Available queries: + 1: List Job totals: + 2: List up to 20 places where a File is saved regardless of the directory: + 3: List where the most recent copies of a file are saved: + 4: List last 20 Full Backups for a Client: + 5: List all backups for a Client after a specified time + 6: List all backups for a Client + 7: List Volume Attributes for a selected Volume: + 8: List Volumes used by selected JobId: + 9: List Volumes to Restore All Files: + 10: List Pool Attributes for a selected Pool: + 11: List total files/bytes by Job: + 12: List total files/bytes by Volume: + 13: List Files for a selected JobId: + 14: List Jobs stored in a selected MediaId: + 15: List Jobs stored for a given Volume name: +Choose a query (1-15): +\end{verbatim} +\normalsize + \end{description} diff --git a/docs/manual/sqlite.tex b/docs/manual/sqlite.tex index d94a5683..b2bfba7f 100644 --- a/docs/manual/sqlite.tex +++ b/docs/manual/sqlite.tex @@ -19,6 +19,11 @@ location (for the moment) for SQLite is in the dependency package {\bf depkgs/sqlite-2.8.16}. Please note that the version will be updated as new versions are available and tested. +You may install and use SQLite version 3.x with Bacula by using: +{\bf ./configure \verb:--:with-sqlite3}. However, our testing indicates +that SQLite version 3.x is 4 to 10 times slower than version 2.8.16, and +consquently, we do not recommend using it. + Installing and Configuring is quite easy. \begin{enumerate} @@ -93,9 +98,12 @@ the SQLite libraries will be linked into {\bf Bacula}. \index[general]{Testing SQLite } \addcontentsline{toc}{subsection}{Testing SQLite} -As of this date (20 March 2002), we have much less ``production'' experience -using SQLite than using MySQL. That said, we should note that SQLite has -performed flawlessly for us in all our testing. +We have much less ``production'' experience +using SQLite than using MySQL. SQLite has +performed flawlessly for us in all our testing. However, +several users have reported corrupted databases while using +SQLite. For that reason, we do not recommend it for production +use. \subsection*{Re-initializing the Catalog Database} \index[general]{Database!Re-initializing the Catalog } diff --git a/docs/manual/storedconf.tex b/docs/manual/storedconf.tex index 264c8289..b74d1af9 100644 --- a/docs/manual/storedconf.tex +++ b/docs/manual/storedconf.tex @@ -330,14 +330,13 @@ specified within the Device resource are specific to the Device. \label{Autochanger} \item [Autochanger = {\it Yes|No}] - \index[sd]{Autochanger } - If {\bf Yes}, this device is an automatic tape changer, and you should also + \index[sd]{Autochanger} + If {\bf Yes}, this device belongs to an automatic tape changer, and you should also specify a {\bf Changer Device} as well as a {\bf Changer Command}. If {\bf No} (default), the volume must be manually changed. You should also have an identical directive to the - \ilink{ Storage resource}{Autochanger1} in the Director's + \ilink{Storage resource}{Autochanger1} in the Director's configuration file so that when labeling tapes you are prompted for the slot. - \item [Changer Device = {\it name-string}] \index[sd]{Changer Device } @@ -410,7 +409,7 @@ bacula-sd Alert: TapeAlert[32]: Interface: Problem with SCSI interface \normalsize \item [Drive Index = {\it number}] - \index[sd]{Drive Index } + \index[sd]{Drive Index} The {\bf Drive Index} that you specify is passed to the {\bf mtx-changer} script and is thus passed to the {\bf mtx} program. By default, the Drive Index is zero, so if you have only one drive in your autochanger, everything @@ -422,7 +421,17 @@ bacula-sd Alert: TapeAlert[32]: Interface: Problem with SCSI interface Volume on both drives at the same time. You may also need to modify the mtx-changer script to do locking so that two jobs don't attempt to use the autochanger at the same time. An example script can be found in {\bf - examples/autochangers/locking-mtx-changer}. + examples/autochangers/locking-mtx-changer}. + +\item [Autoselect = {\it Yes|No}] + \index[sd]{Autoselect} + If this directive is set to {\bf yes} (default), and the Device + belongs to an autochanger, then when the Autochanger is referenced + by the Director, this device can automatically be selected. If this + directive is set to {\bf no}, then the Device can only be referenced + by directly using the Device name in the Director. This is useful + for reserving a drive for something special such as a high priority + backup or restore operations. \item [Maximum Changer Wait = {\it time}] \index[sd]{Maximum Changer Wait } diff --git a/docs/manual/supported.tex b/docs/manual/supported.tex index 5550283f..c2ae3747 100644 --- a/docs/manual/supported.tex +++ b/docs/manual/supported.tex @@ -39,9 +39,9 @@ also runs under GNOME 1.4 but this version is deprecated and thus no longer maintained. \item The wxWidgets Console program is developed and tested with the latest stable ANSI (not Unicode) version of -\elink{wxWidgets}{http://www.wxwidgets.org/} (2.6.0). It works fine with the -Windows and GTK+-2.x version of wxWidgets, and should also works on other -platforms supported by wxWidgets. +\elink{wxWidgets}{http://www.wxwidgets.org/} (2.6.0) for Unix and Linux +systems. On Win32, we use wxWidgets version 2.4.0 compiled with Unicode +enable. It should also work on other platforms supported by wxWidgets. \item The Tray Monitor program is developed for GTK+-2.x. It needs Gnome less or equal to 2.2, KDE greater or equal to 3.1 or any window manager supporting the diff --git a/docs/manual/uploaddoc b/docs/manual/uploaddoc index 6e20d1f9..02668a12 100755 --- a/docs/manual/uploaddoc +++ b/docs/manual/uploaddoc @@ -2,13 +2,10 @@ ftp -i ftp.sectoor.de <