Although Recycling and Backing Up to Disk Volume have been discussed in
previous chapters, this chapter is meant to give you an overall view of
-possible backup strategies and to explain their advantages and disadvantages.
+possible backup strategies and to explain their advantages and disadvantages.
\label{Simple}
\section{Simple One Tape Backup}
\index[general]{Simple One Tape Backup }
Probably the simplest strategy is to back everything up to a single tape and
-insert a new (or recycled) tape when it fills and Bacula requests a new one.
+insert a new (or recycled) tape when it fills and Bacula requests a new one.
\subsection{Advantages}
\index[general]{Advantages }
-\begin{itemize}
+\begin{bsysitemize}
\item The operator intervenes only when a tape change is needed. (once a
- month at my site).
+ month at my site).
\item There is little chance of operator error because the tape is not
- changed daily.
+ changed daily.
\item A minimum number of tapes will be needed for a full restore. Typically
- the best case will be one tape and worst two.
+ the best case will be one tape and worst two.
\item You can easily arrange for the Full backup to occur a different night
of the month for each system, thus load balancing and shortening the backup
- time.
-\end{itemize}
+ time.
+\end{bsysitemize}
\subsection{Disadvantages}
\index[general]{Disadvantages }
-\begin{itemize}
+\begin{bsysitemize}
\item If your site burns down, you will lose your current backups, and in my
- case about a month of data.
+ case about a month of data.
\item After a tape fills and you have put in a blank tape, the backup will
- continue, and this will generally happen during working hours.
- \end{itemize}
+ continue, and this will generally happen during working hours.
+ \end{bsysitemize}
\subsection{Practical Details}
\index[general]{Details!Practical }
tape, you {\bf unmount} the tape from the Console program, insert a new tape
and {\bf label} it. In most cases after the label, Bacula will automatically
mount the tape and resume the backup. Otherwise, you simply {\bf mount} the
-tape.
+tape.
Using this strategy, one typically does a Full backup once a week followed by
daily Incremental backups. To minimize the amount of data written to the tape,
one can do a Full backup once a month on the first Sunday of the
month, a Differential backup on the 2nd-5th Sunday of the month, and
-incremental backups the rest of the week.
+incremental backups the rest of the week.
\label{Manual}
\section{Manually Changing Tapes}
If you use the strategy presented above, Bacula will ask you to change the
tape, and you will {\bf unmount} it and then remount it when you have inserted
-the new tape.
+the new tape.
If you do not wish to interact with Bacula to change each tape, there are
-several ways to get Bacula to release the tape:
+several ways to get Bacula to release the tape:
-\begin{itemize}
+\begin{bsysitemize}
\item In your Storage daemon's Device resource, set
{\bf AlwaysOpen = no}
In this case, Bacula will release the tape after every job. If you run
several jobs, the tape will be rewound and repositioned to the end at the
beginning of every job. This is not very efficient, but does let you change
- the tape whenever you want.
+ the tape whenever you want.
\item Use a {\bf RunAfterJob} statement to run a script after your last job.
This could also be an {\bf Admin} job that runs after all your backup jobs.
- The script could be something like:
+ The script could be something like:
\footnotesize
-\begin{verbatim}
+\begin{lstlisting}
#!/bin/sh
/full-path/bconsole -c /full-path/bconsole.conf <<END_OF_DATA
release storage=your-storage-name
END_OF_DATA
-
-\end{verbatim}
+
+\end{lstlisting}
\normalsize
In this example, you would have {\bf AlwaysOpen=yes}, but the {\bf release}
command would tell Bacula to rewind the tape and on the next job assume the
tape has changed. This strategy may not work on some systems, or on
-autochangers because Bacula will still keep the drive open.
+autochangers because Bacula will still keep the drive open.
\item The final strategy is similar to the previous case except that you
would use the unmount command to force Bacula to release the drive. Then you
- would eject the tape, and remount it as follows:
+ would eject the tape, and remount it as follows:
\footnotesize
-\begin{verbatim}
+\begin{lstlisting}
#!/bin/sh
/full-path/bconsole -c /full-path/bconsole.conf <\<END_OF_DATA
unmount storage=your-storage-name
/full-path/bconsole -c /full-path/bconsole.conf <<END_OF_DATA
mount storage=your-storage-name
END_OF_DATA
-
-\end{verbatim}
+
+\end{lstlisting}
\normalsize
-\end{itemize}
+\end{bsysitemize}
\label{Daily}
\subsection{Advantages}
\index[general]{Advantages }
-\begin{itemize}
+\begin{bsysitemize}
\item All the data is stored on a single tape, so recoveries are simple and
- faster.
+ faster.
\item Assuming the previous day's tape is taken offsite each day, a maximum
- of one days data will be lost if the site burns down.
- \end{itemize}
+ of one days data will be lost if the site burns down.
+ \end{bsysitemize}
\subsection{Disadvantages}
\index[general]{Disadvantages }
-\begin{itemize}
+\begin{bsysitemize}
\item The tape must be changed every day requiring a lot of operator
- intervention.
-\item More errors will occur because of human mistakes.
+ intervention.
+\item More errors will occur because of human mistakes.
\item If the wrong tape is inadvertently mounted, the Backup for that day
- will not occur exposing the system to data loss.
+ will not occur exposing the system to data loss.
\item There is much more movement of the tape each day (rewinds) leading to
- shorter tape drive life time.
+ shorter tape drive life time.
\item Initial setup of Bacula to run in this mode is more complicated than
- the Single tape system described above.
+ the Single tape system described above.
\item Depending on the number of systems you have and their data capacity, it
may not be possible to do a Full backup every night for time reasons or
- reasons of tape capacity.
-\end{itemize}
+ reasons of tape capacity.
+\end{bsysitemize}
\subsection{Practical Details}
\index[general]{Details!Practical }
addition, you will need to specify appropriate Job and File retention periods
so that Bacula will relabel and overwrite the tape each week rather than
appending to it. Nic Bellamy has supplied an actual working model of this
-which we include here.
+which we include here.
What is important is to create a different Pool for each day of the week, and
on the {\bf run} statement in the Schedule, to specify which Pool is to be
premounted by the operator, the job will be automatically canceled, and the
backup cycle will re-synchronize the next day. He has named his Friday Pool
{\bf WeeklyPool} because in that Pool, he wishes to have several tapes to be
-able to restore to a time older than one week.
+able to restore to a time older than one week.
And finally, in his Storage daemon's Device resource, he has {\bf Automatic
Mount = yes} and {\bf Always Open = No}. This is necessary for the tape
-ejection to work in his {\bf end\_of\_backup.sh} script below.
+ejection to work in his {\bf end\_of\_backup.sh} script below.
-For example, his bacula-dir.conf file looks like the following:
+For example, his bacula-dir.conf file looks like the following:
\footnotesize
-\begin{verbatim}
-
+\begin{lstlisting}
+
# /etc/bacula/bacula-dir.conf
#
# Bacula Director Configuration file
console = all, !skipped, !saved
append = "/var/lib/bacula/log" = all, !skipped
}
-
+
# Pool definitions
#
# Default Pool for jobs, but will hold no actual volumes
Maximum Volume Jobs = 2
}
# EOF
-\end{verbatim}
+\end{lstlisting}
\normalsize
Note, the mailcommand and operatorcommand should be on a single line each.
They were split to preserve the proper page width. In order to get Bacula to
release the tape after the nightly backup, he uses a {\bf RunAfterJob} script
that deletes the ASCII copy of the database back and then rewinds and ejects
-the tape. The following is a copy of {\bf end\_of\_backup.sh}
+the tape. The following is a copy of {\bf end\_of\_backup.sh}
\footnotesize
-\begin{verbatim}
+\begin{lstlisting}
#! /bin/sh
/usr/lib/bacula/delete_catalog_backup
mt rewind
mt eject
exit 0
-\end{verbatim}
+\end{lstlisting}
\normalsize
-Finally, if you list his Volumes, you get something like the following:
+Finally, if you list his Volumes, you get something like the following:
\footnotesize
-\begin{verbatim}
+\begin{lstlisting}
*list media
Using default Catalog name=MyCatalog DB=bacula
Pool: WeeklyPool
+-----+-----------+-------+--------+-----------+-----------------+-------+------+
Pool: Default
No results to list.
-\end{verbatim}
+\end{lstlisting}
\normalsize
Note, I have truncated a number of the columns so that the information fits on
-the width of a page.
+the width of a page.