]> git.sur5r.net Git - bacula/docs/blob - docs/manuals/de/concepts/bootstrap.tex
added latest changes
[bacula/docs] / docs / manuals / de / concepts / bootstrap.tex
1 %%
2 %%
3
4 \chapter{Die Bootstrap-Datei}
5 \label{BootstrapChapter}
6 \index[general]{Datei!Bootstrap }
7 \index[general]{Bootstrap-Datei }
8
9 Die Informationen in diesem Kapitel sollen Ihnen helfen, entweder eigene Bootstrap-Dateien
10 zu erstellen, oder die von Bacula erzeugten zu editieren. Da die Bootstrap-Datei automatisch beim ausf\"{u}hren des
11 \ilink{restore}{_ConsoleChapter} Console-Kommandos, oder wenn Sie \ilink{ Write Bootstrap}{writebootstrap}
12 in den Job-Eintr\"{a}gen der Director-Dienst-Konfiguration angeben, erzeugt wird,
13 brauchen Sie das genaue Format eigentlich nicht wissen.
14
15 Die Bootstrap-Datei enth\"{a}lt Informationen im ASCII-Format,
16 die pr\"{a}zise angeben, welche Dateien wiederhergestellt werden sollen, auf welchem Volume sie liegen
17 und wo auf dem Volume. Es ist ein relativ kompaktes Format diese Informationen anzugeben, aber es ist
18 lesbar f\"{u}r Menschen und kann mit einem Texteditor ge\"{a}ndert werden.
19
20 \section{Bootstrap-Datei Format}
21 \index[general]{Format!Bootstrap}
22 \index[general]{Bootstrap-Datei Format }
23
24 Das generelle Format der Bootstrap-Datei ist:
25
26 {\bf \lt{}Schl\"{u}sselwort\gt{} = \lt{}Wert\gt{}} 
27
28 Wobei jedes Schl\"{u}sselwort und sein Wert angeben, welche Dateien wiederhergestellt werden.
29 Genauer gesagt, das Schl\"{u}sselwort und sein Wert dienen dazu, zu limitieren welche
30 Dateien wiederhergestellt werden, sie verhalten sich wie ein Filter.
31 Das Fehlen eines Schl\"{u}sselwort bedeutet, dass alle Dateien angenommen werden.
32
33 In der Bootstrap-Datei werden Leerzeilen und Zeilen beginnent mit {\#} ignoriert.
34
35 Es existieren Schl\"{u}sselw\"{o}rter, die die Filterung nach Volume, Client, Job, Fileindex, Session ID,
36 Session Time usw. erlauben.
37
38 Je mehr Schl\"{u}sselw\"{o}rter Sie angeben, desto genauer ist die Auswahl der Dateien, die wiederhergestellt werden.
39 Alle Schl\"{u}sselw\"{o}rter werden \"{u}ber {\bf UND} verkn\"{u}pft.
40
41 Ein Beispiel:
42
43 \footnotesize
44 \begin{verbatim}
45 Volume = Test-001
46 VolSessionId = 1
47 VolSessionTime = 108927638
48 \end{verbatim}
49 \normalsize
50
51 veranlasst den Storage-Dienst (oder das {\bf bextract} Programm), nur die Dateien wiederherzustellen, die
52 auf dem Volume Test-001 vorhanden sind {\bf UND} eine VolumeSessionID mit 1 haben {\bf UND} deren VolumeSessionTime
53 gleich 108927638 ist.
54
55 Hier ist eine Liste aller erlaubten Schl\"{u}sselw\"{o}rter in der Reihenfolge in der sie auf
56 die auf dem Volume befindlichen Daten angewendet werden:
57
58 \begin{description}
59
60 \item [Volume]
61    \index[general]{Volume }
62    Dieser Wert gibt an, auf welches Volume die folgenden Schl\"{u}sselw\"{o}rter angewendet werden sollen.
63    Falls in der Bootstrap-Datei ein zweites Volume angegeben wird, beziehen sich die darauf folgenden
64    Schl\"{u}sselw\"{o}rter auf dieses Volume.
65    Wenn der Name des Volumes Leerzeichen enth\"{a}lt, muss er in Anf\"{u}hrungszeichen gesetzt werden.
66    Mindestens ein Volume muss angegeben werden.
67
68 \item [Count]
69    \index[general]{Count}
70    Dieser Wert ist die Gesamtanzahl der Dateien, die von dem Volume gelesen werden sollen.
71    Daran erkennt der Storage-Dienst, wann er das Lesen beenden soll.
72    Dieser Wert ist optional.
73
74 \item [VolFile]
75    \index[general]{VolFile}
76    Dieser Wert gibt eine Dateinummer oder eine Liste bzw. einen Bereich von Dateinummern an,
77    die auf dem aktuellen Volume gefunden werden soll. Die Dateinummer stellt die physikalische
78    Datei auf dem Volume da, wo die Daten gespeichert sind. Bei einem Tape wird dieser Wert benutzt,
79    um das Band richtig zu positionieren und wenn das Laufwerk die letzte angegebene Datei gelesen hat,
80    wird der Lesevorgang gestoppt.
81
82 \item [VolBlock]
83    \index[general]{VolBlock}
84    Dieser Wert gibt eine Blocknummer oder eine Liste bzw. einen Bereich von Blocknummern an,
85    die auf dem aktuellen Volume gefunden werden soll. Die Blocknummer stellt die physikalischen
86    Bl\"{o}cke auf dem Volume da, wo die Daten gespeichert sind.
87
88 \item [VolSessionTime]
89    \index[general]{VolSessionTime }
90    Dieser Wert gibt die Volume-Session-Zeit an, die auf dem aktuellen Volume gefunden werden soll.
91
92 \item [VolSessionId]
93    \index[general]{VolSessionId }
94    Dieser Wert gibt eine Volume-Session-ID oder eine Liste bzw. einen Bereich von Volume-Sesion-IDs an,
95    die auf dem aktuellen Volume gefunden werden soll. Jedes Paar aus Volume-Session-ID und Volume-Session-Zeit,
96    stimmt mit einem einzelnen Job \"{u}berein, der auf dem Volume gespeichert ist.
97
98 \item [JobId]
99    \index[general]{JobId }
100    Dieser Wert gibt eine Job-ID oder eine Liste bzw. einen Bereich von Job-Ids an,
101    die auf dem aktuellen Volume gefunden werden soll. Beachten Sie bitte, dass die Job-ID
102    eventuell nicht eindeutig ist, falls Sie mehrere Director-Dienste haben, oder falls Sie
103    Ihre Datenbank neu initialisiert haben sollten. Der Job-ID-Filter funktioniert nicht, wenn
104    Sie mehrere Jobs gleichzeitig haben laufen lassen.
105    Dieser Wert ist optional und wird von Bacula nicht zum zur\"{u}cksichern ben\"{o}tigt.
106
107 \item [Job]
108    \index[general]{Job }
109    Dieser Wert gibt einen Job-Namen oder eine Liste von Job-Namen an, die auf dem aktuellen
110    Volume gefunden werden sollen. Der Job-Name stimmt mit einem einzigartigen Paar aus Volume-Session-Zeit
111    und VolumeSessionID \"{u}berein, allerdings ist er f\"{u}r Menschen ein bischen leichter zu lesen.
112    Gew\"{o}hnliche regul\"{a}re Ausdr\"{u}cke k\"{o}nnen benutzt werden, um einen entsprechenden Job-Namen zu finden.
113    Der Job-Name-Filter funktioniert nicht, wenn Sie mehrere Jobs gleichzeitig haben laufen lassen.
114    Dieser Wert ist optional und wird von Bacula nicht zum zur\"{u}cksichern ben\"{o}tigt.
115
116 \item [Client]
117    \index[general]{Client }
118    Dieser Wert gibt einen Client-Namen oder eine Liste von Client-Namen an, dia auf dem aktuellen
119    Volume gefunden werden soll. Gew\"{o}hnliche regul\"{a}re Ausdr\"{u}cke k\"{o}nnen benutzt werden,
120    um einen entsprechenden Job-Namen zu finden. Der Client-Filter funktioniert nicht,
121    wenn Sie mehrere Jobs gleichzeitig haben laufen lassen.
122    Dieser Wert ist optional und wird von Bacula nicht zum zur\"{u}cksichern ben\"{o}tigt.
123
124 \item [FileIndex]
125    \index[general]{FileIndex }
126    Dieser Wert gibt einen File-Index oder eine Liste bzw. einen Bereich von File-Indexen an,
127    die auf dem aktuellen Volume gefunden werden soll. Jedes File (Datei) das auf einem Volume gespeichert ist,
128    hat f\"{u}r seine Session einen einzigartigen File-Index. Bei jeder Session wird f\"{u}r das erste
129    gespeicherte File der File-Index auf eins gesetzt und dann mit jedem weiteren File um eins erh\"{o}ht.
130
131    F\"{u}r ein beliebiges Volume bedeutet das, dass die drei Werte von Volume-Session-ID, Volume-Session-Time
132    und File-Index zusammen eine einzelne einzigartige Datei auf einem Volume angeben. Diese Datei ist eventuell
133    mehrfach auf dem Volume vorhanden, aber f\"{u}r jedes Vorkommen gibt es eine einzigartige Kombination
134    dieser drei Werte. Diese drei Werte sind f\"{u}r jede Datei in der Katalog-Datenbank gespeichert.
135
136    Um eine einzelne Datei wiederherzustellen, ist die Angabe eines Wertes (oder einer Liste von File-Indexen)
137    erforderlich.
138
139 \item [FileRegex]
140    \index[general]{FileRegex }
141    Hier k\"{o}nnen Sie einen regul\"{a}ren Ausdruck angeben, um nur Dateien wiederherzustellen,
142    auf die diesen Ausdruck passt.
143
144 \item [Slot]
145    \index[general]{Slot }
146    Dieser Wert gibt den Autochanger-Slot an. F\"{u}r jedes Volume darf nur ein Slot angegeben werden.
147
148 \item [Stream]
149    \index[general]{Stream }
150    Dieser Wert gibt einen Stream (Strom) oder eine Liste bzw. einen Bereich von Streams an.
151    Solange Sie nicht wirklich wissen, was Sie tun, (wenn Sie das interne Arbeiten von Bacula kennen),
152    sollten Sie auf diese Angabe verzichten.
153    Dieser Wert ist optional und wird von Bacula nicht zum zur\"{u}cksichern ben\"{o}tigt.
154
155 \item [*JobType]
156    \index[general]{*JobType }
157    Noch nicht implementiert.
158
159 \item [*JobLevel]
160    \index[general]{*JobLevel }
161    Noch nicht implementiert.
162 \end{description}
163
164 Bei der Angabe des Volume ist zu bedenken, dass dies der erste Parameter sein muss.
165 Alle anderen Parameter k\"{o}nnen in beliebiger Reihenfolge und Anzahl hinter einem
166 Volume-Eintrag angegeben werden.
167
168 Mehrere Volume-Eintr\"{a}ge k\"{o}nnen in der selben Bootstrap-Datei vorkommen,
169 aber mit jedem Vorkommen beginnt ein neuer Satz an Filter, g\"{u}ltig f\"{u}r
170 das abgegebene Volume.
171
172 Beim verarbeiten der Bootstrap-Datei werden alle Schl\"{u}sselw\"{o}rter
173 unterhalb eines Volume-Eintrags mit {\bf UND} verkn\"{u}pft.
174 Also wird:
175
176 \footnotesize
177 \begin{verbatim}
178 Volume = Test-01
179 Client = "My machine"
180 FileIndex = 1
181 \end{verbatim}
182 \normalsize
183
184 auf alle Dateien auf dem Volume Test-01 {\bf UND} von Client My machine
185 {\bf UND} mit dem Fileindex 1 passen.
186
187 Mehrfach angegebene Schl\"{u}sselw\"{o}rter werden mit {\bf ODER} verkn\"{u}pft.
188 Also wird:
189
190 \footnotesize
191 \begin{verbatim}
192 Volume = Test-01
193 Client = "My machine"
194 Client = "Backup machine"
195 FileIndex = 1
196 \end{verbatim}
197 \normalsize
198
199 auf alle Dateien auf dem Volume Test-01 {\bf UND} von Client My machine
200 {\bf ODER} vom Client Backup machine {\bf UND} mit dem Fileindex 1 passen.
201
202 F\"{u}r Zahlenwerte k\"{o}nnen Sie einen Bereich oder eine Liste angeben,
203 f\"{u}r alle anderen Parameter, bis auf Volumes, nur eine Liste.
204 Eine Liste ist gleichbedeutend mit mehrfachen Angaben eines Parameters.
205 Ein Beispiel 
206
207 \footnotesize
208 \begin{verbatim}
209 Volume = Test-01
210 Client = "My machine", "Backup machine"
211 FileIndex = 1-20, 35
212 \end{verbatim}
213 \normalsize
214
215 passt auf alle Dateien auf dem Volume Test-01 {\bf UND} von Client My machine
216 {\bf ODER} vom Client Backup machine {\bf UND} mit dem Fileindex 1 {\bf ODER}
217 2 {\bf ODER} 3 ... {\bf ODER} 20 {\bf ODER} 35.
218
219 Wie oben erw\"{a}hnt, k\"{o}nnen mehrere Volume-Eintr\"{a}ge in der selben
220 Bootstrap-Datei stehen. Jedes Vorkommen eines Volume-Eintrags beginnt einen neuen
221 Satz an Filterregeln der auf dem angegebenen Volume angewendet wird und mit weiteren
222 Volume-Eintr\"{a}gen \"{u}ber {\bf ODER} verkn\"{u}pft wird.
223
224 Als ein Beispiel nehmen wir an, dass wir, mit dem Console-Kommando {\bf query} ,
225 nach dem Satz Volumes fragen, die ben\"{o}tigt werden, um alle Dateien des Clients Rufus
226 wiederherstellen zu k\"{o}nnen:
227
228 \footnotesize
229 \begin{verbatim}
230 Using default Catalog name=MySQL DB=bacula
231 *query
232 Available queries:
233      1: List Job totals:
234      2: List where a file is saved:
235      3: List where the most recent copies of a file are saved:
236      4: List total files/bytes by Job:
237      5: List total files/bytes by Volume:
238      6: List last 10 Full Backups for a Client:
239      7: List Volumes used by selected JobId:
240      8: List Volumes to Restore All Files:
241 Choose a query (1-8): 8
242 Enter Client Name: Rufus
243 +-------+------------------+------------+-----------+----------+------------+
244 | JobId | StartTime        | VolumeName | StartFile | VolSesId | VolSesTime |
245 +-------+------------------+------------+-----------+----------+------------+
246 | 154   | 2002-05-30 12:08 | test-02    | 0         | 1        | 1022753312 |
247 | 202   | 2002-06-15 10:16 | test-02    | 0         | 2        | 1024128917 |
248 | 203   | 2002-06-15 11:12 | test-02    | 3         | 1        | 1024132350 |
249 | 204   | 2002-06-18 08:11 | test-02    | 4         | 1        | 1024380678 |
250 +-------+------------------+------------+-----------+----------+------------+
251 \end{verbatim}
252 \normalsize
253
254 Die Ausgabe zeigt uns, dass wir vier Jobs wiederherstellen m\"{u}ssen.
255 Der erste ist eine vollst\"{a}ndige Sicherung, und die drei folgenden sind inkrementelle Sicherungen.
256
257 Die folgende Bootstrap-Datei wird ben\"{o}tigt um alle Dateien wiederherzustellen:
258
259 \footnotesize
260 \begin{verbatim}
261 Volume=test-02
262 VolSessionId=1
263 VolSessionTime=1022753312
264 Volume=test-02
265 VolSessionId=2
266 VolSessionTime=1024128917
267 Volume=test-02
268 VolSessionId=1
269 VolSessionTime=1024132350
270 Volume=test-02
271 VolSessionId=1
272 VolSessionTime=1024380678
273 \end{verbatim}
274 \normalsize
275
276 Als letztes Beispiel nehmen wir an, dass die erste vollst\"{a}ndige Sicherung sich
277 \"{u}ber zwei verschiedene Volumes erstreckt. Die Ausgabe des Console-Kommandos
278 {\bf query} sieht eventuell so aus:
279
280 \footnotesize
281 \begin{verbatim}
282 +-------+------------------+------------+-----------+----------+------------+
283 | JobId | StartTime        | VolumeName | StartFile | VolSesId | VolSesTime |
284 +-------+------------------+------------+-----------+----------+------------+
285 | 242   | 2002-06-25 16:50 | File0003   | 0         | 1        | 1025016612 |
286 | 242   | 2002-06-25 16:50 | File0004   | 0         | 1        | 1025016612 |
287 | 243   | 2002-06-25 16:52 | File0005   | 0         | 2        | 1025016612 |
288 | 246   | 2002-06-25 19:19 | File0006   | 0         | 2        | 1025025494 |
289 +-------+------------------+------------+-----------+----------+------------+
290 \end{verbatim}
291 \normalsize
292
293 und die folgende Bootstrap-Datei wird ben\"{o}tigt, um diese Dateien wiederherzustellen:
294
295 \footnotesize
296 \begin{verbatim}
297 Volume=File0003
298 VolSessionId=1
299 VolSessionTime=1025016612
300 Volume=File0004
301 VolSessionId=1
302 VolSessionTime=1025016612
303 Volume=File0005
304 VolSessionId=2
305 VolSessionTime=1025016612
306 Volume=File0006
307 VolSessionId=2
308 VolSessionTime=1025025494
309 \end{verbatim}
310 \normalsize
311
312 \section{automatische Erzeugung der Bootstrap-Datei}
313 \index[general]{Datei!automatische Erzeugung der Bootstrap-}
314 \index[general]{automatische Erzeugung der Bootstrap-Datei }
315
316
317 Eine Sache ist vermutlich wissenswert: die Bootstrap-Dateien die automatisch
318 am Ende eines jeden Jobs erzeugt werden, sind nicht so optimiert wie die, die
319 durch das Console-Kommando {\bf restore} erzeugt werden.
320 Das ist so, weil die Bootstrap-Dateien, die am Ende des Jobs erstellt werden,
321 alle Dateien enthalten, die f\"{u}r diesen Job auf das Volume geschrieben wurden.
322 Die Konsequenz ist, dass alle Dateien die w\"{a}rend eines inkrementellen oder differenziellen
323 Jobs geschrieben wurden, beim Wiederherstellen zun\"{a}chst von der vollst\"{a}ndigen Sicherung
324 wiederhergestellt werden und dann von der inkrementellen oder differenziellen Sicherung.
325
326 Wenn die Bootstrap-Datei f\"{u}r die Wiederherstellung erstellt wird,
327 wird immer nur eine Version der Datei (die aktuellste) zur Wiederherstellung aufgelistet.
328
329 Falls Ihr Rechner noch ein bischen Zeit \"{u}brig hat, k\"{o}nnen Sie Ihre
330 Bootstrap-Dateien optimieren, indem Sie das folgende tun:
331
332 \footnotesize
333 \begin{verbatim}
334    ./bconsole
335    restore client=xxx select all
336    done
337    no
338    quit
339    Backup bootstrap file.
340 \end{verbatim}
341 \normalsize
342
343 Das wird allerdings nicht funktionieren, wenn Ihr Client mehrere Filesets hat,
344 denn dann wird noch eine weitere Eingabe erforderlich.
345 Das Console-Kommando {\bf restore client=xxx select all} erstellt den Restore-Dateibaum
346 und w\"{a}hlt alle Dateien aus, {\bf done} beendet den Auswahlmodus, dann wird die Bootstrap-Datei f\"{u}r diesen
347 Wiederherstellungs-Job geschrieben.
348 Das {\bf no} beantwortet die Frage {\bf Do you want to run this (yes/mod/no)}.
349 {\bf quit} beendet das Console-Programm, danach kann die neu erstellte Bootstrap-Datei gesichert werden.
350
351 \label{bscanBootstrap}
352 \section{Bootstrap-Datei f\"{u}r bscan}
353 \index[general]{bscan}
354 \index[general]{bscan!Bootstrap-Datei}
355 \index[general]{bscan Bootstrap-Datei}
356 Wenn Sie mit dem bscan-Programm sehr viele Volumes abfragen m\"{u}ssen,
357 wird Ihr Kommando eventuell das Limit der Kommandozeilel\"{a}nge \"{u}berschreiten (511 Zeichen).
358 In dem Fall, k\"{o}nnen Sie eine einfache Bootstrap-Datei erzeugen, die nur Volume-Namen enth\"{a}lt.
359 Ein Beispiel:
360
361 \footnotesize
362 \begin{verbatim}
363 Volume="Vol001"
364 Volume="Vol002"
365 Volume="Vol003"
366 Volume="Vol004"
367 Volume="Vol005"
368 \end{verbatim}
369 \normalsize
370
371
372 \section{ein weiteres Beispiel der Bootstrap-Datei}
373 \index[general]{Beispiel ein weiteres!Bootstrap-Datei }
374 \index[general]{ein weiteres Beispiel der Bootstrap-Datei }
375
376 Wenn Sie nur einen einzigen Job vom Volume lesen wollen, k\"{o}nnen Sie das
377 durch ausw\"{a}hlen der Job-Id tun (Funktion nicht getestet), oder besser noch,
378 Sie geben die VolumeSessionTime und VolumeSessionID an, falls Sie sie wissen.
379 (Die beiden Werte werden auf dem Job-Report ausgegeben und sind in der Katalog-Datenbank
380 zu finden.)
381 Die VolumeSessionTime und VolumeSessionID anzugeben ist auch die Art,
382 wie Bacula Wiederherstellungen durchf\"{u}hrt.
383 Eine Bootstrap-Datei kann dann wie folgt aussehen:
384
385 \footnotesize
386 \begin{verbatim}
387 Volume="Vol001"
388 VolSessionId=10
389 VolSessionTime=1080847820
390 \end{verbatim}
391 \normalsize
392
393 Wenn Sie wissen, wie viele Dateien gesichert wurden (siehe den Job-Report),
394 k\"{o}nnen Sie die Auswahl enorm beschleunigen, indem Sie der Bootstrap-Datei
395 folgendes hinzuf\"{u}gen (angenommen es waren 157 Dateien):
396
397 \footnotesize
398 \begin{verbatim}
399 FileIndex=1-157
400 Count=157
401 \end{verbatim}
402 \normalsize
403
404 Letztendlich, wenn Sie auch die File-Nummer wissen, wo auf dem Volume die
405 ausgew\"{a}hlten Dateien liegen, k\"{o}nnen Sie das bcopy-Programm veranlassen,
406 zum richtigen File auf dem Volumen zu springen, ohne jeden Eintrag lesen zu m\"{u}ssen:
407
408 \footnotesize
409 \begin{verbatim}
410 VolFile=20
411 \end{verbatim}
412 \normalsize
413
414 Bootstrap-Dateien sind weder magisch noch kompliziert. Sie zu lesen und Bacula sinnvoll mit ihnen
415 arbeiten zu lassen *ist* magisch, aber darum brauchen Sie sich nicht k\"{u}mmern.
416
417 Wenn Sie eine *echte* Bootstrap-Datei sehen wollen, starten sie das Console-Programm und geben Sie
418 {\bf restore} ein, w\"{a}hlen ein paar Dateien aus und antworten mit {\bf no},
419 wenn Sie gefragt werden, ob Sie die Wiederherstellung starten wollen. Dann finden Sie die Bootstrap-Datei
420 im Arbeitsverzeichnis des Director-Dienstes (z.B. unter /var/lib/bacula/backup-dir.restore.2.bsr).