]> git.sur5r.net Git - bacula/docs/blob - docs/manual-fr/restore.tex
ebl add log_stdout method
[bacula/docs] / docs / manual-fr / restore.tex
1 %%
2 %%
3
4 \section*{La commande restore de la console Bacula}
5 \label{_ChapterStart13}
6 \index[general]{Commande!restore de la console Bacula}
7 \index[general]{La commande restore de la console Bacula}
8 \addcontentsline{toc}{section}{La commande restore de la console Bacula}
9
10 \subsection*{G\'en\'eralit\'es}
11 \index[general]{G\'en\'eralit\'es}
12 \addcontentsline{toc}{subsection}{G\'en\'eralit\'es}
13
14 Nous allons maintenant d\'ecrire la restauration de fichiers avec la commande
15 {\bf restore} de la Console, qui est le mode de restauration recommand\'e.
16 Il existe cependant un programme ind\'ependant nomm\'e {\bf bextract}, qui permet
17 lui aussi de restaurer des fichiers. Pour plus d'informations sur ce
18 programme, consultez le chapitre \ilink{Programmes utilitaires Bacula}{bextract}
19 de ce manuel. Vous y trouverez aussi des informations sur le programme {\bf bls}
20 qui sert \`a produire une liste du contenu de vos volumes, et sur le programme
21 {\bf bscan} qui vous sera utilie si vous voulez restaurer les enregistrements
22 du catalogue relatifs \`a un ancien volume qui n'y figure plus.
23
24 En g\'en\'eral, pour restaurer un fichier ou un ensemble de fichiers, vous devez
25 ex\'ecuter un job de type {\bf restore}, par cons\'equent, vous devez pr\'ed\'efinir
26 un tel job dans le fichier de configuration de votre Director. Les param\`etres
27 (Client, FileSet,...) que vous d\'efinissez ici ne sont pas importants,
28 Bacula les ajustera automatiquement lors de l'utilisation de {\bf restore}.
29
30 Bacula \'etant un programme r\'eseau, il vous appartient de vous assurer que
31 vous avez s\'electionn\'e le bon client et le bon disque dur pour recevoir la
32 restauration. Bacula peut sauvegarder le client A et restaurer ses fichiers 
33 sur le client B, pourvu que leurs syst\`emes ne soient pas trop diff\'erents 
34 au niveau de leurs structures de fichiers. Par d\'efaut, Bacula restaure les 
35 donn\'ees sur leur client d'origine, mais pas \`a leur emplacement d'origine : 
36 dans le r\'epertoire {\bf /tmp/bacula-restores}. Vous pouvez modifier ces 
37 valeurs par d\'efaut lorsque la commande {\bf restore} vous demande confirmation 
38 d'ex\'ecution du job en choisissant l'option {\bf mod}.
39
40 \label{Example1}
41 \subsection*{La commande Restore}
42 \index[general]{Commande!Restore }
43 \index[general]{La commande Restore}
44 \addcontentsline{toc}{subsection}{La commande Restore}
45 Puisque Bacula maintient un catalogue des fichiers sauvegard\'es, et des volumes 
46 o\`u ils sont stock\'es, il peut se charger de la majeure partie du travail 
47 d'intendance. Ainsi, il vous suffit de sp\'ecifier le type de restauration que 
48 vous souhaitez (d'apr\`es la derni\`ere sauvegarde, d'apr\`es la derni\`ere sauvegarde 
49 ant\'erieure \`a une date sp\'ecifi\'ee...), et quels fichiers vous voulez restaurer. 
50
51 Ceci est r\'ealis\'e par la commande {\bf restore} de la Console. Vous s\'electionnez 
52 d'abord le type de restauration souhait\'ee ce qui entra\^ine la s\'election des 
53 JobIds requis et la construction d'une arborescence interne \`a Bacula contenant 
54 les enregistrements de fichiers des JobIds s\'electionn\'es. A ce stade, le 
55 processus de restauration entre dans un mode o\`u vous pouvez naviguer 
56 interactivement dans l'arborescence des fichiers disponibles pour restauration 
57 et s\'electionner ceux que vous voulez restaurer. Ce mode est similaire au 
58 programme de s\'election de fichier interactif standard d'Unix {\bf restore}.
59
60 Si vos fichiers ont \'et\'e \'elagu\'es, la commande {\bf restore} sera dans 
61 l'incapacit\'e de les trouver. Voyez ci-dessous pour plus de d\'etails sur ce cas 
62 de figure.
63
64 Dans la Console, apr\`es avoir saisi {\bf restore}, le menu suivant vous est 
65 pr\'esent\'e :
66
67 \footnotesize
68 \begin{verbatim}
69 First you select one or more JobIds that contain files
70 to be restored. You will be presented several methods
71 of specifying the JobIds. Then you will be allowed to
72 select which files from those JobIds are to be restored.
73 To select the JobIds, you have the following choices:
74      1: List last 20 Jobs run
75      2: List Jobs where a given File is saved
76      3: Enter list of comma separated JobIds to select
77      4: Enter SQL list command
78      5: Select the most recent backup for a client
79      6: Select backup for a client before a specified time
80      7: Enter a list of files to restore
81      8: Enter a list of files to restore before a specified time
82      9: Find the JobIds of the most recent backup for a client
83     10: Find the JobIds for a backup for a client before a specified time
84     11: Enter a list of directories to restore for found JobIds
85     12: Cancel
86 Select item:  (1-12):
87 \end{verbatim}
88 \normalsize
89
90 \begin{itemize}
91 \item Le choix 1 \'enum\`ere les 20 derniers jobs ex\'ecut\'es. Si vous trouvez 
92    celui (ceux) que vous voulez, vous pouvez ensuite faire le choix 3 et entrer 
93    son (leurs) JobId(s).
94
95 \item Le choix 2 affiche tous les Jobs ayant sauvegard\'e un fichier 
96    sp\'ecifi\'e. Si vous trouvez celui (ceux) que vous voulez, vous pouvez ensuite 
97    faire le choix 3 et entrer son (leurs) JobId(s).
98
99 \item Le choix 3 vous permet de saisir une liste de JobIds, s\'epar\'es par des 
100    virgules. Les fichiers de ces jobs seront plac\'es dans l'arborescence afin 
101    que vous puissiez s\'electionner ceux que vous voulez restaurer.
102
103 \item Le choix 4 vous permet d'entrer une requ\^ete SQL arbitraire. C'est 
104    certainement le moyen le plus primitif pour trouver les jobs d\'esir\'es, 
105    mais aussi le plus flexible. Si vous trouvez celui (ceux) que vous voulez, 
106    vous pouvez ensuite faire le choix 3 et entrer son (leurs) JobId(s).
107       
108 \item Le choix 5 s\'electionne automatiquement la full la plus r\'ecente, et toutes 
109    les incr\'ementales et diff\'erentielles subs\'equentes \`a cette full pour un 
110    client sp\'ecifi\'e. Il s'agit l\`a des jobs et fichiers qui, si vous les 
111    restaurez, ram\`eneront votre syst\`eme \`a son dernier \'etat sauvegard\'e. 
112    Les JobIds sont automatiquement charg\'es dans l'arborescence. C'est 
113    probablement le plus pratique des choix propos\'es pour restaurer un 
114    client \`a son \'etat le plus r\'ecent.
115
116    Notez que ce processus de s\'election automatique ne s\'electionnera jamais 
117    un job qui a \'echou\'e (termin\'e avec un statut d'erreur). Si vous disposez 
118    d'un tel job dont vous voulez extraire des fichiers, vous devez 
119    eplicitement entrer son JobId au niveau du choix 3 et choisir les fichiers 
120    \`a restaurer.
121    
122    Si certains de jobs requis pour la restauration ont eu leurs enregistrements 
123    de fichiers \'elagu\'es, la restauration sera incompl\`ete. Bacula ne d\'etecte 
124    pas, pour l'instant, cette condition. Vous pouvez cependant la 
125    contr\^oler en examinant attentivement la liste des jobs s\'electionn\'es 
126    et affich\'es par Bacula. Si vous trouvez des jobs dont le champ JobFiles 
127    est \`a z\'ero alors que ces fichiers auraient d\^u \^etre sauvegard\'es, alors 
128    vous pouvez vous attendre \`a des probl\`emes.
129    
130    Si tous les enregistrements de fichiers ont \'et\'e \'elagu\'es, Bacula constatera 
131    qu'il n'y a aucune r\'ef\'erence \`a aucun fichier pour le JobIds s\'electionn\'es 
132    et vous en informera, et vous proposera de faire une restauration compl\`ete 
133    (non s\'elective) de ces JobIds. Ceci est possible car Bacula sait encore 
134    o\`u commencent les donn\'ees sur les volumes, m\^eme s'il ne sait plus o\`u sont 
135    les fichiers individuellement.
136    
137 \item Le choix 6 vous permet de sp\'ecifier une date et un heure. Bacula 
138    s\'electionne alors automatiquement la plus r\'ecente full ant\'erieure \`a cette date 
139    ainsi que les incr\'ementales et diff\'erentielles subs\'equentes \`a cette full et 
140    ant\'erieures \`a cette date.
141
142 \item Le choix 7 vous permet de sp\'ecifier un ou plusieurs noms de fichiers 
143    (le chemin absolu est requis) \`a restaurer. Les noms de fichiers sont saisis 
144    un par un, \`a moins que vous ne pr\'ef\'eriez cr\'eer un fichier pr\'efix\'e du 
145    caract\`ere "moins" (\lt{}) que Bacula consid\`ere comme une liste de fichier 
146    \`a restaurer. Pour quitter ce mode, entrez une ligne vide.
147
148 \item Le choix 8 vous permet de sp\'ecifier une date et une heure avant 
149    d'entrer les noms de fichiers. Voir le choix 7 pour plus de d\'etails.
150
151 \item Le choix 9 vous permet de d\'eterminer les JobIds de la sauvegarde 
152    la plus r\'ecente pour un client. C'est essentiellement la m\^eme chose 
153    que le choix 5 (le m\^eme code est utilis\'e), mais ces JobIds sont 
154    conserv\'es en interne comme si vous les aviez saisis manuellement. 
155    Vous pouvez alors faire le choix 11 pour restaurer un ou plusieurs 
156    r\'epertoires.
157    
158 \item Le choix 10 est le m\^eme que le 9, sauf qu'il vous permet d'entrer 
159    une date butoir (comme pour le choix 6) pour la s\'election des JobIds. 
160    Ces JobIds sont conserv\'es en interne comme si vous les aviez saisis manuellement.
161    
162 \index[general]{Restaurer des r\'epertoires}
163 \item Le choix 11 vous permet d'entrer une liste de JobIds \`a partir de 
164    laquelle vous pouvez s\'electionner les r\'epertoires \`a restaurer. La liste de 
165    JobIds peut avoir \'et\'e \'etablie pr\'ec\'edemment \`a l'aide des choix 9 ou 10 
166    du menu. Vous pouvez alors entrer le chemin absolu d'un r\'epertoire, ou 
167    un nom de fichier pr\'efix\'e d'un signe "moins" (\lt{}) contenant la liste 
168    des r\'epertoires \`a restaurer. Tous les fichiers des r\'epertoires s\'electionn\'es 
169    seront restaur\'es, mais pas les sous-r\'epertoires, \`a moins que vous ne les 
170    sp\'ecifiiez explicitement. 
171    
172 \item  Le choix 12 vous permet d'abandonner la restauration.
173 \end{itemize}
174
175 A titre d'exemple, supposons que nous s\'electionnions l'option 5 (restaurer \`a 
176 l'\'etat le plus r\'ecent). Bacula vous demande alors le client d\'esir\'e ce qui, 
177 sur mon syst\`eme, se manifeste ainsi :
178
179 \footnotesize
180 \begin{verbatim}
181 Defined clients:
182      1: Rufus
183      2: Matou
184      3: Polymatou
185      4: Minimatou
186      5: Minou
187      6: MatouVerify
188      7: PmatouVerify
189      8: RufusVerify
190      9: Watchdog
191 Select Client (File daemon) resource (1-9):
192      
193 \end{verbatim}
194 \normalsize
195
196 Si vous n'avez qu'un client, il est automatiquement s\'electionn\'e. Dans le cas 
197 pr\'esent, j'entre {\bf Rufus} pour s\'electionner ce client. Bacula a 
198 maintenant conna\^itre le FileSet \`a restaurer, aussi il affiche :
199
200 \footnotesize
201 \begin{verbatim}
202 The defined FileSet resources are:
203      1: Full Set
204      2: Kerns Files
205 Select FileSet resource (1-2):
206      
207 \end{verbatim}
208 \normalsize
209
210 J'opte pour le choix 1, ma sauvegarde full. En principe, vous n'aurez qu'un 
211 FileSet pour chaque job, et si vos machines de ressemblent (m\^emes syst\`emes), 
212 vous pouvez n'avoir qu'un seul FileSet pour tous vos clients.
213
214 A ce stade, Bacula d\'etient toutes les informations dont il a besoin pour 
215 trouver le jeu de sauvegardes le plus r\'ecent. Il va maintenant interroger le 
216 cataloguie, ce qui peut prendre un peu de temps, et afficher quelque chose 
217 comme :
218
219 \footnotesize
220 \begin{verbatim}
221 +-------+------+----------+-------------+-------------+------+-------+----------
222 --+
223 | JobId | Levl | JobFiles | StartTime   | VolumeName  | File | SesId |
224 VolSesTime |
225 +-------+------+----------+-------------+-------------+------+-------+----------
226 --+
227 | 1,792 | F    |  128,374 | 08-03 01:58 | DLT-19Jul02 |   67 |    18 |
228 1028042998 |
229 | 1,792 | F    |  128,374 | 08-03 01:58 | DLT-04Aug02 |    0 |    18 |
230 1028042998 |
231 | 1,797 | I    |      254 | 08-04 13:53 | DLT-04Aug02 |    5 |    23 |
232 1028042998 |
233 | 1,798 | I    |       15 | 08-05 01:05 | DLT-04Aug02 |    6 |    24 |
234 1028042998 |
235 +-------+------+----------+-------------+-------------+------+-------+----------
236 --+
237 You have selected the following JobId: 1792,1792,1797
238 Building directory tree for JobId 1792 ...
239 Building directory tree for JobId 1797 ...
240 Building directory tree for JobId 1798 ...
241 cwd is: /
242 $
243 \end{verbatim}
244 \normalsize
245
246 (Certaines colonnes sont tromqu\'ees pour des n\'ecessit\'es de mise en page).
247
248 Selon le nombre de {\bf JobFiles} pour chaque JobId, la construction de 
249 l'arborescence peut prendre un certain temps. Si vous constatez que tous les 
250 JobFiles sont \`a z\'ero, vos fichiers ont probalement \'et\'e \'elagu\'es et vous ne 
251 pourrez pas s\'electionner les fichiers individuellement : vous devrez 
252 restaurer tout ou rien.
253
254 Dans notre exemple, Bacula a trouv\'e quatre jobs qui comprennent la 
255 sauvegarde la plus r\'ecente du client et du FileSet sp\'ecifi\'es. Deux des jobs 
256 ont le m\^eme JobId car le job a \'ecrit sur deux volumes diff\'erents. Le 
257 troisi\`eme est une incr\'ementale qui n'a sauvegard\'e que 254 fichier sur les 
258 128 374 de la full. Le quatri\`eme est aussi une incr\'ementale, et n'a sauvegard\'e 
259 que 15 fichiers. 
260
261 Maintenant Bacula ins\`ere ces jobs dans l'arborescence, sans en marquer aucun 
262 pour restauration par d\'efaut. Il vous indique le nombre de fichiers dans 
263 l'arbre, et vous informe que le r\'epertoire de travail courant ({\bf cwd}) est 
264 /. Finalement, Bacula vous invite avec le signe (\$) \`a saisir des commandes 
265 pour vous d\'eplacer dans l'arborescence, et s\'electionner des fichiers.
266
267 Si vous voulez que tous les fichiers de l'arbre soient marqu\'es pour 
268 restauration \`a sa construction, tapez {\bf restore all}.
269
270 Plut\^ot que de choisir l'option 5 du premier menu (s\'electionner la 
271 sauvegarde la plus r\'ecente pour un client), si nous avions choisi l'option 3 
272 (Entrer une liste de JobIds \`a s\'electionner), et si nous avions saisi 
273 {\bf 1792,1797,1798}, nous serions arriv\'es au m\^eme point. 
274              
275 Il faut noter un point si vous saisissez manuellement les JobIds : vous devez 
276 les entrer dans l'ordre o\`u ils ont \'et\'e ex\'ecut\'es (en g\'en\'eral, l'ordre croissant. 
277 Si vous les sasissez dans un ordre diff\'erent, vous courrez le risque de ne pas 
278 version la plus r\'ecente d'un fichier sauvegard\'e plusieurs fois si celui-ci a \'et\'e 
279 sauvegard\'e dans plusieurs jobs.
280
281 Entre vos JobIds directement peut aussi vous permettre de restaurer depuis 
282 un job qui a \'ecrit des donn\'ees sur les volumes mais qui s'est termin\'e en erreur.
283
284 Dans le mode s\'election de fichiers, vous pouvez utiliser {\bf help} ou une 
285 question (?) pour produire un r\'esum\'e des commandes disponibles :
286
287 \footnotesize
288 \begin{verbatim}
289  Command    Description
290   =======    ===========
291   cd         change current directory
292   count      count marked files in and below the cd
293   dir        long list current directory, wildcards allowed
294   done       leave file selection mode
295   estimate   estimate restore size
296   exit       same as done command
297   find       find files, wildcards allowed
298   help       print help
299   ls         list current directory, wildcards allowed
300   lsmark     list the marked files in and below the cd
301   mark       mark dir/file to be restored recursively in dirs
302   markdir    mark directory name to be restored (no files)
303   pwd        print current working directory
304   unmark     unmark dir/file to be restored recursively in dir
305   unmarkdir  unmark directory name only no recursion
306   quit       quit and do not do restore
307   ?          print help
308 \end{verbatim}
309 \normalsize
310
311 Par d\'efaut, aucun fichier n'est s\'electionn\'e pour restauration (sauf si vous  
312 avez ajout\'e {\bf all} \`a la ligne de commande). Si, \`a ce stade, vous voulez 
313 tout restaurer, vous devriez saisir {\bf mark *}, puis {\bf done}, Bacula 
314 \'ecrira alors les donn\'ees bootstrap dans un fichier et sollicitera votre 
315 approbation pour d\'emarrer la restauration.
316
317 Si vous n'utilisez pas {\bf mark *}, vous commencez avec une s\'election vide. 
318 Vous pouvez simplement regarder et marquer ({\bf mark}) les fichiers et/ou 
319 r\'epertoires qui vous int\'eressent. Il est ais\'e de commettre une erreur dans ces 
320 op\'erations, et la gestion des erreurs dans Bacula n'est pas parfaite, aussi 
321 contr\^olez votre travail avec la commande {\bf ls} ou {\bf dir} pour voir 
322 quels fichiers ont \'et\'e s\'electionn\'es. Les fichiers s\'electionn\'es sont pr\'ec\'ed\'es 
323 d'une ast\'erisque.
324
325 Pour contr\^oler ce qui est marqu\'e et ce qui ne l'est pas utilisez la commande 
326 {\bf count} qui affiche :
327
328 \footnotesize
329 \begin{verbatim}
330 128401 total files. 128401 marked to be restored.
331      
332 \end{verbatim}
333 \normalsize
334
335 Chacune des commandes ci-dessus sera expliqu\'e plus en d\'etail dans la 
336 prochaine section. Poursuivons avec notre exemple, en validant la restauration de 
337 tous les fichiers. En saisissant {\bf done}, Bacula affiche :
338
339 \footnotesize
340 \begin{verbatim}
341 Bootstrap records written to /home/kern/bacula/working/restore.bsr
342 The restore job will require the following Volumes:
343    
344    DLT-19Jul02
345    DLT-04Aug02
346 128401 files selected to restore.
347 Run Restore job
348 JobName:    kernsrestore
349 Bootstrap:  /home/kern/bacula/working/restore.bsr
350 Where:      /tmp/bacula-restores
351 Replace:    always
352 FileSet:    Kerns Files
353 Client:     Rufus
354 Storage:    SDT-10000
355 JobId:      *None*
356 OK to run? (yes/mod/no):
357     
358 \end{verbatim}
359 \normalsize
360
361 Examinez chaque \'el\'ement attentivement pour vous assurer que tout est 
362 conforme \`a ce que vous souhaitez. En particulier, v\'erifiez la ligne {\bf where}, 
363 qui vous indique dans quelle partie du syst\`eme de fichiers vos donn\'ees 
364 seront restaur\'ees, et quel client va les recevoir (par d\'efaut, les 
365 restaurations ont lieu sur le client d'origine). Ces param\`etres n'auront pas 
366 forc\'ement les bonnes valeurs, mais vous pouvez les modifier \`a l'aide 
367 de la commande {\bf mod} et en vous laissant guider par l'invite de la 
368 console.
369
370 L'affichage ci-dessus suppose que vous ayez d\'efini une ressource Job de type 
371 {\bf restore} dans le fichier de configuration de votre Director. en 
372 principe, vous n'en n'aurez besoin que d'une, car, par nature, une 
373 restauration est une op\'eration essentiellement manuelle. A l'aide de la 
374 Console, vous pourrez modifier le job Restore pour faire ce que vous voulez 
375 qu'il fasse.
376
377 Un exemple de ressource Job de type restore est donn\'e plus bas.
378
379 Pour en revenir \`a notre exemple, en plus de v\'erifier le client, il est sage 
380 de v\'erifier que le p\'eriph\'erique de stockage choisi par Bacula est le bon. 
381 Bien que le FileSet soit pr\'esent\'e, il est en fait ignor\'e dans la restauration. 
382 Le processus de restauration choisit ses fichiers en lisant le fichier 
383 {\bf bootstrap}, et restaure tous les fichiers associ\'es au JobId consid\'er\'e 
384 si ce fichier n'est pas sp\'ecifi\'e. 
385
386 Enfin, avant de lancer la restauration, notez que le lieu par d\'efaut pour les 
387 fichiers restaur\'es n'est pas leur emplacement d'origine mais le r\'epertoire 
388 {\bf /tmp/bacula-restores}. Vous pouvez modifier cette valeur par d\'efaut dans 
389 le fichier de configuration du Director, ou avec l'option {\bf mod}. Si vous 
390 voulez restaurer les fichiers \`a leurs emplacements d'origine, modifiez l'option 
391 {\bf where} : sp\'ecifiez la racine (\bf /} ou rien du tout.
392
393 Si vous entrez maintenant {\bf yes}, Bacula lance la restauration. le Storage 
394 Daemon va d'abord requ\'erir le volume {\bf DLT-19Jul02}, puis le {\bf DLT-04Aug02} 
395 une fois qu'il aura extrait les fichiers requis du premier.
396
397 \subsection*{S\'electionner des fichiers par leurs noms}
398 \index[general]{S\'electionner des fichiers par leurs noms}
399 \index[general]{Noms de fichiers!S\'electionner des fichiers par leurs}
400 \addcontentsline{toc}{subsection}{S\'electionner des fichiers par leurs noms}
401
402 Si vous n'avez qu'un petit nombre de fichiers \`a restaurer dont vous connaissez 
403 les noms, vous pouvez, aux choix, placer ces noms dans un fichier qui sera 
404 lu par Bacula, ou saisir les noms un par un. Les noms de fichier doivent inclure 
405 le chemin absolu. Les caract\`eres jokers ne peuvent \^etre utilis\'es.
406
407 Pour saisir la liste, choisissez l'option 7 dans le menu de la commande {\bf restore} :
408
409 \footnotesize
410 \begin{verbatim}
411 To select the JobIds, you have the following choices:
412      1: List last 20 Jobs run
413      2: List Jobs where a given File is saved
414      3: Enter list of comma separated JobIds to select
415      4: Enter SQL list command
416      5: Select the most recent backup for a client
417      6: Select backup for a client before a specified time
418      7: Enter a list of files to restore
419      8: Enter a list of files to restore before a specified time
420      9: Find the JobIds of the most recent backup for a client
421     10: Find the JobIds for a backup for a client before a specified time
422     11: Enter a list of directories to restore for found JobIds
423     12: Cancel
424 Select item:  (1-12):
425 \end{verbatim}
426 \normalsize
427
428 Vous \^etes alors invit\'e \`a pr\'eciser le client :
429
430 \footnotesize
431 \begin{verbatim}
432 Defined Clients:
433      1: Timmy
434      2: Tibs
435      3: Rufus
436 Select the Client (1-3): 3
437 \end{verbatim}
438 \normalsize
439
440 Si vous n'avez qu'un client, il est s\'electionn\'e automatiquement.
441 Finalement, Bacula vous demande d'entrer un nom de fichier :
442
443 \footnotesize
444 \begin{verbatim}
445 Enter filename:
446 \end{verbatim}
447 \normalsize
448
449 Vous pouvez, \`a ce stade, saisir le chemin absolu et le nom du fichier :
450
451 \footnotesize
452 \begin{verbatim}
453 Enter filename: /home/kern/bacula/k/Makefile.in
454 Enter filename:
455 \end{verbatim}
456 \normalsize
457
458 Si Bacula ne peut en trouver aucune copie, il affiche ce qui suit :
459
460 \footnotesize
461 \begin{verbatim}
462 Enter filename: junk filename
463 No database record found for: junk filename
464 Enter filename:
465 \end{verbatim}
466 \normalsize
467
468 Si vous souhaitez que Bacula r\'ecup\`ere la liste des fichiers \`a restaurer depuis 
469 un fichier, r\'edigez ce fichier et donnez lui un nom commen{\c c}ant par le signe 
470 moins (\lt{}) et saisissez-le ici. Lorsque vous avez entr\'e tous les noms de 
471 fichiers, validez une ligne vide. Bacula \'ecrit maintenant le fichier 
472 bootstrap, vous indique les cartouches qui seront utilis\'ees, et vous propose 
473 de valider la restauration :
474
475 \footnotesize
476 \begin{verbatim}
477 Enter filename:
478 Automatically selected Storage: DDS-4
479 Bootstrap records written to /home/kern/bacula/working/restore.bsr
480 The restore job will require the following Volumes:
481    
482    test1
483 1 file selected to restore.
484 Run Restore job
485 JobName:    kernsrestore
486 Bootstrap:  /home/kern/bacula/working/restore.bsr
487 Where:      /tmp/bacula-restores
488 Replace:    always
489 FileSet:    Kerns Files
490 Client:     Rufus
491 Storage:    DDS-4
492 When:       2003-09-11 10:20:53
493 Priority:   10
494 OK to run? (yes/mod/no):
495 \end{verbatim}
496 \normalsize
497
498 Il est possible d'automatiser la s\'election des fichiers en pla{\c c}ant votre liste 
499 de fichiers dans, part exemple, {\bf /tmp/file-list}, puis en utilisant la 
500 commande suivante :
501
502 \footnotesize
503 \begin{verbatim}
504 restore client=Rufus file=</tmp/file-list
505 \end{verbatim}
506 \normalsize
507
508 Si, en modifiant les param\`etres du job restauration, vous constatez que Bacula 
509 vous demande d'entrer un num\'ero de job, c'est vous n'avez pour l'instant sp\'ecifi\'e 
510 ni num\'ero de job, ni fichier bootstrap. Entrez simplement z\'ero pour pouvoir 
511 continuer et s\'electionner une autre option \`a modifier.
512
513 \label{CommandArguments}
514
515 \subsection*{Arguments de la ligne de commande}
516 \index[general]{Arguments!ligne de commande}
517 \index[general]{Arguments de la ligne de commande}
518 \addcontentsline{toc}{subsection}{Arguments de la ligne de commande}
519
520 Si tout ce qui pr\'ec\`ede vous a sembl\'e compliqu\'e, vous admettrez certainement 
521 que ce n'est vraiment pas le cas apr\`es quelques essais. Il est possible de 
522 faire tout ce qui vient d'\^etre vu en utilisant la ligne de commande, \`a 
523 l'exception de la s\'election du FileSet. Voici une telle ligne de commande :
524
525 \footnotesize
526 \begin{verbatim}
527 restore client=Rufus select current all done yes
528 \end{verbatim}
529 \normalsize
530
531 Le sp\'ecification {\bf client=Rufus} s\'electionne automatiquement le client Rufus, 
532 l'option {\bf current} pr\'ecise que vous voulez une restauration \`a l'\'etat le plus 
533 r\'ecent possible, et le  {\bf yes} \'elude l'invite finale {\bf yes/mod/no} et 
534 ex\'ecute directement la restauration.
535
536 Voici la liste des arguments de la ligne de commandes :
537
538 \begin{itemize}
539 \item {\bf all} -- s\'electionne tous les fichiers pour la restauration.
540 \item {\bf select} -- utilise la s\'election via l'arborescence.
541 \item {\bf done} -- permet de quitter le mode de s\'election dans l'arborescence.
542 \item {\bf current} -- s\'electionne automatiquement le jeu de sauvegardes le plus 
543    r\'ecent pour le client sp\'ecifi\'e.
544 \item {\bf client=xxxx} -- S\'electionne le client sp\'ecifi\'e.  
545 \item {\bf jobid=nnn} -- Sp\'ecifie un JobId ou une liste de JobIds s\'epar\'es par des 
546    virgules pour la restauration.
547 \item {\bf before=YYYY-MM-DD HH:MM:SS} -- Sp\'ecifie une date et un horaire. Bacula 
548    s\'electionne le plus r\'ecent des jeux de sauvegardes ant\'erieurs \`a la date sp\'ecifi\'ee.
549    Cette commande n'est pas tr\`es conviviale, en effet, vous devez sp\'ecifier la date 
550    et l'heure en respectant exactement le mod\`ele.
551 \item {\bf file=filename} -- Sp\'ecifie un nom de fichier \`a restaurer. Vous devez 
552    sp\'ecifier le chemin absolu vers le fichier. Si vous pr\'efixez l'entr\'ee d'un signe moins 
553    (\lt{}), Bacula consid\`ere que ce fichier existe et qu'il contient la liste des 
554    fichiers \`a restaurer. Les sp\'ecifications multiples {\bf file=xxx} peuvent \^etre 
555    utilis\'ees en ligne de commandes.
556 \item {\bf jobid=nnn} -- Sp\'ecifie un JobId \`a restaurer. 
557 \item {\bf pool=pool-name} -- Sp\'ecifie un nom de pool \`a utiliser pour la s\'election des 
558    volumes au niveau des options 5 et 6 (restauration \`a l'\'etat le plus r\'ecent et 
559    restauration \`a l'\'etat le plus r\'ecent avant une date donn\'ee). Ceci vous permet d'avoir 
560    plusieurs pools, dont un \'eventuellement hors site et l'autre sur place disponible pour 
561    les restaurations.
562 \item {\bf yes} -- Ex\'ecute automatiquement la restauration sans passer par l'invite finale 
563    de validation/modification surtout utile pour l'utilisation dans des scripts). 
564    \end{itemize}
565
566 \subsection*{Restaurer les attributs de fichiers}
567 \index[general]{Attributs de fichiers!Restaurer}
568 \index[general]{Restaurer les attributs de fichiers}
569 \addcontentsline{toc}{subsection}{Restaurer les attributs de fichiers}
570
571 Selon la fa{\c c}on dont vous restaurez, vous pouvez ou non restaurer les 
572 attributs de fichiers \`a leur \'etat initial. Voici quelques uns des 
573 probl\`emes auxquels vous pouvez \^etre confront\'es, et, pour les 
574 restaurations sur la machine d'origine, comment les \'eviter.
575
576 \begin{itemize}
577 \item Vous avez sauvegard\'e des fichiers sur une machine, et les restaurez
578    sur une autre qui a peut-\^etre un autre syst\`eme d'exploitation ou des 
579    utilisateurs/groupes diff\'erents. Bacula fait du mieux qu'il peut dans ces 
580    situations. Notez qu'utilisateurs et groupes sont sauvegard\'es au format 
581    num\'erique, et qu'ils peuvent donc se r\'ef\'erer \`a d'autres utilisateurs et 
582    groupes sur un autre syst\`eme.
583 \item Vous restaurez dans un r\'epertoire existant sur lequel portent des 
584    restrictions du droit de cr\'eation. Bacula tente alors de tout r\'etablir, 
585    mais sans parcourir la cha\^ine compl\`ete des r\'epertoires ni les modifier 
586    durant la restauration. En fait, ce que pourra faire Bacula pour r\'etablir 
587    les permissions correctement d\'epend pour beaucoup de votre syst\`eme 
588    d'exploitation.
589 \item Vous faites une restauration recursive d'une arborescence. Dans ce cas, 
590    de figure, Bacula restaure un fichier avant de restaurer l'entr\'ee de son 
591    r\'epertoire parent. Dans le processus de restauration du fichier, Bacula 
592    cr\'ee le r\'epertoire parent avec des permissions ouvertes et le m\^eme 
593    propri\'etaire que le fichier restaur\'e. Alors, lorsque Bacula tente de restaurer 
594    le r\'epertoire en lui m\^eme, il se rend compte qu'il existe d\'ej\`a (situation 
595    similaire \`a la pr\'ec\'edente). Si vous avez fix\'e l'option "Replace" \`a "never" 
596    lors du lancement du job, alors Bacula ne modifie pas les permissions et 
597    propri\'et\'es du r\'epertoire pour s'accorder \`a ce qu'elles \'etaient lors de la 
598    sauvegarde. Vous devriez aussi noter une divergence entre le nombre de fichiers 
599    effectivement restaur\'es et le nombre de fichiers attendus. Si vous voulez 
600    \'eviter ces inconv\'enients, fixez l'option "Replace" \`a "always", ainsi 
601    Bacula sera en mesure de modifier les propri\'etaire et permissions des 
602    r\'epertoires pour les ramener \`a leurs \'etats d'origine. Le nombre de 
603    fichiers restaur\'es devrait cette fois \^etre identique \`a celui attendu.
604
605 \item Vous avez s\'electionn\'e un ou plusieurs fichiers d'un r\'epertoire sans 
606    s\'electionner le r\'epertoire lui-m\^eme. Dans ce cas, si le r\'epertoire 
607    n'existe pas d\'ej\`a, Bacula le cr\'ee avec des attributs par d\'efaut qui ne 
608    seront peut-\^etre pas ceux d'origine. Si vous ne voulez pas s\'electionner 
609    un r\'epertoire et tout son contenu, mais seulement quelques objets dans 
610    ce r\'epertoire en les marquant individuellement, vous devriez utiliser 
611    la commande {\bf markdir} pour s\'electionner un r\'epertoire de plus haut 
612    niveau (un \`a la fois) si vous voulez que les entr\'ees de r\'epertoires 
613    soient restaur\'ees correctement.
614 \end{itemize}
615
616 \label{Windows}
617
618 \subsection*{Restaurer sur Windows}
619 \index[general]{Restaurer sur Windows}
620 \index[general]{Windows!Restaurer sur}
621 \addcontentsline{toc}{subsection}{Restaurer sur Windows}
622 Sur les syst\`emes WinNT/2K/XP, Bacula restaure les fichiers avec les droits 
623 et permissions d'origine comme on s'y attend. Ceci est aussi v\'erifi\'e si vous 
624 restaurez ces fichiers vers un autre r\'epertoire (avec l'option "where") que celui 
625 d'origine. Cependant, si le nouveau r\'epertoire n'existe pas, le File Daemon 
626 tente de le cr\'eer. Dans certains cas, il n'y parvient pas. S'il y parvient, le 
627 r\'epertoire cr\'e\'e appartient \`a l'utilisateur qui ex\'ecute le File Daemon, c'est-\`a-dire 
628 SYSTEM. Dans ce cas, il se peut que vous ayez des difficult\'es pour acc\'eder aux 
629 fichiers fraichement restaur\'es.
630
631 Pour \'eviter ce probl\`eme, vous devriez cr\'eer le r\'epertoire alternatif avant 
632 de lancer la restauration. Bacula ne changera pas les attributs de ce r\'epertoire, 
633 du moment que ce n'est pas l'un des r\'epertoires \`a restaurer.
634
635 Le r\'epertoire de restauration par d\'efaut est {\bf /tmp/bacula-restores/}, qui devient  
636 {\bf /tmp/bacula-restores/e/} si vous restaurez depuis le disque {\bf E}. 
637 Aussi, assurez-vous que ce r\'epertoire existe avant de lancer la restauration, ou 
638 utilisez l'option {\bf mod} pour s\'electionner un r\'epertoire destination existant.
639
640 Certains utilisateurs ont signal\'e des probl\`emes en restaurant des fichiers 
641 qui participent \`a Active Directory. Ils ont aussi rapport\'e que le changement de 
642 l'Id utilisateur sous lequel est ex\'ecut\'e Bacula de SYSTEM en un Id d'administrateur 
643 du domaine r\'esout le probl\`eme.
644
645 \subsection*{Une restauration peut prendre du temps}
646 \index[general]{temps!Restauration}
647 \index[general]{Une restauration peut prendre du temps}
648 \addcontentsline{toc}{subsection}{Une restauration peut prendre du temps}
649
650 Restaurer des fichiers est g\'en\'eralement {\bf beaucoup} plus lent que de les 
651 sauvegarder, ce pour plusieurs raisons. La premi\`ere est que lors d'une sauvegarde, 
652 la cartouche est normalement d\'ej\`a positionn\'ee, Bacula n'a qu'\`a \'ecrire dessus. 
653 D'autre part, les restaurations \'etant si rares (par rapport aux sauvegardes), 
654 Bacula ne garde dans le catalogue que l'emplacement sur la cartouche du premier 
655 fichier et du premier bloc pour chaque job, et non l'emplacement de chaque fichier, 
656 ce qui occuperait trop de place dans le catalogue.
657
658 Bacula se place d'abord sur la bonne marque de fichier sur la cartouche, puis 
659 sur le bloc correct, puis lit s\'equentiellement chaque enregistrement jusqu'\`a 
660 trouver ceux correspondant aux fichier que vous voulez restaurer. Une fois ces 
661 fichiers restaur\'es, Bacula cesse de lire la cartouche.
662
663 Enfin, au lieu de simplement lire un fichier comme pour une sauvegarde, Bacula 
664 doit, lors d'une restauration, cr\'eer les fichiers, tandis que le syst\`eme 
665 d'exploitation doit, de son cot\'e, allouer de l'espace disque pour ces fichiers 
666 restaur\'es.
667
668 Pour toutes ces raisons, le processus de restauration est g\'en\'eralement beaucoup 
669 plus lent que celui de sauvegarde (une restauration peut prendre trois fois 
670 plus de temps que la sauvegarde).
671
672 \subsection*{Problems Restoring Files}
673 \index[general]{Files!Problems Restoring }
674 \index[general]{Problems Restoring Files }
675 \addcontentsline{toc}{subsection}{Problems Restoring Files}
676
677 The most frequent problems users have restoring files are error messages such
678 as: 
679
680 \footnotesize
681 \begin{verbatim}
682 04-Jan 00:33 z217-sd: RestoreFiles.2005-01-04_00.31.04 Error:
683 block.c:868 Volume data error at 20:0! Short block of 512 bytes on
684 device /dev/tape discarded.
685 \end{verbatim}
686 \normalsize
687
688 or 
689
690 \footnotesize
691 \begin{verbatim}
692 04-Jan 00:33 z217-sd: RestoreFiles.2005-01-04_00.31.04 Error:
693 block.c:264 Volume data error at 20:0! Wanted ID: "BB02", got ".".
694 Buffer discarded.
695 \end{verbatim}
696 \normalsize
697
698 Both these kinds of messages indicate that you were probably running your tape
699 drive in fixed block mode rather than variable block mode. Fixed block mode
700 will work with any program that reads tapes sequentially such as tar, but
701 Bacula repositions the tape on a block basis when restoring files because this
702 will speed up the restore by orders of magnitude when only a few files are being
703 restored. There are several ways that you can attempt to recover from this
704 unfortunate situation. 
705
706 Try the following things, each separately, and reset your Device resource to
707 what it is now after each individual test: 
708
709 \begin{enumerate}
710 \item Set "Block Positioning = no" in your Device resource  and try the
711    restore. This is a new directive and untested. 
712 \item Set "Minimum Block Size = 512" and "Maximum  Block Size = 512" and
713    try the restore.  If you are able to determine the block size your drive
714    was previously using, you should try that size if 512 does not work.
715 \item Try editing the restore.bsr file at the Run xxx yes/mod/no prompt 
716    before starting the restore job and remove all the VolBlock statements.
717    These are what causes Bacula to reposition the tape, and where problems
718    occur if you have a fixed block size set for your drive.  The VolFile
719    commands also cause repositioning, but this will work regardless of the
720    block size.
721 \item Use bextract to extract the files you want -- it reads the  Volume
722    sequentially if you use the include list feature, or if you use a .bsr
723    file, but remove all the VolBlock statements after the .bsr file is
724    created (at the Run yes/mod/no) prompt but before you start the restore.
725 \end{enumerate}
726
727 \subsection*{Restore Errors}
728 \index[general]{Errors!Restore}
729 \index[general]{Restore Errors}
730 \addcontentsline{toc}{subsection}{Restore Errors}
731
732 There are a number of reasons why there may be restore errors or
733 warning messages. Some of the more common ones are:
734
735 \begin{description}
736
737 \item [file count mismatch]
738   This can occur for the following reasons:
739   \begin{itemize}
740   \item You requested Bacula not to overwrite existing or newer
741      files.
742   \item A Bacula miscount of files/directories. This is an
743      on-going problem due to the complications of directories,
744      soft/hard link, and such.  Simply check that all the files you
745      wanted were actually restored.
746   \end{itemize}
747 \item [file size error]
748    When Bacula restores files, it checks that the size of the
749    restored file is the same as the file status data it saved 
750    when starting the backup of the file. If the sizes do not
751    agree, Bacula will print an error message. This size mismatch
752    most often occurs because the file was being written as Bacula
753    backed up the file. In this case, the size that Bacula
754    restored will be greater than the status size.  This often
755    happens with log files.
756
757    If the restored size is smaller, then you should be concerned
758    about a possible tape error and check the Bacula output as
759    well as your system logs.
760 \end{description}
761
762
763
764 \subsection*{Example Restore Job Resource}
765 \index[general]{Example Restore Job Resource }
766 \index[general]{Resource!Example Restore Job }
767 \addcontentsline{toc}{subsection}{Example Restore Job Resource}
768
769 \footnotesize
770 \begin{verbatim}
771 Job {
772   Name = "RestoreFiles"
773   Type = Restore
774   Client = Any-client
775   FileSet = "Any-FileSet"
776   Storage = Any-storage
777   Where = /tmp/bacula-restores
778   Messages = Standard
779   Pool = Default
780 }
781 \end{verbatim}
782 \normalsize
783
784 If {\bf Where} is not specified, the default location for restoring files will
785 be their original locations. 
786 \label{Selection}
787
788 \subsection*{File Selection Commands}
789 \index[general]{Commands!File Selection }
790 \index[general]{File Selection Commands }
791 \addcontentsline{toc}{subsection}{File Selection Commands}
792
793 After you have selected the Jobs to be restored and Bacula has created the
794 in-memory directory tree, you will enter file selection mode as indicated by
795 the dollar sign ({\bf \$}) prompt. While in this mode, you may use the
796 commands listed above. The basic idea is to move up and down the in memory
797 directory structure with the {\bf cd} command much as you normally do on the
798 system. Once you are in a directory, you may select the files that you want
799 restored. As a default no files are marked to be restored. If you wish to
800 start with all files, simply enter: {\bf cd /} and {\bf mark *}. Otherwise
801 proceed to select the files you wish to restore by marking them with the {\bf
802 mark} command. The available commands are: 
803
804 \begin{description}
805
806 \item [cd]
807    The {\bf cd} command changes the current directory to  the argument
808    specified.
809    It operates much like the Unix {\bf cd} command.  Wildcard specifications are
810    not permitted.  
811
812    Note, on Windows systems, the various drives (c:, d:, ...) are treated  like
813    a
814    directory within the file tree while in the file  selection mode. As a
815    consequence, you must do a {\bf cd c:} or  possibly in some cases a {\bf cd
816    C:} (note upper case)  to get down to the first directory.  
817
818 \item [dir]
819    \index[dir]{dir }
820    The {\bf dir} command is similar to the {\bf ls} command,  except that it
821    prints it in long format (all details). This command  can be a bit slower
822    than
823    the {\bf ls} command because it must access  the catalog database for the
824    detailed information for each file.  
825
826 \item [estimate]
827    \index[dir]{estimate }
828    The {\bf estimate} command prints a summary of  the total files in the tree,
829    how many are marked to be restored, and  an estimate of the number of bytes
830    to
831    be restored. This can be useful  if you are short on disk space on the
832    machine
833    where the files will be  restored.  
834
835 \item [find]
836    \index[dir]{find }
837    The {\bf find} command accepts one or more arguments  and displays all files
838    in the tree that match that argument. The argument  may have wildcards. It is
839    somewhat similar to the Unix command  {\bf find / -name arg}.  
840
841 \item [ls]
842    The {\bf ls} command produces a listing of all the files  contained in the
843    current directory much like the Unix {\bf ls} command.  You may specify an
844    argument containing wildcards, in which case only  those files will be
845 listed.
846    Any file that is marked to be restored will  have its name preceded by an
847    asterisk ({\bf *}). Directory names  will be terminated with a forward slash
848    ({\bf /}) to distinguish them  from filenames.  
849
850 \item [lsmark]
851    \index[fd]{lsmark }
852    The {\bf lsmark} command is the same as the  {\bf ls} except that it will
853    print only those files marked for  extraction. The other distinction is that
854    it will recursively  descend into any directory selected. 
855
856 \item [mark]
857    \index[dir]{mark }
858    The {\bf mark} command allows you to mark files to be restored. It takes a
859    single argument which is the filename  or directory name in the current
860    directory to be marked for extraction.  The argument may be a wildcard
861    specification, in which  case all files that match in the current directory
862    are marked to be  restored. If the argument matches a directory rather than a
863    file,  then the directory and all the files contained in that directory
864    (recursively)  are marked to be restored. Any marked file will have its name 
865    preceded with an asterisk ({\bf *}) in the output produced by the  {\bf ls}
866 or
867    {\bf dir} commands. Note, supplying a full path on  the mark command does not
868    work as expected to select a file or  directory in the current directory.
869    Also, the {\bf mark} command works  on the current and lower directories but
870    does not touch higher level  directories.  
871
872    After executing the {\bf mark} command, it will print a brief summary:  
873
874 \footnotesize
875 \begin{verbatim}
876     No files marked.
877     
878 \end{verbatim}
879 \normalsize
880
881    If no files were marked, or:  
882
883 \footnotesize
884 \begin{verbatim}
885     nn files marked.
886     
887 \end{verbatim}
888 \normalsize
889
890    if some files are marked.  
891
892 \item [unmark]
893    \index[dir]{unmark }
894    The {\bf unmark} is identical to the {\bf mark}  command, except that it
895    unmarks the specified file or files so that  they will not be restored. Note:
896    the {\bf unmark} command works from  the current directory, so it does not
897    unmark any files at a higher  level. First do a {\bf cd /} before the {\bf
898    unmark *} command if  you want to unmark everything.  
899
900 \item [pwd]
901    \index[dir]{pwd }
902    The {\bf pwd} command prints the current working  directory. It accepts no
903    arguments.  
904
905 \item [count]
906    \index[dir]{count }
907    The {\bf count} command prints the total files in the  directory tree and the
908    number of files marked to be restored.  
909
910 \item [done]
911    \index[dir]{done }
912    This command terminates file selection mode.  
913
914 \item [exit]
915    \index[fd]{exit }
916    This command terminates file selection mode (the same as  done).  
917
918 \item [quit]
919    \index[fd]{quit }
920    This command terminates the file selection and does  not run the restore
921 job. 
922
923
924 \item [help]
925    \index[fd]{help }
926    This command prints a summary of the commands available.  
927
928 \item [?]
929    This command is the same as the {\bf help} command.  
930 \end{description}
931
932 \label{database_restore}
933 \subsection*{Restoring When Things Go Wrong}
934 \index[general]{Restoring When Things Go Wrong }
935 \index[general]{Restoring Your Database}
936 \index[general]{Database!Restoring}
937 \addcontentsline{toc}{subsection}{Restoring When Things Go Wrong}
938
939 This and the following sections will try to present a few of the kinds of
940 problems that can come up making restoring more difficult. I'll try to
941 provide a few ideas how to get out of these problem situations.
942 In addition to what is presented here, there is more specific information
943 on restoring a \ilink{Client}{restore_client} and your
944 \ilink{Server}{restore_server} in the \ilink{Disaster Recovery Using
945 Bacula}{_ChapterRescue} chapter of this manual.
946
947 \begin{description}
948 \item[Problem]
949    My database is broken.
950 \item[Solution]
951    For SQLite, use the vacuum command to try to fix the database. For either
952    MySQL or PostgreSQL, see the vendor's documentation. They have specific tools
953    that check and repair databases.
954
955    Assuming the above does not resolve the problem, you will need to restore
956    or rebuild your catalog.
957 \item[Problem]
958    How do I restore my catalog?
959 \item[Solution]
960    If you have backed up your database nightly (as you should) and you
961    have made a bootstrap file, you can immediately load back your
962    database (or the ASCII SQL output).  Make a copy of your current
963    database, then re-initialize it, by running the following scripts:
964 \begin{verbatim}
965    ./drop_bacula_tables
966    ./make_bacula_tables
967 \end{verbatim}
968    After re-initializing the database, you should be able to run 
969    Bacula. If you now try to use the restore command, it will not 
970    work because the database will be empty. However, you can manually
971    run a restore job and specify your bootstrap file. You do so
972    by entering the {bf run} command in the console and selecting the
973    restore job.  If you are using the default bacula-dir.conf, this
974    Job will be named {\bf RestoreFiles}. Most likely it will prompt
975    you with something such as:
976 \footnotesize
977 \begin{verbatim}
978 Run Restore job
979 JobName:    RestoreFiles
980 Bootstrap:  /home/kern/bacula/working/restore.bsr
981 Where:      /tmp/bacula-restores
982 Replace:    always
983 FileSet:    Full Set
984 Client:     rufus-fd
985 Storage:    File
986 When:       2005-07-10 17:33:40
987 Catalog:    MyCatalog
988 Priority:   10
989 OK to run? (yes/mod/no): 
990 \end{verbatim}
991 \normalsize
992    A number of the items will be different in your case.  What you want to
993    do is: to use the mod option to change the Bootstrap to point to your
994    saved bootstrap file; and to make sure all the other items such as
995    Client, Storage, Catalog, and Where are correct.  The FileSet is not
996    used when you specify a bootstrap file.  Once you have set all the
997    correct values, run the Job and it will restore the backup of your
998    database.  You will then need to follow the instructions for your
999    database type to recreate the database from the ASCII backup file.
1000
1001       
1002 \item[Solution]
1003    If you did save your database but did not make a bootstrap file, then
1004    recovering the database is more difficult.  You will probably need to
1005    use bextract to extract the backup copy.  First you should locate the
1006    listing of the job report from the last catalog backup.  It has
1007    important information that will allow you to quickly find your database
1008    file.  For example, in the job report for the CatalogBackup shown below,
1009    the critical items are the Volume name(s), the Volume Session Id and the
1010    Volume Session Time.  If you know those, you can easily restore your
1011    Catalog.
1012 \footnotesize
1013 \begin{verbatim}
1014
1015 22-Apr 10:22 HeadMan: Start Backup JobId 7510,
1016 Job=CatalogBackup.2005-04-22_01.10.0
1017 22-Apr 10:23 HeadMan: Bacula 1.37.14 (21Apr05): 22-Apr-2005 10:23:06
1018   JobId:                  7510
1019   Job:                    CatalogBackup.2005-04-22_01.10.00
1020   Backup Level:           Full
1021   Client:                 Polymatou
1022   FileSet:                "CatalogFile" 2003-04-10 01:24:01
1023   Pool:                   "Default"
1024   Storage:                "DLTDrive"
1025   Start time:             22-Apr-2005 10:21:00
1026   End time:               22-Apr-2005 10:23:06
1027   FD Files Written:       1
1028   SD Files Written:       1
1029   FD Bytes Written:       210,739,395
1030   SD Bytes Written:       210,739,521
1031   Rate:                   1672.5 KB/s
1032   Software Compression:   None
1033   Volume name(s):         DLT-22Apr05
1034   Volume Session Id:      11
1035   Volume Session Time:    1114075126
1036   Last Volume Bytes:      1,428,240,465
1037   Non-fatal FD errors:    0
1038   SD Errors:              0
1039   FD termination status:  OK
1040   SD termination status:  OK
1041   Termination:            Backup OK
1042
1043 \end{verbatim}
1044 \normalsize
1045   From the above information, you can manually create a bootstrap file,
1046   and then follow the instructions given above for restoring your database.
1047   A reconstructed bootstrap file for the above backup Job would look
1048   like the following:
1049 \footnotesize
1050 \begin{verbatim}
1051 Volume="DLT-22Apr05"
1052 VolSessionId=11
1053 VolSessionTime=1114075126
1054 FileIndex=1-1
1055 \end{verbatim}
1056 \normalsize    
1057   Where we have inserted the Volume name, Volume Session Id, and Volume
1058   Session Time that correspond to the values in the job report.  We've also
1059   used a FileIndex of one, which will always be the case providing that
1060   there was only one file backed up in the job.
1061   
1062   The disadvantage of this bootstrap file compared to what is created when
1063   you ask for one to be written, is that there is no File and Block
1064   specified, so the restore code must search all data in the Volume to find
1065   the requested file.  A fully specified bootstrap file would have the File
1066   and Blocks specified as follows:
1067 \footnotesize
1068 \begin{verbatim}
1069 Volume="DLT-22Apr05"
1070 VolSessionId=11
1071 VolSessionTime=1114075126
1072 VolFile=118-118
1073 VolBlock=0-4053
1074 FileIndex=1-1
1075 \end{verbatim}
1076 \normalsize
1077
1078 \item [Problem]
1079    I try to restore the last known good full backup by specifying
1080    item 3 on the restore menu then the JobId to restore.  Bacula 
1081    then reports:
1082
1083 \footnotesize
1084 \begin{verbatim}
1085    1 Job 0 Files
1086 \end{verbatim}
1087 \normalsize
1088    and restores nothing.
1089 \item[Solution]
1090    Most likely the File records were pruned from the database either due
1091    to the File Retention period expiring or by explicitly purging the
1092    Job. By using the "llist jobid=nn" command, you can obtain all the
1093    important information about the job:
1094 \footnotesize
1095 \begin{verbatim}
1096 llist jobid=120
1097            JobId: 120
1098              Job: save.2005-12-05_18.27.33
1099         Job.Name: save
1100      PurgedFiles: 0
1101             Type: B
1102            Level: F
1103     Job.ClientId: 1
1104      Client.Name: Rufus
1105        JobStatus: T
1106        SchedTime: 2005-12-05 18:27:32
1107        StartTime: 2005-12-05 18:27:35
1108          EndTime: 2005-12-05 18:27:37
1109         JobTDate: 1133803657
1110     VolSessionId: 1
1111   VolSessionTime: 1133803624
1112         JobFiles: 236
1113        JobErrors: 0
1114  JobMissingFiles: 0
1115       Job.PoolId: 4
1116        Pool.Name: Full
1117    Job.FileSetId: 1
1118  FileSet.FileSet: BackupSet
1119 \end{verbatim}
1120 \normalsize
1121
1122    Then you can find the Volume(s) used by doing:
1123 \footnotesize
1124 \begin{verbatim}
1125 sql
1126 select VolumeName from JobMedia,Media where JobId=1 and JobMedia.MediaId=Media.MediaId;
1127 \end{verbatim}
1128 \normalsize
1129    Finally, you can create a bootstrap file as described in the previous
1130    problem above using this information.
1131
1132    If you are using Bacula version 1.38.0 or greater, when you select
1133    item 3 from the menu and enter the JobId, it will ask you if
1134    you would like to restore all the files in the job, and it will
1135    collect the above information and write the bootstrap file for
1136    you.
1137
1138 \item [Problem]
1139   You don't have a bootstrap file, and you don't have the Job report for
1140   the backup of your database, but you did backup the database, and you
1141   know the Volume to which it was backed up.
1142   
1143 \item [Solution]
1144   Use {\bf bls} to indicate where it is on the tape. For example:
1145
1146 \footnotesize
1147 \begin{verbatim}
1148 ./bls -j -V DLT-22Apr05 /dev/nst0
1149 \end{verbatim}
1150 \normalsize
1151   Might produce the following output:
1152 \footnotesize
1153 \begin{verbatim}
1154 bls: butil.c:258 Using device: "/dev/nst0" for reading.
1155 21-Jul 18:34 bls: Ready to read from volume "DLT-22Apr05" on device "DLTDrive"
1156 (/dev/nst0).
1157 Volume Record: File:blk=0:0 SessId=11 SessTime=1114075126 JobId=0 DataLen=164
1158 ...
1159 Begin Job Session Record: File:blk=118:0 SessId=11 SessTime=1114075126
1160 JobId=7510
1161    Job=CatalogBackup.2005-04-22_01.10.0 Date=22-Apr-2005 10:21:00 Level=F Type=B
1162 End Job Session Record: File:blk=118:4053 SessId=11 SessTime=1114075126
1163 JobId=7510
1164    Date=22-Apr-2005 10:23:06 Level=F Type=B Files=1 Bytes=210,739,395 Errors=0
1165 Status=T
1166 ...
1167 21-Jul 18:34 bls: End of Volume at file 201 on device "DLTDrive" (/dev/nst0),
1168 Volume "DLT-22Apr05"
1169 21-Jul 18:34 bls: End of all volumes.
1170 \end{verbatim}
1171 \normalsize
1172   Of course, there will be many more records printed, but we have indicated
1173   the essential lines of output. From the information on the Begin Job and End 
1174   Job Session Records, you can reconstruct a bootstrap file such as the one
1175   shown above.
1176
1177 \item[Problem]
1178   How can I find where a file is stored.
1179 \item[Solution]
1180   Normally, it is not necessary, you just use the {\bf restore} command to
1181   restore the most recently saved version (menu option 5), or a version
1182   saved before a given date (menu option 8).  If you know the JobId of the
1183   job in which it was saved, you can use menu option 3 to enter that JobId.
1184
1185   If you would like to know the JobId where a file was saved, select
1186   restore menu option 2.
1187
1188   You can also use the {\bf query} command to find information such as: 
1189 \footnotesize
1190 \begin{verbatim}
1191 *query
1192 Available queries:
1193      1: List Job totals:
1194      2: List up to 20 places where a File is saved regardless of the directory:
1195      3: List where the most recent copies of a file are saved:
1196      4: List last 20 Full Backups for a Client:
1197      5: List all backups for a Client after a specified time
1198      6: List all backups for a Client
1199      7: List Volume Attributes for a selected Volume:
1200      8: List Volumes used by selected JobId:
1201      9: List Volumes to Restore All Files:
1202     10: List Pool Attributes for a selected Pool:
1203     11: List total files/bytes by Job:
1204     12: List total files/bytes by Volume:
1205     13: List Files for a selected JobId:
1206     14: List Jobs stored in a selected MediaId:
1207     15: List Jobs stored for a given Volume name:
1208 Choose a query (1-15):
1209 \end{verbatim}
1210 \normalsize
1211
1212
1213 \end{description}