]> git.sur5r.net Git - bacula/docs/blobdiff - docs/manuals/en/main/newfeatures.tex
Tweak new features
[bacula/docs] / docs / manuals / en / main / newfeatures.tex
index c238ade221381e80cbc4052929be8f06ed3b73b3..47303e0e502b9b06583a26534664a06bcb96528f 100644 (file)
 \chapter{New Features in 5.1.x}
 This chapter presents the new features that have been added to the
 current version of Bacula that is under development. This version will be
-released at some later date, probably near the end of 2010.
+released at some later date, probably near the end of April 2011.
+
+\section{Restart Incomplete Job}
+
+
+\medskip
+This project was funded by Bacula Systems and is available with Bacula
+Enterprise Edition and Community Edition.
+
+\section{New Tray Monitor}
+
+Since the old integrated Windows tray monitor doesn't work anymore with
+recent Windows versions, we have written a new Qt Tray Monitor that is available
+for both Linux and Windows.  This new version allows you to run Backup from
+the tray monitor menu.
+
+\begin{figure}[htbp]
+  \centering
+  \includegraphics[width=10cm]{\idir tray-monitor}
+  \label{fig:traymonitor}
+  \caption{New tray monitor}
+\end{figure}
+
+\begin{figure}[htbp]
+  \centering
+  \includegraphics[width=10cm]{\idir tray-monitor1}
+  \label{fig:traymonitor1}
+  \caption{Run a Job through the new tray monitor}
+\end{figure}
+
+\medskip
+This project was funded by Bacula Systems and is available with Bacula
+the Enterprise Edition and the Community Edition.
+
+\section{Purge Migration Job}
+
+The new {\bf Purge Migration Job} directive may be added to the Migration
+Job definition in the Director's configuration file. When it is enabled 
+the Job that was migrated during a migration will be purged at
+the end of the migration job.
+
+For example:
+\begin{verbatim}
+Job {
+  Name = "migrate-job"
+  Type = Migrate
+  Level = Full
+  Client = localhost-fd
+  FileSet = "Full Set"
+  Messages = Standard
+  Storage = DiskChanger
+  Pool = Default
+  Selection Type = Job
+  Selection Pattern = ".*Save"
+...
+  Purge Migrated Job = yes
+}
+\end{verbatim}
+
+\medskip
+
+This project was submited by Dunlap Blake, testing and documentation was funded
+by Bacula Systems.
+
+\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 and the Community Edition.
 
 \section{Support for MSSQL Block Level Backup}
 
-This project was funded by Bacula Systems and is available with Bacula Enterprise
-Edition.
+This project was funded by Bacula Systems and is available with the Bacula
+Enterprise Edition.
 
 \section{Support for NDMP protocol}
 
@@ -31,14 +145,14 @@ FileSet {
 }
 \end{verbatim}
 
-This project was funded by Bacula Systems and is available with Bacula Enterprise
-Edition.
+This project was funded by Bacula Systems and is available with the Bacula
+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.
+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
@@ -61,13 +175,13 @@ FileSet {
 }
 \end{verbatim}
 
-This project was funded by Bacula Systems and is available with Bacula Enterprise
-Edition.
+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.
+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 {
@@ -79,17 +193,49 @@ FileSet {
 }
 \end{verbatim}
 
-This project was funded by Bacula Systems and is available with Bacula Enterprise
-Edition.
+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{SQL Catalog Enhancements}
+
+% TODO: Marco can explain more things
+Bacula uses a new catalog backend structure, it allows to build all SQL drivers
+with the same \texttt{./configure ; make} session.
+
+We also added cursor support for PostgreSQL backend, this improves memory usage
+for large installation.
 
 \section{Changes in Bvfs (Bacula Virtual FileSystem)}
 
 Bat has now a bRestore panel that uses Bvfs to display files and
 directories. It's still experimental.
 
+\begin{figure}[htbp]
+  \centering
+  \includegraphics[width=12cm]{\idir bat-brestore}
+  \label{fig:batbrestore}
+  \caption{Bat Brestore Panel}
+\end{figure}
+
 \texttt{Important}, the Bvfs module is not currently compatible with BaseJobs,
 Copy and Migration jobs.
 
+\medskip
+This project was funded by Bacula Systems.
+
 \subsection*{General notes}
 
 \begin{itemize}
@@ -113,7 +259,7 @@ Bvfs allows you to query the catalog against any combination of jobs. You
 can combine all Jobs and all FileSet for a Client in a single session.
 
 To get all JobId needed to restore a particular job, you can use the
-\texttt{.bvfs_get_jobids} command.
+\texttt{.bvfs\_get\_jobids} command.
 
 \begin{verbatim}
 .bvfs_get_jobids jobid=num [all]
@@ -134,7 +280,7 @@ this client.
 
 \subsection*{Generating Bvfs cache}
 
-The \texttt{.bvfs_update} command computes the directory cache for jobs
+The \texttt{.bvfs\_update} command computes the directory cache for jobs
 specified in argument, or for all jobs if unspecified.
 
 \begin{verbatim}
@@ -151,8 +297,9 @@ You can run the cache update process in a RunScript after the catalog backup.
 \subsection*{Get all versions of a specific file}
 
 Bvfs allows you to find all versions of a specific file for a given Client with
-the \texttt{.bvfs_version} command. To avoid problems with encoding, this function
-uses only PathId and FilenameId. The jobid argument is mandatory but unused.
+the \texttt{.bvfs\_version} command. To avoid problems with encoding, this
+function uses only PathId and FilenameId. The jobid argument is mandatory but
+unused.
 
 \begin{verbatim}
 .bvfs_versions client=filedaemon pathid=num filenameid=num jobid=1
@@ -262,7 +409,7 @@ OK
 \subsection*{Cleanup after restore}
 
 To drop the table used by the restore command, you can use the
-\texttt{.bvfs_cleanup} command.
+\texttt{.bvfs\_cleanup} command.
 
 \begin{verbatim}
 .bvfs_cleanup path=b20001
@@ -316,23 +463,33 @@ Priority:    10
 OK to run? (yes/mod/no):
 \end{verbatim}
 
+\medskip
+This project was funded by Bacula Systems and is available with Bacula
+Enterprise Edition and Community Edition.
+
 \section{Additions to RunScript variables}
-You can have access to JobBytes and JobFiles using %b and %f in your runscript
-command.
+You can have access to JobBytes and JobFiles using \%b and \%f in your runscript
+command. The Client address is now available through \%h.
 
 \begin{verbatim}
-RunAfterJob = "/bin/echo Job=%j JobBytes=%b JobFiles=%f"
+RunAfterJob = "/bin/echo Job=%j JobBytes=%b JobFiles=%f ClientAddress=%h"
 \end{verbatim}
 
-\section{Changes in drivetype.exe}
+%\section{Changes in drivetype.exe}
+%
+%Now the \texttt{drivetype.exe} program allows you to list all local hard
+%drives. It can help to build dynamic FileSet on Windows.
+%
+%\begin{verbatim}
+%File = "\\|\"c:/program files/bacula/bin32/drivetype\" -l -a"
+%\end{verbatim}
+%
 
-Now the \texttt{drivetype.exe} program allows you to list all local hard
-drives. It can help to build dynamic FileSet on Windows.
+\section{ACL/Extended Attributes}
 
-\begin{verbatim}
-File = "\\|\"c:/program files/bacula/bin32/drivetype\" -l -a"
-\end{verbatim}
+We added support for NFSv4 ACLs on FreeBSD 8.1 and IRIX extended attributes.
 
+This project was funded by Marco van Wieringen.
 
 \section{Additions to the Plugin API}
 The bfuncs structure has been extended to include a number of
@@ -363,8 +520,9 @@ typedef struct s_baculaFuncs {
    bRC (*AddExclude)(bpContext *ctx, const char *file);
    bRC (*AddInclude)(bpContext *ctx, const char *file);
    bRC (*AddIncludeOptions)(bpContext *ctx, const char *opts);
-   bRC (*AddRegexToInclude)(bpContext *ctx, const char *item, int type);
-   bRC (*AddWildToInclude)(bpContext *ctx, const char *item, int type);
+   bRC (*AddRegex)(bpContext *ctx, const char *item, int type);
+   bRC (*AddWild)(bpContext *ctx, const char *item, int type);
+   bRC (*checkChanges)(bpContext *ctx, struct save_pkt *sp);
 
 } bFuncs;
 \end{verbatim}
@@ -452,6 +610,12 @@ typedef struct s_baculaFuncs {
   \item [F] regex applies only to the filename (directory or path stripped).
   \item [D] regex applies only to the directory (path) part of the name.
   \end{description}
+
+\item [checkChanges] call the \texttt{check\_changes()} function in Bacula code
+  that can use Accurate code to compare the file information in argument with
+  the previous file information. The \texttt{delta\_seq} attribute of the
+  \texttt{save\_pkt} will be updated, and the call will return
+  \texttt{bRC\_Seen} if the core code wouldn't decide to backup it.
   
 \end{description}
   
@@ -480,7 +644,10 @@ typedef enum {
   bEventVssRestoreLoadComponentMetadata = 15,
   bEventVssRestoreSetComponentsSelected = 16,
   bEventRestoreObject                   = 17,
-  bEventEndFileSet                      = 18
+  bEventEndFileSet                      = 18,
+  bEventPluginCommand                   = 19,
+  bEventVssBeforeCloseRestore           = 20,
+  bEventVssPrepareSnapshot              = 21
 
 } bEventType;
 \end{verbatim}
@@ -491,9 +658,13 @@ typedef enum {
 
 \item [bEventVssBackupAddComponents] 
 
+\item [bEventVssPrepareSnapshot] is called before creating VSS snapshots, it
+  provides a char[27] table where the plugin can add Windows drives that will
+  be used during the Job. You need to add them without duplicates, and you can
+  use in \texttt{fd\_common.h} \texttt{add\_drive()} and \texttt{copy\_drives()}
+  for this purpose.
 \end{description}
 
-
 \chapter{Release Version 5.0.3}
 
 There are no new features in version 5.0.2.  This version simply fixes a
@@ -625,50 +796,7 @@ 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.
 
-A new Job directive \texttt{Base=Jobx, Joby...} permits to specify the list of
-files that will be used during Full backup as base.
-
-\begin{verbatim}
-Job {
-   Name = BackupLinux
-   Level= Base
-   ...
-}
-
-Job {
-   Name = BackupZog4
-   Base = BackupZog4, BackupLinux
-   Accurate = yes
-   ...
-}
-\end{verbatim}
-
-In this example, the job \texttt{BackupZog4} will use the most recent version
-of all files contained in \texttt{BackupZog4} and \texttt{BackupLinux}
-jobs. Base jobs should have run with \texttt{level=Base} to be used.
-
-By default, Bacula will compare permissions bits, user and group fields,
-modification time, size and the checksum of the file to choose between the
-current backup and the BaseJob file list. You can change this behavior with the
-\texttt{BaseJob} FileSet option. This option works like the \texttt{verify=}
-one, that is described in the \ilink{FileSet}{FileSetResource} chapter.
-
-\begin{verbatim}
-FileSet {
-  Name = Full
-  Include = {
-    Options {
-       BaseJob  = pmugcs5
-       Accurate = mcs
-       Verify   = pin5
-    }
-    File = /
-  }
-}
-\end{verbatim}
-
-\textbf{Important note}: The current implementation doesn't permit to scan
-volume with \textbf{bscan}. The result wouldn't permit to restore files easily.
+See the \ilink{Base Job Chapter}{basejobs} for more information.
 
 This project was funded by Bacula Systems.