]> git.sur5r.net Git - bacula/docs/blob - docs/manuals/de/catalog/sqlite.tex
ca5bcc6ed6876615d14b667ea76161b15a8b46bf
[bacula/docs] / docs / manuals / de / catalog / sqlite.tex
1 %%
2 %%
3
4 \chapter{SQLite Installation und Konfiguration}
5 \label{SqlLiteChapter}
6 \index[general]{SQLite Installation und Konfiguration}
7 \index[general]{SQLite!Installation und Konfiguration}
8
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:
14 \begin{enumerate}
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.
19 \end{enumerate}
20
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 }
24
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.
30
31 Die Installation und Konfiguration ist sehr einfach: 
32
33 \begin{enumerate}
34 \item downloaden Sie das Bacula-Dependency-Package.
35 \item entpacken Sie es mit einem Kommando wie:
36
37    {\bf tar xvfz depkgs.tar.gz}  
38
39    Dieses Kommando ben\"{o}tigt das GNU tar Programm,
40    ansonsten wird:
41
42    {\bf zcat depkgs.tar.gz | tar xvf -}
43
44    zum gleichen Ziel f\"{u}hren.
45
46 \item {\bf cd depkgs}
47
48 \item f\"{u}r SQLite2: {\bf make sqlite}
49
50 \item oder f\"{u}r SQLite3: {\bf make sqlite3}
51
52 \end{enumerate}
53
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.
61
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.
69
70 An dieser Stelle sollten Sie mit der Installation von Bacula
71 fortfahren.
72
73 \section{SQLite Installation und Konfiguration -- Phase II}
74 \label{sqlite_phase2}
75 \index[general]{Phase II!SQLite Installation und Konfiguration -- }
76 \index[general]{SQLite Installation und Konfiguration -- Phase II }
77
78 Die Phase II wird durchgef\"{u}hrt, nachdem Bacula installiert wurde.
79
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.
96
97 Jetzt k\"{o}nnen die Datenbank und die Tabellen erstellt werden:
98
99 \begin{enumerate}
100 \item cd \lt{}Bacula-Installations-Verzeichnis\gt{}
101    In diesem Verzeichnis finden Sie die Bacula-Datenbank-Scripte.
102
103 \item ./make\_sqlite\_tables
104
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.
108 \end{enumerate}
109
110 \section{Bacula mit SQLite linken}
111 \index[general]{SQLite!Bacula linken mit}
112 \index[general]{Bacula mit SQLite linken}
113
114 Wenn Sie alle Schritte bis hierhin befolgt haben, passiert das
115 Linken der SQLite-Bibliotheken mit Bacula automatisch. 
116
117 \section{SQLite Tests}
118 \index[general]{SQLite!Tests }
119 \index[general]{SQLite Tests }
120
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
127 einzusetzen.
128
129 Falls Bacula beim Start mit dem folgenden Fehler abbricht:
130
131 \footnotesize
132 \begin{alltt}
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
138 \end{alltt}
139 \normalsize
140
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.
146
147 \section{Re-Initialisierung der Katalog-Datenbank}
148 \index[general]{Datenbank!Re-Initialisierung der Katalog- }
149 \index[general]{Re-Initialisierung der Katalog-Datenbank }
150
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,
154 tun Sie folgendes:
155
156 \footnotesize
157 \begin{alltt}
158   cd <install-directory>
159   ./drop_bacula_tables
160   ./make_bacula_tables
161 \end{alltt}
162 \normalsize
163
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:
169
170 \footnotesize
171 \begin{alltt}
172    (stop Bacula or unmount the drive)
173    mt -f /dev/nst0 rewind
174    mt -f /dev/nst0 weof
175 \end{alltt}
176 \normalsize
177
178 hierbei m\"{u}ssen Sie {\bf /dev/nst0} durch das Device ersetzen,
179 dem Ihr Tapelaufwerk entspricht.