]> git.sur5r.net Git - bacula/docs/blob - docs/manual-de/bootstrap.tex
not in the english manual-directory
[bacula/docs] / docs / manual-de / 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-Komandos, 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 Job-Name-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 Datei wiederherzustellen, ist die Angabe eines Wertes (oder einer Liste von File-Indexen)
137    erforderlich.
138
139 \item [Slot]
140    \index[general]{Slot }
141    Dieser Wert gibt den Autochanger-Slot an. F\"{u}r jedes Volume darf nur ein Slot angegeben werden.
142
143 \item [Stream]
144    \index[general]{Stream }
145    Dieser Wert gibt einen Stream (Strom) oder eine Liste bzw. einen Bereich von Streams an.
146    Solange Sie nicht wirklich wissen, was Sie tun, (wenn Sie das interne Arbeiten von Bacula kennen),
147    sollten Sie auf diese Angabe verzichten.
148    Dieser Wert ist optional und wird von Bacula nicht zum zur\"{u}cksichern ben\"{o}tigt.
149
150 \item [*JobType]
151    \index[general]{*JobType }
152    Noch nicht implementiert.
153
154 \item [*JobLevel]
155    \index[general]{*JobLevel }
156    Noch nicht implementiert.
157 \end{description}
158
159 Bei der Angabe des Volume ist zu bedenken, dass dies der erste Parameter sein muss.
160 Alle anderen Parameter k\"{o}nnen in beliebiger Reihenfolge und Anzahl hinter einem
161 Volume-Eintrag angegeben werden.
162
163 Mehrere Volume-Eintr\"{a}ge k\"{o}nnen in der selben Bootstrap-Datei vorkommen,
164 aber mit jedem Vorkommen beginnt ein neuer Satz an Filter, g\"{u}ltig f\"{u}r
165 das abgegebene Volume.
166
167 Beim verarbeiten der Bootstrap-Datei werden alle Schl\"{u}sselw\"{o}rter
168 unterhalb eines Volume-Eintrags mit {\bf UND} verkn\"{u}pft.
169 Also wird:
170
171 \footnotesize
172 \begin{verbatim}
173 Volume = Test-01
174 Client = "My machine"
175 FileIndex = 1
176 \end{verbatim}
177 \normalsize
178
179 auf alle Dateien auf dem Volume Test-01 {\bf UND} von Client My machine
180 {\bf UND} mit dem Fileindex 1 passen.
181
182 Mehrfach angegebene Schl\"{u}sselw\"{o}rter werden mit {\bf ODER} verkn\"{u}pft.
183 Also wird:
184
185 \footnotesize
186 \begin{verbatim}
187 Volume = Test-01
188 Client = "My machine"
189 Client = "Backup machine"
190 FileIndex = 1
191 \end{verbatim}
192 \normalsize
193
194 auf alle Dateien auf dem Volume Test-01 {\bf UND} von Client My machine
195 {\bf ODER} vom Client Backup machine {\bf UND} mit dem Fileindex 1 passen.
196
197 F\"{u}r Zahlenwerte k\"{o}nnen Sie einen Bereich oder eine Liste angeben,
198 f\"{u}r alle anderen Parameter, bis auf Volumes, nur eine Liste.
199 Eine Liste ist gleichbedeutend mit mehrfachen Angaben eines Parameters.
200 Ein Beispiel 
201
202 \footnotesize
203 \begin{verbatim}
204 Volume = Test-01
205 Client = "My machine", "Backup machine"
206 FileIndex = 1-20, 35
207 \end{verbatim}
208 \normalsize
209
210 passt auf alle Dateien auf dem Volume Test-01 {\bf UND} von Client My machine
211 {\bf ODER} vom Client Backup machine {\bf UND} mit dem Fileindex 1 {\bf ODER}
212 2 {\bf ODER} 3 ... {\bf ODER} 20 {\bf ODER} 35.
213
214 Wie oben erw\"{a}hnt, k\"{o}nnen mehrere Volume-Eintr\"{a}ge in der selben
215 Bootstrap-Datei stehen. Jedes Vorkommen eines Volume-Eintrags beginnt einen neuen
216 Satz an Filterregeln der auf dem angegebenen Volume angewendet wird und mit weiteren
217 Volume-Eintr\"{a}gen \"{u}ber {\bf ODER} verkn\"{u}pft wird.
218
219 Als ein Beispiel nehmen wir an, dass wir, mit dem Console-Kommando {\bf query} ,
220 nach dem Satz Volumes fragen, die ben\"{o}tigt werden, um alle Dateien des Clients Rufus
221 wiederherstellen zu k\"{o}nnen:
222
223 \footnotesize
224 \begin{verbatim}
225 Using default Catalog name=MySQL DB=bacula
226 *query
227 Available queries:
228      1: List Job totals:
229      2: List where a file is saved:
230      3: List where the most recent copies of a file are saved:
231      4: List total files/bytes by Job:
232      5: List total files/bytes by Volume:
233      6: List last 10 Full Backups for a Client:
234      7: List Volumes used by selected JobId:
235      8: List Volumes to Restore All Files:
236 Choose a query (1-8): 8
237 Enter Client Name: Rufus
238 +-------+------------------+------------+-----------+----------+------------+
239 | JobId | StartTime        | VolumeName | StartFile | VolSesId | VolSesTime |
240 +-------+------------------+------------+-----------+----------+------------+
241 | 154   | 2002-05-30 12:08 | test-02    | 0         | 1        | 1022753312 |
242 | 202   | 2002-06-15 10:16 | test-02    | 0         | 2        | 1024128917 |
243 | 203   | 2002-06-15 11:12 | test-02    | 3         | 1        | 1024132350 |
244 | 204   | 2002-06-18 08:11 | test-02    | 4         | 1        | 1024380678 |
245 +-------+------------------+------------+-----------+----------+------------+
246 \end{verbatim}
247 \normalsize
248
249 Die Ausgabe zeigt uns, dass wir vier Jobs wiederherstellen m\"{u}ssen.
250 Der erste ist eine vollst\"{a}ndige Sicherung, und die drei folgenden sind inkrementelle Sicherungen.
251
252 Die folgende Bootstrap-Datei wird ben\"{o}tigt um alle Dateien wiederherzustellen:
253
254 \footnotesize
255 \begin{verbatim}
256 Volume=test-02
257 VolSessionId=1
258 VolSessionTime=1022753312
259 Volume=test-02
260 VolSessionId=2
261 VolSessionTime=1024128917
262 Volume=test-02
263 VolSessionId=1
264 VolSessionTime=1024132350
265 Volume=test-02
266 VolSessionId=1
267 VolSessionTime=1024380678
268 \end{verbatim}
269 \normalsize
270
271 Als letztes Beispiel nehmen wir an, dass die erste vollst\"{a}ndige Sicherung sich
272 \"{u}ber zwei verschiedene Volumes erstreckt. Die Ausgabe des Console-Kommandos
273 {\bf query} sieht eventuell so aus:
274
275 \footnotesize
276 \begin{verbatim}
277 +-------+------------------+------------+-----------+----------+------------+
278 | JobId | StartTime        | VolumeName | StartFile | VolSesId | VolSesTime |
279 +-------+------------------+------------+-----------+----------+------------+
280 | 242   | 2002-06-25 16:50 | File0003   | 0         | 1        | 1025016612 |
281 | 242   | 2002-06-25 16:50 | File0004   | 0         | 1        | 1025016612 |
282 | 243   | 2002-06-25 16:52 | File0005   | 0         | 2        | 1025016612 |
283 | 246   | 2002-06-25 19:19 | File0006   | 0         | 2        | 1025025494 |
284 +-------+------------------+------------+-----------+----------+------------+
285 \end{verbatim}
286 \normalsize
287
288 und die folgende Bootstrap-Datei wird ben\"{o}tigt, um diese Dateien wiederherzustellen:
289
290 \footnotesize
291 \begin{verbatim}
292 Volume=File0003
293 VolSessionId=1
294 VolSessionTime=1025016612
295 Volume=File0004
296 VolSessionId=1
297 VolSessionTime=1025016612
298 Volume=File0005
299 VolSessionId=2
300 VolSessionTime=1025016612
301 Volume=File0006
302 VolSessionId=2
303 VolSessionTime=1025025494
304 \end{verbatim}
305 \normalsize
306
307 \section{automatische Erzeugung der Bootstrap-Datei}
308 \index[general]{Datei!automatische Erzeugung der Bootstrap-}
309 \index[general]{automatische Erzeugung der Bootstrap-Datei }
310
311
312 Eine Sache ist vermutlich wissenswert: die Bootstrap-Dateien die automatisch
313 am Ende eines jeden Jobs erzeugt werden, sind nicht so optimiert wie die, die
314 durch das Console-Kommando {\bf restore} erzeugt werden.
315 Das ist so, weil die Bootstrap-Dateien, die am Ende des Jobs erstellt werden,
316 alle Dateien enthalten, die f\"{u}r diesen Job auf das Volume geschrieben wurden.
317 Die Konsequenz ist, dass alle Dateien die w\"{a}rend eines inkrementellen oder differenziellen
318 Jobs geschrieben wurden, beim Wiederherstellen zun\"{a}chst von der vollst\"{a}ndigen Sicherung
319 wiederhergestellt werden und dann von der inkrementellen oder differenziellen Sicherung.
320
321 Wenn die Bootstrap-Datei f\"{u}r die Wiederherstellung erstellt wird,
322 wird immer nur eine Version der Datei (die aktuellste) zur Wiederherstellung aufgelistet.
323
324 Falls Ihr Rechner noch ein bischen Zeit \"{u}brig hat, k\"{o}nnen Sie Ihre
325 Bootstrap-Dateien optimieren, indem Sie das folgende tun:
326
327 \footnotesize
328 \begin{verbatim}
329    ./console
330    restore client=xxx select all
331    done
332    no
333    quit
334    Backup bootstrap file.
335 \end{verbatim}
336 \normalsize
337
338 Das wird allerdings nicht funktionieren, wenn Ihr Client mehrere Filesets hat,
339 denn dann wird noch eine weitere Eingabe erforderlich.
340 Das Console-Kommando {\bf restore client=xxx select all} erstellt den Restore-Dateibaum
341 und w\"{a}hlt alle Dateien aus, {\bf done} beendet den Auswahlmodus, dann wird die Bootstrap-Datei f\"{u}r diesen
342 Wiederherstellungs-Job geschrieben.
343 Das {\bf no} beantwortet die Frage {\bf Do you want to run this (yes/mod/no)}.
344 {\bf quit} beendet das Console-Programm, danach kann die neu erstellte Bootstrap-Datei gesichert werden.
345
346 \label{bscanBootstrap}
347 \section{Bootstrap-Datei f\"{u}r bscan}
348 \index[general]{bscan}
349 \index[general]{bscan!Bootstrap-Datei}
350 \index[general]{bscan Bootstrap-Datei}
351 Wenn Sie mit dem bscan-Programm sehr viele Volumes abfragen m\"{u}ssen,
352 wird Ihr Kommando eventuell das Limit der Kommandozeilel\"{a}nge \"{u}berschreiten (511 Zeichen).
353 In dem Fall, k\"{o}nnen Sie eine einfache Bootstrap-Datei erzeugen, die nur Volume-Namen enth\"{a}lt.
354 Ein Beispiel:
355
356 \footnotesize
357 \begin{verbatim}
358 Volume="Vol001"
359 Volume="Vol002"
360 Volume="Vol003"
361 Volume="Vol004"
362 Volume="Vol005"
363 \end{verbatim}
364 \normalsize
365
366
367 \section{ein weiteres Beispiel der Bootstrap-Datei}
368 \index[general]{Beispiel ein weiteres!Bootstrap-Datei }
369 \index[general]{ein weiteres Beispiel der Bootstrap-Datei }
370
371 Wenn Sie nur einen einzigen Job vom Volume lesen wollen, k\"{o}nnen Sie das
372 durch ausw\"{a}hlen der Job-Id tun (Funktion nicht getestet), oder besser noch,
373 Sie geben die VolumeSessionTime und VolumeSessionID an, falls Sie sie wissen.
374 (Die beiden Werte werden auf dem Job-Report ausgegeben und sind in der Katalog-Datenbank
375 zu finden.)
376 Die VolumeSessionTime und VolumeSessionID anzugeben ist auch die Art,
377 wie Bacula Wiederherstellungen durchf\"{u}hrt.
378 Eine Bootstrap-Datei kann dann wie folgt aussehen:
379
380 \footnotesize
381 \begin{verbatim}
382 Volume="Vol001"
383 VolSessionId=10
384 VolSessionTime=1080847820
385 \end{verbatim}
386 \normalsize
387
388 Wenn Sie wissen, wie viele Dateien gesichert wurden (siehe den Job-Report),
389 k\"{o}nnen Sie die Auswahl enorm beschleunigen, indem Sie der Bootstrap-Datei
390 folgendes hinzuf\"{u}gen (angenommen es waren 157 Dateien):
391
392 \footnotesize
393 \begin{verbatim}
394 FileIndex=1-157
395 Count=157
396 \end{verbatim}
397 \normalsize
398
399 Letztendlich, wenn Sie auch die File-Nummer wissen, wo auf dem Volume die
400 ausgew\"{a}hlten Dateien liegen, k\"{o}nnen Sie das bcopy-Programm veranlassen,
401 zum richtigen File auf dem Volumen zu springen, ohne jeden Eintrag lesen zu m\"{u}ssen:
402
403 \footnotesize
404 \begin{verbatim}
405 VolFile=20
406 \end{verbatim}
407 \normalsize
408
409 Bootstrap-Dateien sind weder magisch noch kompliziert. Sie zu lesen und Bacula sinnvoll mit ihnen
410 arbeiten zu lassen *ist* magisch, aber darum brauchen Sie sich nicht k\"{u}mmern.
411
412 Wenn Sie eine *echte* Bootstrap-Datei sehen wollen, starten sie das Console-Programm und geben Sie
413 {\bf restore} ein, w\"{a}hlen ein paar Dateien aus und antworten mit {\bf no},
414 wenn Sie gefragt werden, ob Sie die Wiederherstellung starten wollen. Dann finden Sie die Bootstrap-Datei
415 im Arbeitsverzeichnis des Director-Dienstes (z.B. unter /var/lib/bacula/backup-dir.restore.2.bsr).