4 \chapter{SQLite Installation und Konfiguration}
6 \index[general]{SQLite Installation und Konfiguration}
7 \index[general]{SQLite!Installation und Konfiguration}
9 Bitte beachten Sie, dass SQLite, in Version 2 und 3, beide nicht
10 netzwerkf\"{a}hig sind. Das bedeutet, dass SQLite auf dem selben System
11 installiert sein muss wie der Bacula-Director-Dienst. Es ist kein Zugriff
12 \"{u}ber das Netzwerk, wie bei MySQL und PostgreSQL, m\"{o}glich. Daraus
13 ergeben sich diese Konsequenzen:
15 \item SQLite kann nicht mit der Web-GUI {\bf bweb} benutzt werden.
16 \item Wenn SQLite auf einer anderen Maschine als Ihr Storage-Dienst
17 l\"{a}uft, m\"{u}ssen Sie die Datenbank auf das System des Storage-Dienstes
18 kopieren, bevor Sie die SD-Hilfsprogramme wie bscan usw. benutzen k\"{o}nnen.
21 \section{SQLite Installation und Konfiguration -- Phase I}
22 \index[general]{Phase I!SQLite Installation und Konfiguration -- }
23 \index[general]{SQLite Installation und Konfiguration -- Phase I }
25 Wenn Sie den Bacula-Quelltext mit {\bf ./configure \verb:--:with-sqlite}
26 konfigurieren, m\"{u}ssen Sie SQLite in Version 2.8.16 oder neuer installiert
27 haben. Diese SQLite-Version finden Sie in dem "`Dependency-Package"' unter
28 {\bf depkgs/sqlite-<Version>}. Wenn neuere Version von SQLite verf\"{u}gbar sind,
29 wird auch dieses Paket aktualisiert.
31 Die Installation und Konfiguration ist sehr einfach:
34 \item downloaden Sie das Bacula-Dependency-Package.
35 \item entpacken Sie es mit einem Kommando wie:
37 {\bf tar xvfz depkgs.tar.gz}
39 Dieses Kommando ben\"{o}tigt das GNU tar Programm,
42 {\bf zcat depkgs.tar.gz | tar xvf -}
44 zum gleichen Ziel f\"{u}hren.
48 \item f\"{u}r SQLite2: {\bf make sqlite}
50 \item oder f\"{u}r SQLite3: {\bf make sqlite3}
54 Je nachdem welche Version Sie installiert haben, SQLite oder SQLite3, m\"{u}ssen Sie
55 Bacule entsprechend mit {\bf \verb:--:with-sqlite} oder {\bf \verb:--:with-sqlite3}
56 konfigurieren. Die Version 2 von SQLite k\"{o}nnen Sie nicht zusammen mit der
57 Bacula-Konfigurations-Option {\bf \verb:--:enable-batch-insert} verwenden, da die Version 2
58 nicht thread-safe ist. Mit SQLite3 k\"{o}nnen Sie diese Option nur verwenden, wenn Sie
59 SQLite3 mit {\bf \verb:--:enable-threadsafe} und {\bf \verb:--:enable-cross-thread-connections}
60 konfiguriert und kompiliert haben.
62 Standardm\"{a}{\ss}ig l\"{a}uft SQLite3 mit {\bf PRAGMA synchronous=OFF}.
63 Das erh\"{o}ht zwar die Geschwindigkeit um bis zu das 30-fache, hat aber den
64 Nachteil, dass Ihre Datenbank leichter besch\"{a}digt wird, falls Ihre
65 Maschine, etwa durch Stromausfall oder einen Kernel-Bug, stehen bleibt.
66 Falls Sie auf die h\"{o}here Geschwindigkeit zugunsten der Sicherheit
67 verzichten wollen, k\"{o}nnen Sie PRAGMA in der Datei src/version.h
68 entsprechend anpassen.
70 An dieser Stelle sollten Sie mit der Installation von Bacula
73 \section{SQLite Installation und Konfiguration -- Phase II}
75 \index[general]{Phase II!SQLite Installation und Konfiguration -- }
76 \index[general]{SQLite Installation und Konfiguration -- Phase II }
78 Die Phase II wird durchgef\"{u}hrt, nachdem Bacula installiert wurde.
80 Bei der Installation von Bacula werden mehrere Scripte in das
81 Installations-Verzeichnis kopiert, mit denen Sie verschiedene
82 \"{A}nderungen an der Datenbank durchf\"{u}hren k\"{o}nnen.
83 Diese Scripte haben Namen im Format *\_bacula\_*
84 (z.B. create\_bacula\_database)und dienen dazu die Datenbank
85 zu initialisieren, zu aktualisieren oder zu l\"{o}schen.
86 Diese Scripte sind auch im Bacula-Quelltext-Verzeichnis, nach
87 der Ausf\"{u}hrung des "`./configure"'-Scripts, unter
88 \lt{}bacula-src\gt{}/src/cats zu finden. Wenn Sie sich, zum
89 Beispiel, das Script create\_bacula\_database n\"{a}her ansehen
90 werden Sie merken, dass dieses Script einfach nur
91 create\_mysql\_database ausf\"{u}hrt. Alle Scripte die *\_bacula\_*
92 heissen, dienen nur der Bequemlichkeit. Es spielt keine Rolle
93 mit welcher Datenbank Sie den Bacula-Quelltext \"{u}bersetzt haben,
94 das Script create\_bacula\_database wird immer die f\"{u}r Sie
95 richtige Datenbank erstellen.
97 Jetzt k\"{o}nnen die Datenbank und die Tabellen erstellt werden:
100 \item cd \lt{}Bacula-Installations-Verzeichnis\gt{}
101 In diesem Verzeichnis finden Sie die Bacula-Datenbank-Scripte.
103 \item ./make\_sqlite\_tables
105 Dieses Script erzeugt sowohl die Datenbank als auch die Tabellen
106 die Bacula benutzt. Standardm\"{a}{\ss}ig wird die Datenbank als
107 {\bf bacula.db} im Arbeitsverzeichnis von Bacula erstellt.
110 \section{Bacula mit SQLite linken}
111 \index[general]{SQLite!Bacula linken mit}
112 \index[general]{Bacula mit SQLite linken}
114 Wenn Sie alle Schritte bis hierhin befolgt haben, passiert das
115 Linken der SQLite-Bibliotheken mit Bacula automatisch.
117 \section{SQLite Tests}
118 \index[general]{SQLite!Tests }
119 \index[general]{SQLite Tests }
121 Da SQLite eigentlich nicht in Produktionsumgebungen eingestzt wird,
122 gibt es viel weniger Anwender und Erfahrungen als z.B. bei MySQL.
123 Als "`Hilfsdatenbank"' die w\"{a}hrend der Entwicklung eingesetzt wird,
124 funktioniert SQLite allerdings sehr gut. Trotzdem wird immer wieder von
125 Benutzer gemeldet, dass sie Probleme mit ihrer SQLite-Datenbank haben.
126 Aus diesem Grund wird davon abgeraten, SQLite in Produktionsumgebungen
129 Falls Bacula beim Start mit dem folgenden Fehler abbricht:
133 Using default Catalog name=MyCatalog DB=bacula
134 Could not open database "bacula".
135 sqlite.c:151 Unable to open Database=/var/lib/bacula/bacula.db.
136 ERR=malformed database schema - unable to open a temporary database file
137 for storing temporary tables
141 liegt es meistens daran, dass SQLite versucht, die Datenbank-Datei
142 im aktuellen Verzeichnis zu erstellen. Falls das fehlschl\"{a}gt,
143 weil Bacula keine Schreibrechte f\"{u}r dieses Verzeichnis besitzt,
144 kommt es zu diesem Fehler. Als Abhilfe sollten Sie Bacula in einem
145 Verzeichnis starten wo es Schreibrechte besitzt.
147 \section{Re-Initialisierung der Katalog-Datenbank}
148 \index[general]{Datenbank!Re-Initialisierung der Katalog- }
149 \index[general]{Re-Initialisierung der Katalog-Datenbank }
151 Nachdem Sie einige anf\"{a}ngliche Tests mit Bacula gemacht haben, wollen
152 Sie eventuell Ihre Katalog-Datenbank komplett leeren, um alle gelaufenen
153 Test-Backups aus der Datenbank zu entfernen. Um das zu erreichen,
158 cd <install-directory>
164 Bitte bedenken Sie, dass dabei alle Informationen unwiderruflich
165 aus der Datenbank gel\"{o}scht werden. Falls Sie auch beschriebene
166 Volumes wiederverwenden wollen, m\"{u}ssen Sie das Volume-Label
167 \"{u}berschreiben damit Bacula sie erneut benutzen kann.
168 Das erreichen Sie durch:
172 (stop Bacula or unmount the drive)
173 mt -f /dev/nst0 rewind
178 hierbei m\"{u}ssen Sie {\bf /dev/nst0} durch das Device ersetzen,
179 dem Ihr Tapelaufwerk entspricht.