1 \chapter{New Features in Bacula Enterprise 6.0}
2 This chapter presents the new features that have been added to the
3 current Enterprise version of Bacula.
4 These features are available only with a Bacula Systems subscription.
6 In addition to the features in this chapter, the Enterprise version
7 will include the Community features described in the Community new Features
10 \section{Incomplete Jobs}
11 During a backup, if the Storage daemon experiences disconnection
12 with the File daemon during backup (normally a comm line problem
13 or possibly an FD failure), under conditions that the SD determines
14 to be safe it will make the failed job as Incomplete rather than
15 failed. This is done only if there is sufficient valid backup
16 data that was written to the Volume. The advantage of an Incomplete
17 job is that it can be restarted by the new bconsole {\bf restart}
18 command from the point where it left off rather than from the
19 beginning of the jobs as is the case with a cancel.
21 \section{The Stop Command}
22 Bacula has been enhanced to provide a {\bf stop} command,
23 very similar to the {\bf cancel} command with the main difference
24 that the Job that is stopped is marked as Incomplete so that
25 it can be restarted later by the {\bf restart} command where
26 it left off (see below). The {\bf stop} command with no
27 arguments, will like the cancel command, prompt you with the
28 list of running jobs allowing you to select one, which might
29 look like the following:
34 1: JobId=3 Job=Incremental.2012-03-26_12.04.26_07
35 2: JobId=4 Job=Incremental.2012-03-26_12.04.30_08
36 3: JobId=5 Job=Incremental.2012-03-26_12.04.36_09
37 Choose Job to stop (1-3): 2
38 2001 Job "Incremental.2012-03-26_12.04.30_08" marked to be stopped.
39 3000 JobId=4 Job="Incremental.2012-03-26_12.04.30_08" marked to be stopped.
42 \section{The Restart Command}
43 The new {\bf Restart command} allows console users to restart
44 a canceled, failed, or incomplete Job. For canceled and failed
45 Jobs, the Job will restart from the beginning. For incomplete
46 Jobs the Job will restart at the point that it was stopped either
47 by a stop command or by some recoverable failure.
50 If you enter the {\bf restart} command in bconsole, you will get the
55 You have the following choices:
60 Select termination code: (1-4):
63 If you select the {\bf All} option, you may see something like:
66 Select termination code: (1-4): 4
67 +-------+-------------+---------------------+------+-------+----------+-----------+-----------+
68 | jobid | name | starttime | type | level | jobfiles |
69 jobbytes | jobstatus |
70 +-------+-------------+---------------------+------+-------+----------+-----------+-----------+
71 | 1 | Incremental | 2012-03-26 12:15:21 | B | F | 0 |
73 | 2 | Incremental | 2012-03-26 12:18:14 | B | F | 350 |
75 | 3 | Incremental | 2012-03-26 12:18:30 | B | F | 0 |
77 | 4 | Incremental | 2012-03-26 12:18:38 | B | F | 331 |
79 +-------+-------------+---------------------+------+-------+----------+-----------+-----------+
80 Enter the JobId list to select:
83 Then you may enter one or more JobIds to be restarted, which may
84 take the form of a list of JobIds separated by commas, and/or JobId
85 ranges such as {\bf 1-4}, which indicates you want to restart JobIds
86 1 through 4, inclusive.
88 \section{Support for Exchange Incremental Backups}
89 The Bacula Enterprise version 6.0 VSS plugin now supports
90 Full and Incremental backups for Exchange. We strongly
91 recommend that you do not attempt to run Differential jobs with
92 Exchange as it is likely to produce a situation where restores
93 will no longer select the correct jobs, and thus the
94 Windows Exchange VSS writer will fail when applying log files.
95 There is a Bacula Systems Enterprise white paper that provides
96 the details of backup and restore of Exchange 2010 with the
100 Restores can be done while Exchange is running, but you
101 must first unmount (dismount in Microsoft terms) any database
102 you wish to restore and explicitly mark them to permit a
103 restore operation (see the white paper for details).
106 This project was funded by Bacula Systems and is available with the Bacula
109 \section{Support for MSSQL Block Level Backups}
110 With the addition of block level backup support to the
111 Bacula Enterprise VSS MSSQL component, you can now do
112 Differential backups in addition to Full backups.
113 Differential backups use Microsoft's partial block backup
114 (a block differencing or deduplication that we call Delta).
115 This partial block backup permits backing up only those
116 blocks that have changed. Database restores can be made while
117 the MSSQL server is running, but any databases selected for
118 restore will be automatically taken offline by the MSSQL
119 server during the restore process.
121 Incremental backups for MSSQL are not support by
122 Microsoft. We strongly recommend that you not perform Incremental
123 backups with MSSQL as they will probably produce a situation
124 where restore will no longer work correctly.
127 We are currently working on producing a white paper that will give more
128 details of backup and restore with MSSQL. One point to note is that during
129 a restore, you will normally not want to restore the {\bf master} database.
130 You must exclude it from the backup selections that you have made or the
134 It is possible to restore the {\bf master} database, but you must
135 first shutdown the MSSQL server, then you must perform special
136 recovery commands. Please see Microsoft documentation on how
137 to restore the master database.
140 This project was funded by Bacula Systems and is available with the Bacula
144 \section{Job Bandwidth Limitation}
146 The new {\bf Job Bandwidth Limitation} directive may be added to the File
147 daemon's and/or Director's configuration to limit the bandwidth used by a Job
148 on a Client. It can be set in the File daemon's conf file for all Jobs run in
149 that File daemon, or it can be set for each Job in the Director's conf file.
155 Working Directory = /some/path
156 Pid Directory = /some/path
158 Maximum Bandwidth Per Job = 5Mb/s
162 The above example would cause any jobs running with the FileDaemon to not
163 exceed 5Mb/s of throughput when sending data to the Storage Daemon.
165 You can specify the speed parameter in k/s, Kb/s, m/s, Mb/s.
171 FileSet = FS_localhost
174 Maximum Bandwidth = 5Mb/s
179 The above example would cause Job \texttt{localhost-data} to not exceed 5MB/s
180 of throughput when sending data from the File daemon to the Storage daemon.
182 A new console command \texttt{setbandwidth} permits to set dynamically the
183 maximum throughput of a running Job or for future jobs of a Client.
186 * setbandwidth limit=1000000 jobid=10
189 The \texttt{limit} parameter is in Kb/s.
192 This project was funded by Bacula Systems and is available in
193 the Enterprise Edition.
195 \section{Incremental/Differential Block Level Difference Backup}
197 The new \texttt{delta} Plugin is able to compute and apply signature-based file
198 differences. It can be used to backup only changes in a big binary file like
199 Outlook PST, VirtualBox/VMware images or database files.
201 It supports both Incremental and Differential backups and stores signatures
202 database in the File Daemon working directory. This plugin is available on all
203 platform including Windows 32 and 64bit.
205 Accurate option should be turned on in the Job resource.
218 Plugin = "delta:/home/eric/.VirtualBox/HardDisks/lenny-i386.vdi"
223 Name = DeltaFS-Include
231 # Use the Options{} filtering and options
232 File = /home/user/.VirtualBox
238 Please contact Bacula Systems support to get Delta Plugin specific
242 This project was funded by Bacula Systems and is available with the Bacula
245 \section{SAN Shared Tape Storage Plugin}
247 The problem with backing up multiple servers at the same time to the
248 same tape library (or autoloader) is that if both servers access the
249 same tape drive same time, you will very likely get data corruption.
250 This is where the Bacula Systems shared tape storage plugin comes into play. The
251 plugin ensures that only one server at a time can connect to each device
252 (tape drive) by using the SPC-3 SCSI reservation protocol. Please contact
253 Bacula Systems support to get SAN Shared Storage Plugin specific
257 This project was funded by Bacula Systems and is available with Bacula
260 \section{Advanced Autochanger Usage}
262 The new \texttt{Shared Storage} Director's directive is a Bacula Enterprise
263 feature that allows you to share volumes between different Storage
264 resources. This directive should be used \textbf{only} if all \texttt{Media
265 Type} are correctly set across all Devices.
267 The \texttt{Shared Storage} directive should be used when using the SAN
268 Shared Storage plugin or when accessing from the Director Storage resources
269 directly to Devices of an Autochanger.
271 When sharing volumes between different Storage resources, you will
272 need also to use the \texttt{reset-storageid} script before using the
273 \texttt{update slots} command. This script can be scheduled once a day in
277 $ /opt/bacula/scripts/reset-storageid MediaType StorageName
279 * update slots storage=StorageName drive=0
282 Please contact Bacula Systems support to get help on this advanced
286 This project was funded by Bacula Systems and is available with Bacula
289 \section{Enhancement of the NDMP Plugin}
291 The previous NDMP Plugin 4.0 was fully supporting only the NetApp hardware, the
292 new NDMP Plugin should now be able to support all NAS vendors with the
293 \texttt{volume\_format} plugin command option.
295 On some NDMP devices such as Celera or Blueray, the administrator can use arbitrary
296 volume structure name, ex:
300 /rootvolume/volume_tmp
304 The NDMP plugin should be aware of the structure organization in order to
305 detect if the administrator wants to restore in a new volume
306 (\texttt{where=/dev/vol\_tmp}) or inside a subdirectory of the targeted volume
307 (\texttt{where=/tmp}).
314 Plugin = "ndmp:host=nasbox user=root pass=root file=/dev/vol1 volume_format=/dev/"
319 Please contact Bacula Systems support to get NDMP Plugin specific
323 This project was funded by Bacula Systems and is available with the Bacula
326 \section{Always Backup a File}
328 When the Accurate mode is turned on, you can decide to always backup a file
329 by using then new {\bf A} Accurate option in your FileSet. For example:
352 This project was funded by Bacula Systems based on an idea of James Harper and
353 is available with the Bacula Enterprise Edition.
355 \section{Setting Accurate Mode During at Runtime}
357 You are now able to specify the Accurate mode on the \texttt{run} command and
358 in the Schedule resource.
361 * run accurate=yes job=Test
367 Run = Full 1st sun at 23:05
368 Run = Differential accurate=yes 2nd-5th sun at 23:05
369 Run = Incremental accurate=no mon-sat at 23:05
373 It can allow you to save memory and and CPU resources on the catalog server in
377 These advanced tuning options are available with the Bacula Enterprise Edition.
379 % Common with community
380 \section{Additions to RunScript variables}
381 You can have access to JobBytes, JobFiles and Director name using \%b, \%F and \%D
382 in your runscript command. The Client address is now available through \%h.
385 RunAfterJob = "/bin/echo Job=%j JobBytes=%b JobFiles=%F ClientAddress=%h Dir=%D"
388 \section{LZO Compression}
390 LZO compression was added in the Unix File Daemon. From the user point of view,
391 it works like the GZIP compression (just replace {\bf compression=GZIP} with
392 {\bf compression=LZO}).
397 Options { compression=LZO }
403 LZO provides much faster compression and decompression speed but lower
404 compression ratio than GZIP. It is a good option when you backup to disk. For
405 tape, the built-in compression may be a better option.
407 LZO is a good alternative for GZIP1 when you don't want to slow down your
408 backup. On a modern CPU it should be able to run almost as fast as:
411 \item your client can read data from disk. Unless you have very fast disks like
412 SSD or large/fast RAID array.
413 \item the data transfers between the file daemon and the storage daemon even on
417 Note that bacula only use one compression level LZO1X-1.
420 The code for this feature was contributed by Laurent Papier.
422 \section{New Tray Monitor}
424 Since the old integrated Windows tray monitor doesn't work with
425 recent Windows versions, we have written a new Qt Tray Monitor that is available
426 for both Linux and Windows. In addition to all the previous features,
427 this new version allows you to run Backups from
428 the tray monitor menu.
432 \includegraphics[width=10cm]{\idir tray-monitor}
433 \label{fig:traymonitor}
434 \caption{New tray monitor}
439 \includegraphics[width=10cm]{\idir tray-monitor1}
440 \label{fig:traymonitor1}
441 \caption{Run a Job through the new tray monitor}
445 To be able to run a job from the tray monitor, you need to
446 allow specific commands in the Director monitor console:
451 CommandACL = status, .clients, .jobs, .pools, .storage, .filesets, .messages, run
452 ClientACL = *all* # you can restrict to a specific host
464 This project was funded by Bacula Systems and is available with Bacula
465 the Enterprise Edition and the Community Edition.
467 \section{Purge Migration Job}
469 The new {\bf Purge Migration Job} directive may be added to the Migration
470 Job definition in the Director's configuration file. When it is enabled
471 the Job that was migrated during a migration will be purged at
472 the end of the migration job.
480 Client = localhost-fd
483 Storage = DiskChanger
486 Selection Pattern = ".*Save"
488 Purge Migration Job = yes
494 This project was submitted by Dunlap Blake; testing and documentation was funded
497 \section{Changes in the Pruning Algorithm}
499 We rewrote the job pruning algorithm in this version. Previously, in some users
500 reported that the pruning process at the end of jobs was very long. It should
501 not be longer the case. Now, Bacula won't prune automatically a Job if this
502 particular Job is needed to restore data. Example:
506 JobId: 2 Level: Incremental
507 JobId: 3 Level: Incremental
508 JobId: 4 Level: Differential
509 .. Other incrementals up to now
512 In this example, if the Job Retention defined in the Pool or in the Client
513 resource causes that Jobs with Jobid in 1,2,3,4 can be pruned, Bacula will
514 detect that JobId 1 and 4 are essential to restore data at the current state
515 and will prune only JobId 2 and 3.
517 \texttt{Important}, this change affect only the automatic pruning step after a
518 Job and the \texttt{prune jobs} Bconsole command. If a volume expires after the
519 \texttt{VolumeRetention} period, important jobs can be pruned.
521 \section{Ability to Verify any specified Job}
522 You now have the ability to tell Bacula which Job should verify instead of
523 automatically verify just the last one.
525 This feature can be used with VolumeToCatalog, DiskToCatalog and Catalog level.
527 To verify a given job, just specify the Job jobid in argument when starting the
530 *run job=VerifyVolume jobid=1 level=VolumeToCatalog
532 JobName: VerifyVolume
533 Level: VolumeToCatalog
536 Pool: Default (From Job resource)
537 Storage: File (From Job resource)
538 Verify Job: VerifyVol.2010-09-08_14.17.17_03
539 Verify List: /tmp/regress/working/VerifyVol.bsr
540 When: 2010-09-08 14:17:31
542 OK to run? (yes/mod/no):
546 This project was funded by Bacula Systems and is available with Bacula
547 Enterprise Edition and Community Edition.