From 4504faab36181163bcae7b1e4a5dda1cdb2fe37b Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Mon, 12 Dec 2005 16:42:42 +0000 Subject: [PATCH] updates --- docs/developers/generaldevel.tex | 8 +- docs/developers/version.tex | 2 +- docs/home-page/donations.txt | 16 +- docs/home-page/images/1.39-wishlist-votes.png | Bin 0 -> 147760 bytes docs/home-page/inc/header.php | 98 +-- docs/home-page/index.php | 17 +- docs/home-page/pages/projects.php | 728 ++++++++++++++++++ docs/home-page/pages/vote.php | 12 + docs/manual-de/console.tex | 9 +- docs/manual-de/restore.tex | 135 ++-- docs/manual-de/rpm-faq.tex | 3 +- docs/manual-de/security.tex | 54 +- docs/manual-de/storedconf.tex | 149 ++-- docs/manual-de/version.tex | 2 +- docs/manual/console.tex | 9 +- docs/manual/restore.tex | 135 ++-- docs/manual/rpm-faq.tex | 3 +- docs/manual/security.tex | 54 +- docs/manual/storedconf.tex | 149 ++-- docs/manual/version.tex | 2 +- 20 files changed, 1285 insertions(+), 300 deletions(-) create mode 100644 docs/home-page/images/1.39-wishlist-votes.png create mode 100644 docs/home-page/pages/projects.php create mode 100644 docs/home-page/pages/vote.php diff --git a/docs/developers/generaldevel.tex b/docs/developers/generaldevel.tex index fce20d9f..aeb82d52 100644 --- a/docs/developers/generaldevel.tex +++ b/docs/developers/generaldevel.tex @@ -335,7 +335,7 @@ I expect that future release schedules will be much the same, and the number of new features will also be much the same providing that the contributions continue to come -- and they show no signs of let up :-) -\bf{Feature Requests:} \\ +{\bf Feature Requests:} \\ In addition, I would like to "formalize" the feature requests a bit. Instead of me maintaining an informal list of everything I run into @@ -359,12 +359,12 @@ reject it. If it is accepted, it will go in the "projects" file (a simple ASCII file) maintained in the main Bacula source directory. -\bf{Implementation of Feature Requests:}\\ +{\bf Implementation of Feature Requests:}\\ Any qualified developer can sign up for a project. The project must have an entry in the projects file, and the developer's name will appear in the Status field. -\bf{How Feature Requests are accepted:}\\ +{\bf How Feature Requests are accepted:}\\ Acceptance of Feature Requests depends on several things: \\ 1. feedback from users. If it is negative, the Feature Request will probably not be accepted. \\ @@ -375,7 +375,7 @@ be accepted. \\ current stategy of Bacula (for example an Feature Request that requests changing the tape to tar format would not be accepted, ...) -\bf{How Feature Requests are prioritized:}\\ +{\bf How Feature Requests are prioritized:}\\ Once an Feature Request is accepted, it needs to be implemented. If you can find a developer for it, or one signs up for implementing it, then the Feature Request becomes top priority (at least for that developer). diff --git a/docs/developers/version.tex b/docs/developers/version.tex index 5ac2412b..df53f38e 100644 --- a/docs/developers/version.tex +++ b/docs/developers/version.tex @@ -1 +1 @@ -1.38.2 (20 November 2005) +1.38.3 (09 December 2005) diff --git a/docs/home-page/donations.txt b/docs/home-page/donations.txt index e9a5ff6d..0bcf1e41 100644 --- a/docs/home-page/donations.txt +++ b/docs/home-page/donations.txt @@ -1,6 +1,6 @@ -Kern;;;2005/11/02;;;12:30 +Kern;;;2005/12/06;;;12:30 Bacula is now able to accept direct donations, and as of -02 November 2005, we have received the following: +7 December 2005, we have received the following: Amount: Donor: $ 50 Ludovic Strappazon @@ -8,16 +8,17 @@ Bacula is now able to accept direct donations, and as of $ 20 Jan Kesten $100 Anonymous $442 GDC A Kendall, Dominic Marks + $ 65 Jim Barlow -Total $682.73 After PayPal fees are deducted +Total $744.89 After PayPal fees are deducted Many thanks to these Bacula supporters. ;;; -Kern;;;2005/09/28;;;16:30 +Kern;;;2005/12/06;;;16:30 Results to date of donations to EFF for the Data Encryption project -28 October 2005 +7 December 2005 Donor: Amount: WingNET Internet $500 Timo Neuvonen $250 @@ -38,8 +39,7 @@ Additional information is available from Landon at: http://landonf.bikemonkey.org/code/bacula -Read on for details of the project, which is now partially -implemented and being worked on by Landon in the Branch-1_38-encryption -branch of the Bacula CVS. +The data encryption project is progressing nicely. Landon has now +integrated his code into the main CVS development branch. ;;; diff --git a/docs/home-page/images/1.39-wishlist-votes.png b/docs/home-page/images/1.39-wishlist-votes.png new file mode 100644 index 0000000000000000000000000000000000000000..7e1c4de3e290081cbca76fc249b00741355965ac GIT binary patch literal 147760 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 literal 0 HcmV?d00001 diff --git a/docs/home-page/inc/header.php b/docs/home-page/inc/header.php index 8c9fd42d..cc650e20 100644 --- a/docs/home-page/inc/header.php +++ b/docs/home-page/inc/header.php @@ -1,40 +1,40 @@ @@ -144,26 +144,28 @@ - +

+ diff --git a/docs/home-page/index.php b/docs/home-page/index.php index 1f7241a7..804203d8 100644 --- a/docs/home-page/index.php +++ b/docs/home-page/index.php @@ -12,15 +12,14 @@ require_once("inc/header.php"); * */ if(is_file($page_current)) { - include_once($page_current); -} -else { - printf(' -   - An ERROR occured:
-

- The page %s isn\'t available. -

', $page); + include_once($page_current); +} else { + printf(' +   + An ERROR occurred:
+

+ The page %s isn\'t available. +

', $page); } diff --git a/docs/home-page/pages/projects.php b/docs/home-page/pages/projects.php new file mode 100644 index 00000000..cb854143 --- /dev/null +++ b/docs/home-page/pages/projects.php @@ -0,0 +1,728 @@ + + + + + + +
+ +
+                
+Projects:
+                     Bacula Projects Roadmap 
+                       07 December 2005
+                    (prioritized by user vote)
+
+Summary:
+Item  1:  Implement data encryption (as opposed to comm encryption)
+Item  2:  Implement Migration that moves Jobs from one Pool to another.
+Item  3:  Accurate restoration of renamed/deleted files from
+Item  4:  Implement a Bacula GUI/management tool using Python.
+Item  5:  Implement Base jobs.
+Item  6:  Allow FD to initiate a backup
+Item  7:  Improve Bacula's tape and drive usage and cleaning management.
+Item  8:  Implement creation and maintenance of copy pools
+Item  9:  Implement new {Client}Run{Before|After}Job feature.
+Item 10:  Merge multiple backups (Synthetic Backup or Consolidation).
+Item 11:  Deletion of Disk-Based Bacula Volumes
+Item 12:  Directive/mode to backup only file changes, not entire file
+Item 13:  Multiple threads in file daemon for the same job
+Item 14:  Implement red/black binary tree routines.
+Item 15:  Add support for FileSets in user directories  CACHEDIR.TAG
+Item 16:  Implement extraction of Win32 BackupWrite data.
+Item 17:  Implement a Python interface to the Bacula catalog.
+Item 18:  Archival (removal) of User Files to Tape
+Item 19:  Add Plug-ins to the FileSet Include statements.
+Item 20:  Implement more Python events in Bacula.
+Item 21:  Quick release of FD-SD connection after backup.
+Item 22:  Permit multiple Media Types in an Autochanger
+Item 23:  Allow different autochanger definitions for one autochanger.
+Item 24:  Automatic disabling of devices
+Item 25:  Implement huge exclude list support using hashing.
+
+
+Below, you will find more information on future projects:
+
+Item  1:  Implement data encryption (as opposed to comm encryption)
+  Date:   28 October 2005
+  Origin: Sponsored by Landon and 13 contributors to EFF.
+  Status: Landon Fuller is currently implementing this.
+                  
+  What:   Currently the data that is stored on the Volume is not
+          encrypted. For confidentiality, encryption of data at
+          the File daemon level is essential. 
+          Data encryption encrypts the data in the File daemon and
+          decrypts the data in the File daemon during a restore.
+
+  Why:    Large sites require this.
+
+Item 2:   Implement Migration that moves Jobs from one Pool to another.
+  Origin: Sponsored by Riege Software International GmbH. Contact:
+          Daniel Holtkamp 
+  Date:   28 October 2005
+  Status: Partially coded in 1.37 -- much more to do. Assigned to
+          Kern.
+
+  What:   The ability to copy, move, or archive data that is on a
+          device to another device is very important. 
+
+  Why:    An ISP might want to backup to disk, but after 30 days
+          migrate the data to tape backup and delete it from
+          disk.  Bacula should be able to handle this
+          automatically.  It needs to know what was put where,
+          and when, and what to migrate -- it is a bit like
+          retention periods.  Doing so would allow space to be
+          freed up for current backups while maintaining older
+          data on tape drives.
+
+  Notes:   Riege Software have asked for the following migration
+           triggers:
+           Age of Job
+           Highwater mark (stopped by Lowwater mark?)
+                            
+  Notes:  Migration could be additionally triggered by:
+           Number of Jobs
+           Number of Volumes
+
+Item  3:  Accurate restoration of renamed/deleted files from
+          Incremental/Differential backups
+  Date:   28 November 2005
+  Origin: Martin Simmons (martin at lispworks dot com)
+  Status:
+
+  What:   When restoring a fileset for a specified date (including "most
+          recent"), Bacula should give you exactly the files and directories
+          that existed at the time of the last backup prior to that date.
+
+          Currently this only works if the last backup was a Full backup.
+          When the last backup was Incremental/Differential, files and
+          directories that have been renamed or deleted since the last Full
+          backup are not currently restored correctly.  Ditto for files with
+          extra/fewer hard links than at the time of the last Full backup.
+
+  Why:    Incremental/Differential would be much more useful if this worked.
+
+  Notes:  Item 14 (Merging of multiple backups into a single one) seems to
+          rely on this working, otherwise the merged backups will not be
+          truly equivalent to a Full backup.  
+
+          Kern: notes shortened. This can be done without the need for 
+          inodes. It is essentially the same as the current Verify job,
+          but one additional database record must be written, which does 
+          not need any database change.
+
+Item 4:   Implement a Bacula GUI/management tool using Python.
+  Origin: Kern
+  Date:   28 October 2005
+  Status: 
+
+  What:   Implement a Bacula console, and management tools
+          using Python and Qt or GTK.
+
+  Why:    Don't we already have a wxWidgets GUI?  Yes, but
+          it is written in C++ and changes to the user interface
+          must be hand tailored using C++ code. By developing
+          the user interface using Qt designer, the interface
+          can be very easily updated and most of the new Python       
+          code will be automatically created.  The user interface
+          changes become very simple, and only the new features
+          must be implement.  In addition, the code will be in
+          Python, which will give many more users easy (or easier)
+          access to making additions or modifications.
+
+ Notes:   This is currently being implemented using Python-GTK by       
+          Lucas Di Pentima 
+
+Item 5:   Implement Base jobs.
+  Date:   28 October 2005
+  Origin: Kern
+  Status: 
+  
+  What:   A base job is sort of like a Full save except that you 
+          will want the FileSet to contain only files that are
+          unlikely to change in the future (i.e.  a snapshot of
+          most of your system after installing it).  After the
+          base job has been run, when you are doing a Full save,
+          you specify one or more Base jobs to be used.  All
+          files that have been backed up in the Base job/jobs but
+          not modified will then be excluded from the backup.
+          During a restore, the Base jobs will be automatically
+          pulled in where necessary.
+
+  Why:    This is something none of the competition does, as far as
+          we know (except perhaps BackupPC, which is a Perl program that
+          saves to disk only).  It is big win for the user, it
+          makes Bacula stand out as offering a unique
+          optimization that immediately saves time and money.
+          Basically, imagine that you have 100 nearly identical
+          Windows or Linux machine containing the OS and user
+          files.  Now for the OS part, a Base job will be backed
+          up once, and rather than making 100 copies of the OS,
+          there will be only one.  If one or more of the systems
+          have some files updated, no problem, they will be
+          automatically restored.
+
+  Notes:  Huge savings in tape usage even for a single machine.
+          Will require more resources because the DIR must send
+          FD a list of files/attribs, and the FD must search the
+          list and compare it for each file to be saved.
+
+Item  6:  Allow FD to initiate a backup
+  Origin: Frank Volf (frank at deze dot org)
+  Date:   17 November 2005
+  Status:
+
+   What:  Provide some means, possibly by a restricted console that
+          allows a FD to initiate a backup, and that uses the connection
+          established by the FD to the Director for the backup so that
+          a Director that is firewalled can do the backup.
+
+   Why:   Makes backup of laptops much easier.
+
+Item  7:  Improve Bacula's tape and drive usage and cleaning management.
+  Date:   8 November 2005, November 11, 2005
+  Origin: Adam Thornton ,
+          Arno Lehmann 
+  Status:
+
+  What:   Make Bacula manage tape life cycle information, tape reuse
+          times and drive cleaning cycles.
+
+  Why:    All three parts of this project are important when operating
+          backups.
+          We need to know which tapes need replacement, and we need to
+          make sure the drives are cleaned when necessary.  While many
+          tape libraries and even autoloaders can handle all this
+          automatically, support by Bacula can be helpful for smaller
+          (older) libraries and single drives.  Limiting the number of
+          times a tape is used might prevent tape errors when using
+          tapes until the drives can't read it any more.  Also, checking
+          drive status during operation can prevent some failures (as I
+          [Arno] had to learn the hard way...)
+
+  Notes:  First, Bacula could (and even does, to some limited extent)
+          record tape and drive usage.  For tapes, the number of mounts,
+          the amount of data, and the time the tape has actually been
+          running could be recorded.  Data fields for Read and Write
+          time and Number of mounts already exist in the catalog (I'm
+          not sure if VolBytes is the sum of all bytes ever written to
+          that volume by Bacula).  This information can be important
+          when determining which media to replace.  The ability to mark
+          Volumes as "used up" after a given number of write cycles
+          should also be implemented so that a tape is never actually
+          worn out.  For the tape drives known to Bacula, similar
+          information is interesting to determine the device status and
+          expected life time: Time it's been Reading and Writing, number
+          of tape Loads / Unloads / Errors.  This information is not yet
+          recorded as far as I [Arno] know.  A new volume status would
+          be necessary for the new state, like "Used up" or "Worn out".
+          Volumes with this state could be used for restores, but not
+          for writing. These volumes should be migrated first (assuming
+          migration is implemented) and, once they are no longer needed,
+          could be moved to a Trash pool.
+
+          The next step would be to implement a drive cleaning setup.
+          Bacula already has knowledge about cleaning tapes.  Once it
+          has some information about cleaning cycles (measured in drive
+          run time, number of tapes used, or calender days, for example)
+          it can automatically execute tape cleaning (with an
+          autochanger, obviously) or ask for operator assistance loading
+          a cleaning tape.
+
+          The final step would be to implement TAPEALERT checks not only
+          when changing tapes and only sending the information to the
+          administrator, but rather checking after each tape error,
+          checking on a regular basis (for example after each tape
+          file), and also before unloading and after loading a new tape.
+          Then, depending on the drives TAPEALERT state and the known
+          drive cleaning state Bacula could automatically schedule later
+          cleaning, clean immediately, or inform the operator.
+
+          Implementing this would perhaps require another catalog change
+          and perhaps major changes in SD code and the DIR-SD protocol,
+          so I'd only consider this worth implementing if it would
+          actually be used or even needed by many people.
+
+          Implementation of these projects could happen in three distinct
+          sub-projects: Measuring Tape and Drive usage, retiring
+          volumes, and handling drive cleaning and TAPEALERTs.
+
+Item  8:  Implement creation and maintenance of copy pools
+  Date:   27 November 2005
+  Origin: David Boyes (dboyes at sinenomine dot net)
+  Status:
+
+  What:   I would like Bacula to have the capability to write copies
+          of backed-up data on multiple physical volumes selected
+          from different pools without transferring the data
+          multiple times, and to accept any of the copy volumes
+          as valid for restore.
+
+  Why:    In many cases, businesses are required to keep offsite
+          copies of backup volumes, or just wish for simple
+          protection against a human operator dropping a storage
+          volume and damaging it. The ability to generate multiple
+          volumes in the course of a single backup job allows
+          customers to simple check out one copy and send it
+          offsite, marking it as out of changer or otherwise
+          unavailable. Currently, the library and magazine
+          management capability in Bacula does not make this process
+          simple.
+
+          Restores would use the copy of the data on the first
+          available volume, in order of copy pool chain definition.
+
+          This is also a major scalability issue -- as the number of
+          clients increases beyond several thousand, and the volume
+          of data increases, transferring the data multiple times to
+          produce additional copies of the backups will become
+          physically impossible due to transfer speed
+          issues. Generating multiple copies at server side will
+          become the only practical option. 
+
+  How:    I suspect that this will require adding a multiplexing
+          SD that appears to be a SD to a specific FD, but 1-n FDs
+          to the specific back end SDs managing the primary and copy
+          pools.  Storage pools will also need to acquire parameters
+          to define the pools to be used for copies. 
+
+  Notes:  I would commit some of my developers' time if we can agree
+          on the design and behavior. 
+
+Item  9:  Implement new {Client}Run{Before|After}Job feature.
+  Date:   26 September 2005
+  Origin: Phil Stracchino 
+  Status: 
+
+  What:   Some time ago, there was a discussion of RunAfterJob and
+          ClientRunAfterJob, and the fact that they do not run after failed
+          jobs.  At the time, there was a suggestion to add a
+          RunAfterFailedJob directive (and, presumably, a matching
+          ClientRunAfterFailedJob directive), but to my knowledge these
+          were never implemented.
+
+          An alternate way of approaching the problem has just occurred to
+          me.  Suppose the RunBeforeJob and RunAfterJob directives were
+          expanded in a manner something like this example:
+
+          RunBeforeJob {
+              Command = "/opt/bacula/etc/checkhost %c"
+              RunsOnClient = No
+              RunsAtJobLevels = All       # All, Full, Diff, Inc
+              AbortJobOnError = Yes
+          }
+          RunBeforeJob {
+              Command = c:/bacula/systemstate.bat
+              RunsOnClient = yes
+              RunsAtJobLevels = All       # All, Full, Diff, Inc
+              AbortJobOnError = No
+          }
+
+          RunAfterJob {
+              Command = c:/bacula/deletestatefile.bat
+              RunsOnClient = Yes
+              RunsAtJobLevels = All       # All, Full, Diff, Inc
+              RunsOnSuccess = Yes
+              RunsOnFailure = Yes
+          }
+          RunAfterJob {
+              Command = c:/bacula/somethingelse.bat
+              RunsOnClient = Yes
+              RunsAtJobLevels = All
+              RunsOnSuccess = No
+              RunsOnFailure = Yes
+          }
+          RunAfterJob {
+              Command = "/opt/bacula/etc/checkhost -v %c"
+              RunsOnClient = No
+              RunsAtJobLevels = All
+              RunsOnSuccess = No
+              RunsOnFailure = Yes
+          }
+
+
+  Why:    It would be a significant change to the structure of the
+          directives, but allows for a lot more flexibility, including
+          RunAfter commands that will run regardless of whether the job
+          succeeds, or RunBefore tasks that still allow the job to run even
+          if that specific RunBefore fails.
+
+  Notes:  By Kern: I would prefer to have a single new Resource called
+          RunScript. More notes from Phil:
+
+            RunBeforeJob = yes|no
+            RunAfterJob = yes|no
+            RunsAtJobLevels = All|Full|Diff|Inc
+
+          The AbortJobOnError, RunsOnSuccess and RunsOnFailure directives
+          could be optional, and possibly RunsWhen as well.
+
+          AbortJobOnError would be ignored unless RunsWhen was set to Before
+          (or RunsBefore Job set to Yes), and would default to Yes if
+          omitted.  If AbortJobOnError was set to No, failure of the script
+          would still generate a warning.
+
+          RunsOnSuccess would be ignored unless RunsWhen was set to After
+          (or RunsBeforeJob set to No), and default to Yes.
+
+          RunsOnFailure would be ignored unless RunsWhen was set to After,
+          and default to No.
+
+          Allow having the before/after status on the script command
+          line so that the same script can be used both before/after.
+          David Boyes.
+
+Item 10:  Merge multiple backups (Synthetic Backup or Consolidation).
+  Origin: Marc Cousin and Eric Bollengier 
+  Date:   15 November 2005
+  Status: Depends on first implementing project Item 1 (Migration).
+
+  What:   A merged backup is a backup made without connecting to the Client.
+          It would be a Merge of existing backups into a single backup.
+          In effect, it is like a restore but to the backup medium.
+
+          For instance, say that last Sunday we made a full backup.  Then
+          all week long, we created incremental backups, in order to do
+          them fast.  Now comes Sunday again, and we need another full.
+          The merged backup makes it possible to do instead an incremental
+          backup (during the night for instance), and then create a merged
+          backup during the day, by using the full and incrementals from
+          the week.  The merged backup will be exactly like a full made
+          Sunday night on the tape, but the production interruption on the
+          Client will be minimal, as the Client will only have to send
+          incrementals.
+
+          In fact, if it's done correctly, you could merge all the
+          Incrementals into single Incremental, or all the Incrementals
+          and the last Differential into a new Differential, or the Full,
+          last differential and all the Incrementals into a new Full
+          backup.  And there is no need to involve the Client.
+
+  Why:    The benefit is that :
+          - the Client just does an incremental ;
+          - the merged backup on tape is just as a single full backup,
+            and can be restored very fast.
+
+          This is also a way of reducing the backup data since the old
+          data can then be pruned (or not) from the catalog, possibly
+          allowing older volumes to be recycled
+
+Item 11:  Deletion of Disk-Based Bacula Volumes
+  Date:   Nov 25, 2005
+  Origin: Ross Boylan  (edited
+          by Kern)
+  Status:         
+
+   What:  Provide a way for Bacula to automatically remove Volumes
+          from the filesystem, or optionally to truncate them.
+          Obviously, the Volume must be pruned prior removal.
+
+  Why:    This would allow users more control over their Volumes and
+          prevent disk based volumes from consuming too much space.
+
+  Notes:  The following two directives might do the trick:
+
+          Volume Data Retention = 
+ +
+ + diff --git a/docs/home-page/pages/vote.php b/docs/home-page/pages/vote.php new file mode 100644 index 00000000..db055aae --- /dev/null +++ b/docs/home-page/pages/vote.php @@ -0,0 +1,12 @@ + + + + + + +
+

+ +

+ + diff --git a/docs/manual-de/console.tex b/docs/manual-de/console.tex index 6b68dfc6..cfb28dd8 100644 --- a/docs/manual-de/console.tex +++ b/docs/manual-de/console.tex @@ -807,7 +807,8 @@ setdebug level=nn [trace=0/1 client=\lt{}client-name\gt{} | dir | director | running jobs. The full form of this command is: status [all | dir=\lt{}dir-name\gt{} | director | - client=\lt{}client-name\gt{} | storage=\lt{}storage-name\gt{}] + client=\lt{}client-name\gt{} | storage=\lt{}storage-name\gt{} | + days=nnn] If you do a {\bf status dir}, the console will list any currently running jobs, a summary of all jobs scheduled to be run in the next 24 @@ -842,6 +843,12 @@ status [all | dir=\lt{}dir-name\gt{} | director | JobId 2508 (MatouVerify) is waiting because only one job can run at a time, hence it is simply "waiting execution" + If you do a {\bf status dir}, it will by default list all jobs + that are scheduled in the next two days. If you wish to see + the jobs that are scheduled in the next 3 days (e.g. on Friday + you want to see wat tapes are scheduled to be used on Monday), you + can add the {\bf days=3} option. + \item [unmount] \index[console]{unmount} This command causes the indicated Bacula Storage daemon to unmount the diff --git a/docs/manual-de/restore.tex b/docs/manual-de/restore.tex index 79487cf9..4443d4c0 100644 --- a/docs/manual-de/restore.tex +++ b/docs/manual-de/restore.tex @@ -898,10 +898,6 @@ problems that can come up making restoring more difficult. I'll try to provide a few ideas how to get out of these problem situations. \begin{description} -\item [Problem] - Your catalog has been damaged and Bacula either doesn't work or prints - errors. -\item[Solution] For SQLite, use the vacuum command to try to fix the database. For either MySQL or PostgreSQL, see the vendor's documentation. They have specific tools that check and repair databases. @@ -943,27 +939,25 @@ Priority: 10 OK to run? (yes/mod/no): \end{verbatim} \normalsize - A number of the items will be different in your case. What you want - to do is: to use the mod option to change the Bootstrap to point to - your saved bootstrap file; and to make sure all the other items - such as Client, Storage, Catalog, and Where are correct. The - FileSet is not used when you specify a bootstrap file. - Once you have set all the correct values, run the Job and - it will restore the backup of your database. You will then - need to follow the instructions for your database type to - recreate the database from the ASCII backup file. + A number of the items will be different in your case. What you want to + do is: to use the mod option to change the Bootstrap to point to your + saved bootstrap file; and to make sure all the other items such as + Client, Storage, Catalog, and Where are correct. The FileSet is not + used when you specify a bootstrap file. Once you have set all the + correct values, run the Job and it will restore the backup of your + database. You will then need to follow the instructions for your + database type to recreate the database from the ASCII backup file. \item[Solution] - If you did save your database but did not make a bootstrap file, then - recovering the database - is more difficult. You will probably need to use bextract to extract the - backup copy. - First you should locate the listing of the job report from the last catalog - backup. It has important information that will allow you to quickly find - your database file. For example, in the job report for the CatalogBackup - shown below, the critical items are the Volume name(s), the Volume Session Id - and the Volume Session Time. If you know those, you can easily restore your + If you did save your database but did not make a bootstrap file, then + recovering the database is more difficult. You will probably need to + use bextract to extract the backup copy. First you should locate the + listing of the job report from the last catalog backup. It has + important information that will allow you to quickly find your database + file. For example, in the job report for the CatalogBackup shown below, + the critical items are the Volume name(s), the Volume Session Id and the + Volume Session Time. If you know those, you can easily restore your Catalog. \footnotesize \begin{verbatim} @@ -1010,19 +1004,16 @@ 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, - which will always be the case providing that there was only one file - backed up in the job. + 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 - as follows: + 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 as follows: \footnotesize \begin{verbatim} Volume="DLT-22Apr05" @@ -1033,6 +1024,67 @@ VolBlock=0-4053 FileIndex=1-1 \end{verbatim} \normalsize + +\item [Problem] + I try to restore the last known good full backup by specifying + item 3 on the restore menu then the JobId to restore. Bacula + then reports: + +\footnotesize +\begin{verbatim} + 1 Job 0 Files +\end{verbatim} +\normalsize + and restores nothing. +\item[Solution] + Most likely the File records were pruned from the database either due + to the File Retention period expiring or by explicitly purging the + Job. By using the "llist jobid=nn" command, you can obtain all the + important information about the job: +\footnotesize +\begin{verbatim} +llist jobid=120 + JobId: 120 + Job: save.2005-12-05_18.27.33 + Job.Name: save + PurgedFiles: 0 + Type: B + Level: F + Job.ClientId: 1 + Client.Name: Rufus + JobStatus: T + SchedTime: 2005-12-05 18:27:32 + StartTime: 2005-12-05 18:27:35 + EndTime: 2005-12-05 18:27:37 + JobTDate: 1133803657 + VolSessionId: 1 + VolSessionTime: 1133803624 + JobFiles: 236 + JobErrors: 0 + JobMissingFiles: 0 + Job.PoolId: 4 + Pool.Name: Full + Job.FileSetId: 1 + FileSet.FileSet: BackupSet +\end{verbatim} +\normalsize + + Then you can find the Volume(s) used by doing: +\footnotesize +\begin{verbatim} +sql +select VolumeName from JobMedia,Media where JobId=1 and JobMedia.MediaId=Media.MediaId; +\end{verbatim} +\normalsize + Finally, you can create a bootstrap file as described in the previous + problem above using this information. + + If you are using Bacula version 1.38.0 or greater, when you select + item 3 from the menu and enter the JobId, it will ask you if + you would like to restore all the files in the job, and it will + collect the above information and write the bootstrap file for + you. + \item [Problem] You don't have a bootstrap file, and you don't have the Job report for the backup of your database, but you did backup the database, and you @@ -1076,16 +1128,12 @@ Volume "DLT-22Apr05" 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. + 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. + 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 @@ -1111,4 +1159,5 @@ Choose a query (1-15): \end{verbatim} \normalsize + \end{description} diff --git a/docs/manual-de/rpm-faq.tex b/docs/manual-de/rpm-faq.tex index ead5534a..1a68b3a5 100644 --- a/docs/manual-de/rpm-faq.tex +++ b/docs/manual-de/rpm-faq.tex @@ -192,12 +192,14 @@ The spec file currently supports building on the following platforms: \footnotesize \begin{verbatim} # RedHat builds +--define "build_rh7 1" --define "build_rh8 1" --define "build_rh9 1" # Fedora Core build --define "build_fc1 1" --define "build_fc3 1" +--define "build_fc4 1" # Whitebox Enterprise build --define "build_wb3 1" @@ -231,4 +233,3 @@ Sqlite support: \end{verbatim} \normalsize - diff --git a/docs/manual-de/security.tex b/docs/manual-de/security.tex index e48ab19e..3fd41a48 100644 --- a/docs/manual-de/security.tex +++ b/docs/manual-de/security.tex @@ -29,8 +29,8 @@ \item Currently all data that is sent across the network is unencrypted. As a consequence, unless you use {\bf ssh} or {\bf stunnel} for port forwarding, it is not recommended to do a backup across an insecure network (e.g. the -Internet). In a future version, we plan to have {\bf ssl} encryption -built-in. + Internet). In a future version, we plan to have {\bf ssl} encryption + built-in. \item You should ensure that the Bacula working directories are readable and writable only by the Bacula daemons. \item If you are using {\bf MySQL} it is not necessary for it to run with @@ -46,12 +46,52 @@ built-in. the respective daemon configuration files. \end{itemize} -\label{wrappers} -\subsection*{Configuring and Testing TCP Wrappers with Bacula} -\index[general]{Configuring and Testing TCP Wrappers with Bacula } -\addcontentsline{toc}{subsection}{Configuring and Testing TCP Wrappers with -Bacula} +\subsection*{Backward Compatibility} +\index[general]{Backward Compatibility} +\addcontentsline{toc}{subsection}{Backward Compatibility} +One of the major goals of Bacula is to ensure that you can restore +tapes (I'll use the word tape to include disk Volumes) that you wrote years +ago. This means that each new version of Bacula should be able to read old +format tapes. The first problem you will have is to ensure that the +hardware is still working some years down the road, and the second +problem will be to ensure that the media will still be good, then +your OS must be able to interface to the device, and finally Bacula +must be able to recogize old formats. All the problems except the +last are ones that we cannot solve, but by careful planning you can. + +Since the very beginning of Bacula (January 2000) until today (December +2005), there have been two major Bacula tape formats. The second format +was introduced in version 1.27 in November of 2002, and it has not +changed since then. In principle, Bacula can still read the original +format, but I haven't tried it lately so who knows ... + +Though the tape format is fixed, the kinds of data that we can put on the +tapes are extensible, and that is how we added new features +such as ACLs, Win32 data, encrypted data, ... Obviously, an older +version of Bacula would not know how to read these newer data streams, +but each newer version of Bacula should know how to read all the +older streams. + +If you want to be 100% sure that you can read old tapes, you +should: + +1. Try reading old tapes from time to time -- e.g. at least once +a year. + +2. Keep statically linked copies of every version of Bacula that you use +in production then if for some reason, we botch up old tape compatibility, you +can always pull out an old copy of Bacula ... + +The second point is probably overkill but if you want to be sure, it may +save you someday. + + + +\label{wrappers} +subsection*{Configuring and Testing TCP Wrappers} +index[general]{Configuring and Testing TCP Wrappers} +addcontentsline{toc}{subsection}{Configuring and Testing TCP Wrappers} TCP Wrappers are implemented if you turn them on when configuring ({\bf ./configure \verb:--:with-libwrap}). With this code enabled, you may control who may diff --git a/docs/manual-de/storedconf.tex b/docs/manual-de/storedconf.tex index 447b5719..435d9c40 100644 --- a/docs/manual-de/storedconf.tex +++ b/docs/manual-de/storedconf.tex @@ -438,26 +438,48 @@ bacula-sd Alert: TapeAlert[32]: Interface: Problem with SCSI interface 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 } - This directive specifies the maximum time for Bacula to wait for an - autochanger to change the volume. If this time is exceeded, Bacula will - invalidate the Volume slot number stored in the catalog and try again. If no - additional changer volumes exist, Bacula will ask the operator to intervene. - The default time out is 5 minutes. +\item [Maximum Changer Wait = {\it seconds}] + \index[sd]{Maximum Changer Wait} + This directive specifies the maximum time in seconds for Bacula to wait + for an autochanger to change the volume. If this time is exceeded, + Bacula will invalidate the Volume slot number stored in the catalog and + try again. If no additional changer volumes exist, Bacula will ask the + operator to intervene. The default is 5 minutes. + + Please note that if you want to set your changer wait time to + 10 minutes, you must specify: + +\begin{verbatim} +Maximum Changer Wait = 600 +\end{verbatim} + + This directive will not accept qualifiers (such as "minutes"). + +\item [Maximum Rewind Wait = {\it seconds}] + \index[sd]{Maximum Rewind Wait} + This directive specifies the maximum time in seconds for Bacula to wait + for a rewind before timing out. If this time is exceeded, + Bacula will cancel the job. The default is 5 minutes. + +\item [Maximum Open Wait = {\it seconds}] + \index[sd]{Maximum Open Wait} + This directive specifies the maximum time in seconds for Bacula to wait + for a open before timing out. If this time is exceeded, + Bacula will cancel the job. The default is 5 minutes. \item [Always Open = {\it Yes|No}] \index[sd]{Always Open } - If {\bf Yes} (default), Bacula will always keep the device open unless - specifically {\bf unmounted} by the Console program. This permits Bacula to - ensure that the tape drive is always available. If you set {\bf AlwaysOpen} - to {\bf no} {\bf Bacula} will only open the drive when necessary, and at the - end of the Job if no other Jobs are using the drive, it will be freed. The - next time Bacula wants to append to a tape on a drive that was freed, Bacula - must rewind the tape and position to the end. To avoid unnecessary tape positioning - and to minimize unnecessary operator intervention, it is highly recommended that - {\bf Always Open = yes}. This also ensures that the drive is available when - Bacula needs it. + If {\bf Yes} (default), Bacula will always keep the device open unless + specifically {\bf unmounted} by the Console program. This permits + Bacula to ensure that the tape drive is always available. If you set + {\bf AlwaysOpen} to {\bf no} {\bf Bacula} will only open the drive when + necessary, and at the end of the Job if no other Jobs are using the + drive, it will be freed. The next time Bacula wants to append to a tape + on a drive that was freed, Bacula must rewind the tape and position to + the end. To avoid unnecessary tape positioning and to minimize + unnecessary operator intervention, it is highly recommended that {\bf + Always Open = yes}. This also ensures that the drive is available when + Bacula needs it. If you have {\bf Always Open = yes} (recommended) and you want to use the drive for something else, simply use the {\bf unmount} command in the Console @@ -503,12 +525,13 @@ bacula-sd Alert: TapeAlert[32]: Interface: Problem with SCSI interface the drive on the next poll and automatically continue with the backup. Please see above more more details. -\item [Maximum Open Wait = {\it time}] +\item [Maximum Open Wait = {\it seconds}] \index[sd]{Maximum Open Wait } - This directive specifies the maximum amount of time that Bacula will wait for - a device that is busy. The default is 5 minutes. If the device cannot be - obtained, the current Job will be terminated in error. Bacula will re-attempt - to open the drive the next time a Job starts that needs the the drive. + This directive specifies the maximum amount of time in seconds that + Bacula will wait for a device that is busy. The default is 5 minutes. + If the device cannot be obtained, the current Job will be terminated in + error. Bacula will re-attempt to open the drive the next time a Job + starts that needs the the drive. \item [Removable media = {\it Yes|No}] \index[sd]{Removable media } @@ -524,22 +547,22 @@ bacula-sd Alert: TapeAlert[32]: Interface: Problem with SCSI interface \item [Minimum block size = {\it size-in-bytes}] \index[sd]{Minimum block size } - On most modern tape drives, you will not need or wamt to specify this directive, and - if you do so, it will be to make Bacula use fixed block sizes. This - statement applies only to non-random access devices (e.g. tape drives). - Blocks written by the storage daemon to a non-random archive device will - never be smaller than the given {\bf size-in-bytes}. The Storage daemon will - attempt to efficiently fill blocks with data received from active sessions - but will, if necessary, add padding to a block to achieve the required - minimum size. + On most modern tape drives, you will not need or wamt to specify this + directive, and if you do so, it will be to make Bacula use fixed block + sizes. This statement applies only to non-random access devices (e.g. + tape drives). Blocks written by the storage daemon to a non-random + archive device will never be smaller than the given {\bf size-in-bytes}. + The Storage daemon will attempt to efficiently fill blocks with data + received from active sessions but will, if necessary, add padding to a + block to achieve the required minimum size. - To force the block size to be fixed, as is the case for some non-random - access devices (tape drives), set the {\bf Minimum block size} and the {\bf - Maximum block size} to the same value (zero included). The default is that - both the minimum and maximum block size are zero and the default block size - is 64,512 bytes. If you wish the block size to be fixed and different from - the default, specify the same value for both {\bf Minimum block size} and - {\bf Maximum block size}. + To force the block size to be fixed, as is the case for some non-random + access devices (tape drives), set the {\bf Minimum block size} and the + {\bf Maximum block size} to the same value (zero included). The default + is that both the minimum and maximum block size are zero and the default + block size is 64,512 bytes. If you wish the block size to be fixed and + different from the default, specify the same value for both {\bf Minimum + block size} and {\bf Maximum block size}. For example, suppose you want a fixed block size of 100K bytes, then you would specify: @@ -573,17 +596,18 @@ bacula-sd Alert: TapeAlert[32]: Interface: Problem with SCSI interface \item [Maximum block size = {\it size-in-bytes}] \index[sd]{Maximum block size } - On most modern tape drives, you will not need to specify this directive. If - you do so, it will most likely be to use fixed block sizes (see Minimum block - size above). The Storage daemon will aways attempt to write blocks of the - specified {\bf size-in-bytes} to the archive device. As a consequence, this - statement specifies both the default block size and the maximum block size. - The size written never exceed the given {\bf size-in-bytes}. If adding data - to a block would cause it to exceed the given maximum size, the block will be - written to the archive device, and the new data will begin a new block. + On most modern tape drives, you will not need to specify this directive. + If you do so, it will most likely be to use fixed block sizes (see + Minimum block size above). The Storage daemon will aways attempt to + write blocks of the specified {\bf size-in-bytes} to the archive device. + As a consequence, this statement specifies both the default block size + and the maximum block size. The size written never exceed the given + {\bf size-in-bytes}. If adding data to a block would cause it to exceed + the given maximum size, the block will be written to the archive device, + and the new data will begin a new block. - If no value is specified or zero is specified, the Storage daemon will use a - default block size of 64,512 bytes (126 * 512). + If no value is specified or zero is specified, the Storage daemon will + use a default block size of 64,512 bytes (126 * 512). \item [Hardware End of Medium = {\it Yes|No}] \index[sd]{Hardware End of Medium } @@ -705,24 +729,25 @@ default, Bacula will only write one end of file to terminate the tape. \item [Maximum Volume Size = {\it size}] \index[sd]{Maximum Volume Size } - No more than {\bf size} bytes will be written onto a given volume on the - archive device. This directive is used mainly in testing Bacula to simulate a - small Volume. It can also be useful if you wish to limit the size of a File - Volume to say less than 2GB of data. In some rare cases of really antiquated - tape drives that do not properly indicate when the end of a tape is reached - during writing (though I have read about such drives, I have never personally - encountered one). Please note, this directive is deprecated (being phased - out) in favor of the {\bf Maximum Volume Bytes} defined in the Director's - configuration file. + No more than {\bf size} bytes will be written onto a given volume on the + archive device. This directive is used mainly in testing Bacula to + simulate a small Volume. It can also be useful if you wish to limit the + size of a File Volume to say less than 2GB of data. In some rare cases + of really antiquated tape drives that do not properly indicate when the + end of a tape is reached during writing (though I have read about such + drives, I have never personally encountered one). Please note, this + directive is deprecated (being phased out) in favor of the {\bf Maximum + Volume Bytes} defined in the Director's configuration file. \item [Maximum File Size = {\it size}] \index[sd]{Maximum File Size } - No more than {\bf size} bytes will be written into a given logical file on - the volume. Once this size is reached, an end of file mark is written on the - volume and subsequent data are written into the next file. Breaking long - sequences of data blocks with file marks permits quicker positioning to the - start of a given stream of data and can improve recovery from read errors on - the volume. The default is one Gigabyte. + No more than {\bf size} bytes will be written into a given logical file + on the volume. Once this size is reached, an end of file mark is + written on the volume and subsequent data are written into the next + file. Breaking long sequences of data blocks with file marks permits + quicker positioning to the start of a given stream of data and can + improve recovery from read errors on the volume. The default is one + Gigabyte. \item [Block Positioning = {\it yes|no}] \index[sd]{Block Positioning } diff --git a/docs/manual-de/version.tex b/docs/manual-de/version.tex index 2b9ec090..77539458 100644 --- a/docs/manual-de/version.tex +++ b/docs/manual-de/version.tex @@ -1 +1 @@ -1.38.3 (27 November 2005) +1.38.3 (11 December 2005) diff --git a/docs/manual/console.tex b/docs/manual/console.tex index 6b68dfc6..cfb28dd8 100644 --- a/docs/manual/console.tex +++ b/docs/manual/console.tex @@ -807,7 +807,8 @@ setdebug level=nn [trace=0/1 client=\lt{}client-name\gt{} | dir | director | running jobs. The full form of this command is: status [all | dir=\lt{}dir-name\gt{} | director | - client=\lt{}client-name\gt{} | storage=\lt{}storage-name\gt{}] + client=\lt{}client-name\gt{} | storage=\lt{}storage-name\gt{} | + days=nnn] If you do a {\bf status dir}, the console will list any currently running jobs, a summary of all jobs scheduled to be run in the next 24 @@ -842,6 +843,12 @@ status [all | dir=\lt{}dir-name\gt{} | director | JobId 2508 (MatouVerify) is waiting because only one job can run at a time, hence it is simply "waiting execution" + If you do a {\bf status dir}, it will by default list all jobs + that are scheduled in the next two days. If you wish to see + the jobs that are scheduled in the next 3 days (e.g. on Friday + you want to see wat tapes are scheduled to be used on Monday), you + can add the {\bf days=3} option. + \item [unmount] \index[console]{unmount} This command causes the indicated Bacula Storage daemon to unmount the diff --git a/docs/manual/restore.tex b/docs/manual/restore.tex index 79487cf9..4443d4c0 100644 --- a/docs/manual/restore.tex +++ b/docs/manual/restore.tex @@ -898,10 +898,6 @@ problems that can come up making restoring more difficult. I'll try to provide a few ideas how to get out of these problem situations. \begin{description} -\item [Problem] - Your catalog has been damaged and Bacula either doesn't work or prints - errors. -\item[Solution] For SQLite, use the vacuum command to try to fix the database. For either MySQL or PostgreSQL, see the vendor's documentation. They have specific tools that check and repair databases. @@ -943,27 +939,25 @@ Priority: 10 OK to run? (yes/mod/no): \end{verbatim} \normalsize - A number of the items will be different in your case. What you want - to do is: to use the mod option to change the Bootstrap to point to - your saved bootstrap file; and to make sure all the other items - such as Client, Storage, Catalog, and Where are correct. The - FileSet is not used when you specify a bootstrap file. - Once you have set all the correct values, run the Job and - it will restore the backup of your database. You will then - need to follow the instructions for your database type to - recreate the database from the ASCII backup file. + A number of the items will be different in your case. What you want to + do is: to use the mod option to change the Bootstrap to point to your + saved bootstrap file; and to make sure all the other items such as + Client, Storage, Catalog, and Where are correct. The FileSet is not + used when you specify a bootstrap file. Once you have set all the + correct values, run the Job and it will restore the backup of your + database. You will then need to follow the instructions for your + database type to recreate the database from the ASCII backup file. \item[Solution] - If you did save your database but did not make a bootstrap file, then - recovering the database - is more difficult. You will probably need to use bextract to extract the - backup copy. - First you should locate the listing of the job report from the last catalog - backup. It has important information that will allow you to quickly find - your database file. For example, in the job report for the CatalogBackup - shown below, the critical items are the Volume name(s), the Volume Session Id - and the Volume Session Time. If you know those, you can easily restore your + If you did save your database but did not make a bootstrap file, then + recovering the database is more difficult. You will probably need to + use bextract to extract the backup copy. First you should locate the + listing of the job report from the last catalog backup. It has + important information that will allow you to quickly find your database + file. For example, in the job report for the CatalogBackup shown below, + the critical items are the Volume name(s), the Volume Session Id and the + Volume Session Time. If you know those, you can easily restore your Catalog. \footnotesize \begin{verbatim} @@ -1010,19 +1004,16 @@ 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, - which will always be the case providing that there was only one file - backed up in the job. + 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 - as follows: + 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 as follows: \footnotesize \begin{verbatim} Volume="DLT-22Apr05" @@ -1033,6 +1024,67 @@ VolBlock=0-4053 FileIndex=1-1 \end{verbatim} \normalsize + +\item [Problem] + I try to restore the last known good full backup by specifying + item 3 on the restore menu then the JobId to restore. Bacula + then reports: + +\footnotesize +\begin{verbatim} + 1 Job 0 Files +\end{verbatim} +\normalsize + and restores nothing. +\item[Solution] + Most likely the File records were pruned from the database either due + to the File Retention period expiring or by explicitly purging the + Job. By using the "llist jobid=nn" command, you can obtain all the + important information about the job: +\footnotesize +\begin{verbatim} +llist jobid=120 + JobId: 120 + Job: save.2005-12-05_18.27.33 + Job.Name: save + PurgedFiles: 0 + Type: B + Level: F + Job.ClientId: 1 + Client.Name: Rufus + JobStatus: T + SchedTime: 2005-12-05 18:27:32 + StartTime: 2005-12-05 18:27:35 + EndTime: 2005-12-05 18:27:37 + JobTDate: 1133803657 + VolSessionId: 1 + VolSessionTime: 1133803624 + JobFiles: 236 + JobErrors: 0 + JobMissingFiles: 0 + Job.PoolId: 4 + Pool.Name: Full + Job.FileSetId: 1 + FileSet.FileSet: BackupSet +\end{verbatim} +\normalsize + + Then you can find the Volume(s) used by doing: +\footnotesize +\begin{verbatim} +sql +select VolumeName from JobMedia,Media where JobId=1 and JobMedia.MediaId=Media.MediaId; +\end{verbatim} +\normalsize + Finally, you can create a bootstrap file as described in the previous + problem above using this information. + + If you are using Bacula version 1.38.0 or greater, when you select + item 3 from the menu and enter the JobId, it will ask you if + you would like to restore all the files in the job, and it will + collect the above information and write the bootstrap file for + you. + \item [Problem] You don't have a bootstrap file, and you don't have the Job report for the backup of your database, but you did backup the database, and you @@ -1076,16 +1128,12 @@ Volume "DLT-22Apr05" 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. + 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. + 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 @@ -1111,4 +1159,5 @@ Choose a query (1-15): \end{verbatim} \normalsize + \end{description} diff --git a/docs/manual/rpm-faq.tex b/docs/manual/rpm-faq.tex index ead5534a..1a68b3a5 100644 --- a/docs/manual/rpm-faq.tex +++ b/docs/manual/rpm-faq.tex @@ -192,12 +192,14 @@ The spec file currently supports building on the following platforms: \footnotesize \begin{verbatim} # RedHat builds +--define "build_rh7 1" --define "build_rh8 1" --define "build_rh9 1" # Fedora Core build --define "build_fc1 1" --define "build_fc3 1" +--define "build_fc4 1" # Whitebox Enterprise build --define "build_wb3 1" @@ -231,4 +233,3 @@ Sqlite support: \end{verbatim} \normalsize - diff --git a/docs/manual/security.tex b/docs/manual/security.tex index e48ab19e..3fd41a48 100644 --- a/docs/manual/security.tex +++ b/docs/manual/security.tex @@ -29,8 +29,8 @@ \item Currently all data that is sent across the network is unencrypted. As a consequence, unless you use {\bf ssh} or {\bf stunnel} for port forwarding, it is not recommended to do a backup across an insecure network (e.g. the -Internet). In a future version, we plan to have {\bf ssl} encryption -built-in. + Internet). In a future version, we plan to have {\bf ssl} encryption + built-in. \item You should ensure that the Bacula working directories are readable and writable only by the Bacula daemons. \item If you are using {\bf MySQL} it is not necessary for it to run with @@ -46,12 +46,52 @@ built-in. the respective daemon configuration files. \end{itemize} -\label{wrappers} -\subsection*{Configuring and Testing TCP Wrappers with Bacula} -\index[general]{Configuring and Testing TCP Wrappers with Bacula } -\addcontentsline{toc}{subsection}{Configuring and Testing TCP Wrappers with -Bacula} +\subsection*{Backward Compatibility} +\index[general]{Backward Compatibility} +\addcontentsline{toc}{subsection}{Backward Compatibility} +One of the major goals of Bacula is to ensure that you can restore +tapes (I'll use the word tape to include disk Volumes) that you wrote years +ago. This means that each new version of Bacula should be able to read old +format tapes. The first problem you will have is to ensure that the +hardware is still working some years down the road, and the second +problem will be to ensure that the media will still be good, then +your OS must be able to interface to the device, and finally Bacula +must be able to recogize old formats. All the problems except the +last are ones that we cannot solve, but by careful planning you can. + +Since the very beginning of Bacula (January 2000) until today (December +2005), there have been two major Bacula tape formats. The second format +was introduced in version 1.27 in November of 2002, and it has not +changed since then. In principle, Bacula can still read the original +format, but I haven't tried it lately so who knows ... + +Though the tape format is fixed, the kinds of data that we can put on the +tapes are extensible, and that is how we added new features +such as ACLs, Win32 data, encrypted data, ... Obviously, an older +version of Bacula would not know how to read these newer data streams, +but each newer version of Bacula should know how to read all the +older streams. + +If you want to be 100% sure that you can read old tapes, you +should: + +1. Try reading old tapes from time to time -- e.g. at least once +a year. + +2. Keep statically linked copies of every version of Bacula that you use +in production then if for some reason, we botch up old tape compatibility, you +can always pull out an old copy of Bacula ... + +The second point is probably overkill but if you want to be sure, it may +save you someday. + + + +\label{wrappers} +subsection*{Configuring and Testing TCP Wrappers} +index[general]{Configuring and Testing TCP Wrappers} +addcontentsline{toc}{subsection}{Configuring and Testing TCP Wrappers} TCP Wrappers are implemented if you turn them on when configuring ({\bf ./configure \verb:--:with-libwrap}). With this code enabled, you may control who may diff --git a/docs/manual/storedconf.tex b/docs/manual/storedconf.tex index 447b5719..435d9c40 100644 --- a/docs/manual/storedconf.tex +++ b/docs/manual/storedconf.tex @@ -438,26 +438,48 @@ bacula-sd Alert: TapeAlert[32]: Interface: Problem with SCSI interface 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 } - This directive specifies the maximum time for Bacula to wait for an - autochanger to change the volume. If this time is exceeded, Bacula will - invalidate the Volume slot number stored in the catalog and try again. If no - additional changer volumes exist, Bacula will ask the operator to intervene. - The default time out is 5 minutes. +\item [Maximum Changer Wait = {\it seconds}] + \index[sd]{Maximum Changer Wait} + This directive specifies the maximum time in seconds for Bacula to wait + for an autochanger to change the volume. If this time is exceeded, + Bacula will invalidate the Volume slot number stored in the catalog and + try again. If no additional changer volumes exist, Bacula will ask the + operator to intervene. The default is 5 minutes. + + Please note that if you want to set your changer wait time to + 10 minutes, you must specify: + +\begin{verbatim} +Maximum Changer Wait = 600 +\end{verbatim} + + This directive will not accept qualifiers (such as "minutes"). + +\item [Maximum Rewind Wait = {\it seconds}] + \index[sd]{Maximum Rewind Wait} + This directive specifies the maximum time in seconds for Bacula to wait + for a rewind before timing out. If this time is exceeded, + Bacula will cancel the job. The default is 5 minutes. + +\item [Maximum Open Wait = {\it seconds}] + \index[sd]{Maximum Open Wait} + This directive specifies the maximum time in seconds for Bacula to wait + for a open before timing out. If this time is exceeded, + Bacula will cancel the job. The default is 5 minutes. \item [Always Open = {\it Yes|No}] \index[sd]{Always Open } - If {\bf Yes} (default), Bacula will always keep the device open unless - specifically {\bf unmounted} by the Console program. This permits Bacula to - ensure that the tape drive is always available. If you set {\bf AlwaysOpen} - to {\bf no} {\bf Bacula} will only open the drive when necessary, and at the - end of the Job if no other Jobs are using the drive, it will be freed. The - next time Bacula wants to append to a tape on a drive that was freed, Bacula - must rewind the tape and position to the end. To avoid unnecessary tape positioning - and to minimize unnecessary operator intervention, it is highly recommended that - {\bf Always Open = yes}. This also ensures that the drive is available when - Bacula needs it. + If {\bf Yes} (default), Bacula will always keep the device open unless + specifically {\bf unmounted} by the Console program. This permits + Bacula to ensure that the tape drive is always available. If you set + {\bf AlwaysOpen} to {\bf no} {\bf Bacula} will only open the drive when + necessary, and at the end of the Job if no other Jobs are using the + drive, it will be freed. The next time Bacula wants to append to a tape + on a drive that was freed, Bacula must rewind the tape and position to + the end. To avoid unnecessary tape positioning and to minimize + unnecessary operator intervention, it is highly recommended that {\bf + Always Open = yes}. This also ensures that the drive is available when + Bacula needs it. If you have {\bf Always Open = yes} (recommended) and you want to use the drive for something else, simply use the {\bf unmount} command in the Console @@ -503,12 +525,13 @@ bacula-sd Alert: TapeAlert[32]: Interface: Problem with SCSI interface the drive on the next poll and automatically continue with the backup. Please see above more more details. -\item [Maximum Open Wait = {\it time}] +\item [Maximum Open Wait = {\it seconds}] \index[sd]{Maximum Open Wait } - This directive specifies the maximum amount of time that Bacula will wait for - a device that is busy. The default is 5 minutes. If the device cannot be - obtained, the current Job will be terminated in error. Bacula will re-attempt - to open the drive the next time a Job starts that needs the the drive. + This directive specifies the maximum amount of time in seconds that + Bacula will wait for a device that is busy. The default is 5 minutes. + If the device cannot be obtained, the current Job will be terminated in + error. Bacula will re-attempt to open the drive the next time a Job + starts that needs the the drive. \item [Removable media = {\it Yes|No}] \index[sd]{Removable media } @@ -524,22 +547,22 @@ bacula-sd Alert: TapeAlert[32]: Interface: Problem with SCSI interface \item [Minimum block size = {\it size-in-bytes}] \index[sd]{Minimum block size } - On most modern tape drives, you will not need or wamt to specify this directive, and - if you do so, it will be to make Bacula use fixed block sizes. This - statement applies only to non-random access devices (e.g. tape drives). - Blocks written by the storage daemon to a non-random archive device will - never be smaller than the given {\bf size-in-bytes}. The Storage daemon will - attempt to efficiently fill blocks with data received from active sessions - but will, if necessary, add padding to a block to achieve the required - minimum size. + On most modern tape drives, you will not need or wamt to specify this + directive, and if you do so, it will be to make Bacula use fixed block + sizes. This statement applies only to non-random access devices (e.g. + tape drives). Blocks written by the storage daemon to a non-random + archive device will never be smaller than the given {\bf size-in-bytes}. + The Storage daemon will attempt to efficiently fill blocks with data + received from active sessions but will, if necessary, add padding to a + block to achieve the required minimum size. - To force the block size to be fixed, as is the case for some non-random - access devices (tape drives), set the {\bf Minimum block size} and the {\bf - Maximum block size} to the same value (zero included). The default is that - both the minimum and maximum block size are zero and the default block size - is 64,512 bytes. If you wish the block size to be fixed and different from - the default, specify the same value for both {\bf Minimum block size} and - {\bf Maximum block size}. + To force the block size to be fixed, as is the case for some non-random + access devices (tape drives), set the {\bf Minimum block size} and the + {\bf Maximum block size} to the same value (zero included). The default + is that both the minimum and maximum block size are zero and the default + block size is 64,512 bytes. If you wish the block size to be fixed and + different from the default, specify the same value for both {\bf Minimum + block size} and {\bf Maximum block size}. For example, suppose you want a fixed block size of 100K bytes, then you would specify: @@ -573,17 +596,18 @@ bacula-sd Alert: TapeAlert[32]: Interface: Problem with SCSI interface \item [Maximum block size = {\it size-in-bytes}] \index[sd]{Maximum block size } - On most modern tape drives, you will not need to specify this directive. If - you do so, it will most likely be to use fixed block sizes (see Minimum block - size above). The Storage daemon will aways attempt to write blocks of the - specified {\bf size-in-bytes} to the archive device. As a consequence, this - statement specifies both the default block size and the maximum block size. - The size written never exceed the given {\bf size-in-bytes}. If adding data - to a block would cause it to exceed the given maximum size, the block will be - written to the archive device, and the new data will begin a new block. + On most modern tape drives, you will not need to specify this directive. + If you do so, it will most likely be to use fixed block sizes (see + Minimum block size above). The Storage daemon will aways attempt to + write blocks of the specified {\bf size-in-bytes} to the archive device. + As a consequence, this statement specifies both the default block size + and the maximum block size. The size written never exceed the given + {\bf size-in-bytes}. If adding data to a block would cause it to exceed + the given maximum size, the block will be written to the archive device, + and the new data will begin a new block. - If no value is specified or zero is specified, the Storage daemon will use a - default block size of 64,512 bytes (126 * 512). + If no value is specified or zero is specified, the Storage daemon will + use a default block size of 64,512 bytes (126 * 512). \item [Hardware End of Medium = {\it Yes|No}] \index[sd]{Hardware End of Medium } @@ -705,24 +729,25 @@ default, Bacula will only write one end of file to terminate the tape. \item [Maximum Volume Size = {\it size}] \index[sd]{Maximum Volume Size } - No more than {\bf size} bytes will be written onto a given volume on the - archive device. This directive is used mainly in testing Bacula to simulate a - small Volume. It can also be useful if you wish to limit the size of a File - Volume to say less than 2GB of data. In some rare cases of really antiquated - tape drives that do not properly indicate when the end of a tape is reached - during writing (though I have read about such drives, I have never personally - encountered one). Please note, this directive is deprecated (being phased - out) in favor of the {\bf Maximum Volume Bytes} defined in the Director's - configuration file. + No more than {\bf size} bytes will be written onto a given volume on the + archive device. This directive is used mainly in testing Bacula to + simulate a small Volume. It can also be useful if you wish to limit the + size of a File Volume to say less than 2GB of data. In some rare cases + of really antiquated tape drives that do not properly indicate when the + end of a tape is reached during writing (though I have read about such + drives, I have never personally encountered one). Please note, this + directive is deprecated (being phased out) in favor of the {\bf Maximum + Volume Bytes} defined in the Director's configuration file. \item [Maximum File Size = {\it size}] \index[sd]{Maximum File Size } - No more than {\bf size} bytes will be written into a given logical file on - the volume. Once this size is reached, an end of file mark is written on the - volume and subsequent data are written into the next file. Breaking long - sequences of data blocks with file marks permits quicker positioning to the - start of a given stream of data and can improve recovery from read errors on - the volume. The default is one Gigabyte. + No more than {\bf size} bytes will be written into a given logical file + on the volume. Once this size is reached, an end of file mark is + written on the volume and subsequent data are written into the next + file. Breaking long sequences of data blocks with file marks permits + quicker positioning to the start of a given stream of data and can + improve recovery from read errors on the volume. The default is one + Gigabyte. \item [Block Positioning = {\it yes|no}] \index[sd]{Block Positioning } diff --git a/docs/manual/version.tex b/docs/manual/version.tex index 2b9ec090..77539458 100644 --- a/docs/manual/version.tex +++ b/docs/manual/version.tex @@ -1 +1 @@ -1.38.3 (27 November 2005) +1.38.3 (11 December 2005) -- 2.39.5