\chapter{Enterprise Bacula New Features}
This chapter presents the new features that will be added to the
current Enterprise version of Bacula that is under development. This version will be
released at some later date, probably near the end of June 2011.  These
features are available only with a Bacula Systems subscription.

In addition to the features in this chapter, the Enterprise version
will include the Community features described in the Community new Features
chapter.

\section{Restart Incomplete Job}


\medskip
This project was funded by Bacula Systems and is available with Bacula
Enterprise Edition.

\section{Support for MSSQL Block Level Backup}

This project was funded by Bacula Systems and is available with the Bacula
Enterprise Edition.

\section{Support for NDMP protocol}

The new \texttt{ndmp} Plugin is able to backup a NAS through NDMP protocol
using \textbf{Filer to server} approach, where the Filer is backing up across
the LAN to your Bacula server.

Accurate option should be turned on in the Job resource.
\begin{verbatim}
Job {
 Accurate = yes
 FileSet = NDMPFS
 ...
}

FileSet {
 Name = NDMPFS
 ...
 Include {
   Plugin = "ndmp:host=nasbox user=root pass=root file=/vol/vol1"
 }
}
\end{verbatim}

This project was funded by Bacula Systems and is available with the Bacula
Enterprise Edition.

\section{Job Bandwidth Limitation}

The new {\bf Job Bandwidth Limitation} directive may be added to the File
daemon's and/or Director's configuration to limit the bandwidth used by a Job
on a Client.  It can be set in the File daemon's conf file for all Jobs run in
that File daemon, or it can be set for each Job in the Director's conf file.

For example:
\begin{verbatim}
FileDaemon {
  Name = localhost-fd
  Working Directory = /some/path
  Pid Directory = /some/path
  ...
  Maximum Bandwidth Per Job = 5Mb/s
}
\end{verbatim}

The above example would cause any jobs running with the FileDaemon to not
exceed 5Mb/s of throughput when sending data to the Storage Daemon.

You can specify the speed parameter in k/s, Kb/s, m/s, Mb/s.

For example:
\begin{verbatim}
Job {
  Name = locahost-data
  FileSet = FS_localhost
  Accurate = yes
  ...
  Maximum Bandwidth = 5Mb/s
  ...
}
\end{verbatim}

The above example would cause Job \texttt{localhost-data} to not exceed 5MB/s
of throughput when sending data from the File daemon to the Storage daemon.

A new console command \texttt{setbandwidth} permits to set dynamically the
maximum throughput of a running Job or for future jobs of a Client.

\begin{verbatim}
* setbandwidth limit=1000000 jobid=10
\end{verbatim}

The \texttt{limit} parameter is in Kb/s.

\medskip
This project was funded by Bacula Systems and is available in
the Enterprise Edition.

\section{Incremental/Differential Block Level Difference Backup}

The new \texttt{delta} Plugin is able to compute and apply signature-based file
differences. It can be used to backup only changes in a big binary file like
Outlook PST, VirtualBox/VmWare images or database files.

It supports both Incremental and Differential backups and stores signatures
database in the File Daemon working directory. This plugin is available on all
platform including Windows 32 and 64bit.

Accurate option should be turned on in the Job resource.
\begin{verbatim}
Job {
 Accurate = yes
 FileSet = DeltaFS
 ...
}

FileSet {
 Name = DeltaFS
 ...
 Include {
   Plugin = "delta:/home/eric/.VirtualBox/HardDisks/lenny-i386.vdi"
 }
}
\end{verbatim}

Note: the core code features to implement this functionality are included
in the Community plugin interface as will as the core Community code.

This project was funded by Bacula Systems and is available with the Bacula
Enterprise Edition.

\section{Include All Windows Drives in FileSet}

The \texttt{alldrives} Windows Plugin allows you to include all local drives
with a simple directive. This plugin is available for Windows 64 and 32 bit.

\begin{verbatim}
FileSet {
 Name = EverythingFS
 ...
 Include {
   Plugin = "alldrives"
 }
}
\end{verbatim}

You exclude some specific drives with the \texttt{exclude} option.

\begin{verbatim}
FileSet {
 Name = EverythingFS
 ...
 Include {
   Plugin = "alldrives: exclude=D,E"
 }
}
\end{verbatim}


This project was funded by Bacula Systems and is available with the Bacula
Enterprise Edition.


\section{Always Backup a File}

When the Accurate mode is turned on, you can decide to always backup a file
by using the following option:

\begin{verbatim}
Job {
   Name = ...
   FileSet = FS_Example
   Accurate = yes
   ...
}

FileSet {
 Name = FS_Example
 Include {
   Options {
     Accurate = A
   }
   File = /file
   File = /file2
 }
 ...
}
\end{verbatim}

This project was funded by Bacula Systems based on an idea of James Harper and
is available with the Bacula Enterprise Edition.

\section{Setting Accurate Mode During at Runtime}

You are now able to specify the Accurate mode on the \texttt{run} command and
in the Schedule resource.

\begin{verbatim}
* run accurate=yes job=Test
\end{verbatim}

\begin{verbatim}
Schedule {
  Name = WeeklyCycle
  Run = Full 1st sun at 23:05
  Run = Differential accurate=yes 2nd-5th sun at 23:05
  Run = Incremental  accurate=no  mon-sat at 23:05
}
\end{verbatim}

It can allow you to save memory and and CPU resources on the catalog server in
some cases.

These advanced tuning options are available with the Bacula Enterprise Edition.
