If you use the ./configure
--with-sqlite statement for configuring Bacula, you will need SQLite version 2.8.16 or later installed. Our standard
location (for the moment) for SQLite is in the dependency package depkgs/sqlite-2.8.16. Please note that the version will be updated as new
versions are available and tested.
You may install and use SQLite version 3.x with Bacula by using:
--with-sqlite3. You should ensure that
when the database is created that you have used
PRAGMA synchronous = NORMAL;otherwiset SQLite version 3.x is 4 to 10 times slower than version 2.8.16.
Installing and Configuring is quite easy.
tar xvfz depkgs.tar.gz
Note, the above command requires GNU tar. If you do not have GNU tar, a command such as:
zcat depkgs.tar.gz | tar xvf -
will probably accomplish the same thing.
At this point, you should return to completing the installation of Bacula.
Please note that the ./configure used to build Bacula will need to
This phase is done after you have run the ./configure command to configure Bacula.
Bacula will install scripts for manipulating the database (create, delete, make tables etc) into the main installation directory. These files will be of the form *_bacula_* (e.g. create_bacula_database). These files are also available in the <bacula-src>/src/cats directory after running ./configure. If you inspect create_bacula_database, you will see that it calls create_sqlite_database. The *_bacula_* files are provided for convenience. It doesn't matter what database you have chosen; create_bacula_database will always create your database.
At this point, you can create the SQLite database and tables:
This directory contains the Bacula catalog interface routines.
This script creates the SQLite database as well as the tables used by Bacula. This script will be automatically setup by the ./configure program to create a database named bacula.db in Bacula's working directory.
If you have followed the above steps, this will all happen automatically and the SQLite libraries will be linked into Bacula.
We have much less "production" experience using SQLite than using MySQL. SQLite has performed flawlessly for us in all our testing. However, several users have reported corrupted databases while using SQLite. For that reason, we do not recommend it for production use.
If Bacula crashes with the following type of error when it is started:
Using default Catalog name=MyCatalog DB=bacula Could not open database "bacula". sqlite.c:151 Unable to open Database=/var/lib/bacula/bacula.db. ERR=malformed database schema - unable to open a temporary database file for storing temporary tables
this is most likely caused by the fact that some versions of SQLite attempt to create a temporary file in the current directory. If that fails, because Bacula does not have write permission on the current directory, then you may get this errr. The solution is to start Bacula in a current directory where it has write permission.
After you have done some initial testing with Bacula, you will probably want to re-initialize the catalog database and throw away all the test Jobs that you ran. To do so, you can do the following:
cd <install-directory> ./drop_sqlite_tables ./make_sqlite_tables
Please note that all information in the database will be lost and you will be starting from scratch. If you have written on any Volumes, you must write an end of file mark on the volume so that Bacula can reuse it. Do so with:
(stop Bacula or unmount the drive) mt -f /dev/nst0 rewind mt -f /dev/nst0 weof
Where you should replace /dev/nst0 with the appropriate tape drive device name for your machine.