]> git.sur5r.net Git - bacula/docs/blob - docs/manual-fr/restore.tex
Update web site fix French site; fix compile of French manual
[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*{Probl\`emes lors de la restauration de fichiers}
673 \index[general]{Fichiers!Probl\`emes de restauration}
674 \index[general]{Probl\`emes lors de la restauration de fichiers}
675 \addcontentsline{toc}{subsection}{Probl\`emes lors de la restauration de fichiers}
676
677 Les probl\`emes que les utilisateurs rencontrent le plus souvent lors des restaurations 
678 sont des messages d'erreurs tels que :
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 ou 
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 Ces deux types de messages indiquent que vous avez probablement utilis\'e votre 
699 lecteur en mode "blocs de taille fixe" plut\^ot qu'en mode "blocs de taille 
700 variable". Le mode "blocs de taille fixe" fonctionne avec tout programme 
701 qui lit les cartouches s\'equentiellement tel que {\bf tar}, cependant Bacula 
702 repositionne la bande suivant les blocs lors des restaurations, ce qui lui 
703 permet d'am\'eliorer les performances en restauration de plusieurs ordres 
704 de grandeur lorsqu'il s'agit de restaurer quelques fichiers isol\'es. Il existe 
705 plusieurs moyens pour vous tirer de ce mauvais pas.
706
707 Tentez-les l'un apr\`es l'autre, en r\'etablissant votre ressource Device apr\`es 
708 chacun des tests :
709
710 \begin{enumerate}
711 \item D\'esactivez le positionnement par blocs ("Block Positioning = no" 
712    dans la ressource Device) et essayez de restaurer. Cette directive est 
713    r\'ecente et n'est pas encore bien test\'ee.
714 \item R\'eglez \`a 512 les tailles minimum et maximum de blocs  
715    ("Minimum Block Size = 512" et "Maximum  Block Size = 512") et essayez de 
716    restaurer. Si vous \^etes en mesure de d\'eterminer la taille de blocs 
717    utilis\'ee par votre lecteur pour \'ecrire les donn\'ees, vous devriez essayer 
718    cette valeur si la restauration a \'echou\'e avec 512. 
719 \item Editez le fichier restore.bsr \`a l'invite yes/mod/no de la 
720    commande Run xxx avant de valider la restauration, et supprimez tous les 
721    enregistrements VolBlock. Ce sont eux qui causent les repositionnements de 
722    la bande et les probl\`emes qui s'ensuivent si vous utilisez des blocs de taille 
723    fixe sur votre lecteur. Les commandes VolFile provoquent aussi le 
724    repositionnement, mais celui-ci fonctionne ind\'ependamment de la taille des blocs.
725 \item Utilisez bextract pour extraire vos fichiers -- ce programme lit les 
726    volumes s\'equentiellement si vous utilisez la fonctionnalit\'e des listes 
727    d'inclusions, ou si vous utilisez un fichier .bsr (priv\'e des enregistrements 
728    VolBlock) \`a l'invite "yes/mod/no" qui pr\'ec\`ede le lancement de la 
729    restauration.
730 \end{enumerate}
731
732 \subsection*{Erreurs de restaurations}
733 \index[general]{Erreurs!Restauration}
734 \index[general]{Erreurs de restauration}
735 \addcontentsline{toc}{subsection}{Erreurs de restauration}
736
737 Il existe de multiples causes qui peuvent \^etre \`a l'origine de messages d'alerte ou d'erreurs 
738 lors des restaurations. Les plus courantes sont les suivantes :
739
740 \begin{description}
741
742 \item [file count mismatch]
743    Cette erreur peut se produire dans les cas suivants : 
744    \begin{itemize}
745    \item Vous avez enjoint Bacula \`a ne pas \'ecraser les fichiers 
746       existants ou plus r\'ecents.
747    \item Bacula a commis une erreur dans le d\'ecompte des fichiers/r\'epertoires. 
748       Ceci est un probl\`eme inh\'erent \`a la complexit\'e des r\'epertoires, liens 
749       symboliques/durs, etc. Contr\^olez simplement que tous les fichiers voulus ont \'et\'e 
750       effectivement restaur\'es.
751    \end{itemize}
752 \item [file size error]
753    Lorsque Bacula restaure un fichier, il v\'erifie que la taille du fichier 
754    restaur\'e est conforme aux donn\'ees d'\'etat enregistr\'ees au d\'ebut de la sauvegarde 
755    du fichier. En cas de divergence, Bacula affiche un message d'erreur. Cet 
756    divergence survient presque toujours \`a cause d'une \'ecriture du fichier 
757    au cours de sa sauvegarde. Dans ce cas, la taille du fichier restaur\'e 
758    est plus grande que la taille enregistr\'ee dans les donn\'ees d'\'etat. Cette 
759    erreur se produit souvent avec les fichiers de journaux.
760
761    Si en revanche la taille du fichier restaur\'ee est plus petite, vous devriez 
762    pousser vos investigations du cot\'e d'un \'eventuel probl\`eme de bande et 
763    contr\^oler les rapports de Bacula ainsi que votre syst\`eme de journalisation.
764 \end{description}
765
766 \subsection*{Un exemple de ressource Restore Job}
767 \index[general]{Exemple ressource Restore Job }
768 \index[general]{Ressource!Exemple Restore Job }
769 \addcontentsline{toc}{subsection}{Exemple ressource Restore Job}
770
771 \footnotesize
772 \begin{verbatim}
773 Job {
774   Name = "RestoreFiles"
775   Type = Restore
776   Client = Any-client
777   FileSet = "Any-FileSet"
778   Storage = Any-storage
779   Where = /tmp/bacula-restores
780   Messages = Standard
781   Pool = Default
782 }
783 \end{verbatim}
784 \normalsize
785 Si la directive {\bf Where} n'est pas pr\'ecis\'ee, les fichiers sont restaur\'es \`a 
786 leur emplacement d'origine. 
787 \label{Selection}
788
789 \subsection*{Les commande de s\'election de fichiers}
790 \index[general]{Commandes!s\'election fichiers}
791 \index[general]{Fichiers S\'election Commandes }
792 \addcontentsline{toc}{subsection}{Commandes de s\'election de fichiers}
793
794 Une fois que vous avez s\'electionn\'e les jobs \`a restaurer et apr\`es que Bacula a cr\'e\'e 
795 l'arborescence des r\'epertoires en m\'emoire, vous entrez dans le mode de s\'election 
796 de fichiers, ce qui est rappel\'e par l'invite ({\bf \$}). Dans ce mode, vous 
797 pouvez utiliser les commandes \'enum\'er\'ees plus haut. Vous pouvez naviguer dans 
798 l'arborescence avec la commande {\bf cd} tout comme vous le feriez dans  
799 un syst\`eme de fichiers. Lorsque vous \^etes dans un r\'epertoire, vous pouvez en 
800 s\'electionner des fichiers ou r\'epertoires pour restauration. Par d\'efaut, aucun 
801 fichier n'est s\'electionn\'e. Si vous souhaitez au contraire partir d'une situation 
802 o\`u tous les fichiers sont s\'electionn\'es, saisissez simplement : {\bf cd /} et 
803 {\bf mark *}. Sinon, s\'electionnez vos fichiers avec la commande {\bf mark}. Les 
804 commandes disponibles sont :
805
806 \begin{description}
807
808 \item [cd]
809    La commande {\bf cd} change le r\'epertoire courant en l'argument sp\'ecifi\'e. les 
810    caract\`eres joker ne sont pas admis. 
811
812    Notez que sur les syst\`emes Windows, les diff\'erents disques (c:, d:, ...) sont 
813    trait\'es comme des r\'epertoires dans l'arborescence. Une cons\'equence est que vous 
814    devez saisir {\bf cd c:} ou \'eventuellement {\bf cd C:} pour descendre dans le 
815    premier r\'epertoire.
816
817 \item [dir]
818    \index[dir]{dir }
819    La commande {\bf dir} est similaire \`a la commande {\bf ls}, mais produit un 
820    affichage au format long (tous les d\'etails). Cette commande peut \^etre un peu 
821    plus lente que la commande {\bf ls} car elle n\'ecessite l'acc\`es au catalogue 
822    pour produire les informations d\'etaill\'ees concernant chaque fichier.
823
824 \item [estimate]
825    \index[dir]{estimate }
826    La commande {\bf estimate} affiche un aper\c{c}u du nombre total de fichiers dans 
827    l'arbre, de ceux s\'electionn\'es pour restauration, et une estimation du nombre 
828    d'octets \`a restaurer. Ceci peut-\^etre tr\`es utile si la machine o\`u vous comptez 
829    restaurer est limit\'ee en espace disque.
830
831 \item [find]
832    \index[dir]{find }
833    La commande {\bf find} prend un ou plusieurs arguments et affiche tous les fichiers 
834    de l'arbre qui satisfont ces arguments. Les arguments peuvent comporter 
835    des caract\`eres joker. Cette commande est similaire \`a la commande Unix 
836    {\bf find / -name arg}.
837
838 \item [ls]
839    La commande {\bf ls} produit la liste des fichiers du r\'epertoire courant, comme 
840    le ferait la commande Unix {\bf ls}. Vous pouvez sp\'ecifier un argument 
841    comportant des caract\`eres joker, auquel cas seuls les fichiers concern\'es seront 
842    list\'es. Le nom de tout fichier s\'electionn\'e pour restauration est pr\'ec\'ed\'e 
843    d'un ast\'erisque ({\bf *}). Les noms de r\'epertoires sont suivis d'une barre oblique 
844    avant (slash {\bf /}) pour les distinguer des noms de fichiers.
845
846 \item [lsmark]
847    \index[fd]{lsmark}
848    La commande {\bf lsmark} est similaire \`a la commande {\bf ls}, mais de port\'ee  
849    restreinte aux fichiers s\'electionn\'es pour restauration. D'autre part, contrairement 
850    \`a {\bf lsmark}, elle descend r\'ecursivement dans les sous-r\'epertoire du 
851    r\'epertoire s\'electionn\'e.
852
853 \item [mark]
854    \index[dir]{mark }
855    La commande {\bf mark} vous permet de s\'electionner vos fichiers pour restauration. 
856    Elle prend pour unique argument le nom du fichier ou r\'epertoire (du r\'epertoire 
857    courant) \`a restaurer. L'argument peut comporter des caract\`eres joker, auquel cas 
858    tous les fichiers qui co\"incident avec le motif sp\'ecifi\'e sont s\'electionn\'es pour 
859    restauration. Si un r\'epertoire du r\'epertoire courant co\"incide avec l'argument, 
860    alors ce r\'epertoire et tous les fichiers qu'il contient sont r\'ecursivement 
861    s\'electionn\'es pour restauration. Chacun des fichiers s\'electionn\'e est identifiable par 
862    l'ast\'erisque qui pr\'ec\`ede son nom dans la liste produite par les commandes {\bf ls} 
863    ou {\bf dir}. Notez que fournir un chemin absolu en argument de la commande 
864    {\bf mark} ne produit pas le r\'esultat qu'on pourrait en attendre pour s\'electionner 
865    un fichier ou un r\'epertoire du r\'epertoire courant. La commande {\bf mark} travaille 
866    sur le r\'epertoire courant et sur les r\'epertoires enfants, mais ne remonte pas vers les 
867    r\'epertoires de plus haut niveau.
868
869    Apr\`es ex\'ecution, la commande {\bf mark} affiche un bref r\'esum\'e :
870
871 \footnotesize
872 \begin{verbatim}
873     No files marked.    
874
875 \end{verbatim}
876 \normalsize
877
878    si aucun fichier n'a \'et\'e s\'electionn\'e, ou :
879
880 \footnotesize
881 \begin{verbatim}
882     nn files marked.
883     
884 \end{verbatim}
885 \normalsize
886
887    si certains fichiers ont \'et\'e s\'electionn\'es.
888
889 \item [unmark]
890    \index[dir]{unmark }
891    la commande {\bf unmark} fonctionne exactement comme la commande {\bf mark}, mais 
892    sert \`a d\'es\'electionner les fichiers sp\'ecifi\'es pour qu'ils ne soient pas 
893    restaur\'es. Notez que la commande {\bf unmark} travaille sur le r\'epertoire courant 
894    et sur les r\'epertoires enfants, mais ne remonte pas vers les r\'epertoires de plus 
895    haut niveau. Si vous souhaitez d\'es\'electionner l'ensembles des fichiers, placez-vous  
896    \`a la racine ({\bf cd /}) avant de saisir {\bf unmark *}.
897
898 \item [pwd]
899    \index[dir]{pwd }
900    La commande {\bf pwd} affiche le r\'epertoire courant. Elle ne prend aucun argument.
901
902 \item [count]
903    \index[dir]{count }
904    La commande {\bf count} affiche le nombre total de fichiers dans l'arborescence des 
905    fichiers et le nombre de fichiers s\'electionn\'es pour restauration.
906
907 \item [done]
908    \index[dir]{done }
909    Cette commande permet de quitter le mode de s\'election de fichiers.
910
911 \item [exit]
912    \index[fd]{exit }
913    Cette commande permet de quitter le mode de s\'election de fichiers (identique \`a {\bf done}).
914
915 \item [quit]
916    \index[fd]{quit }
917    Cette commande permet de quitter le mode de s\'election de fichiers sans ex\'ecuter la restauration.
918
919 \item [help]
920    \index[fd]{help }
921    Cette commande affiche un aper\c{c}u des commandes disponibles.
922
923 \item [?]
924    Cette commande est identique \`a {\bf help}.
925 \end{description}
926
927 \label{database_restore}
928 \subsection*{Restaurer lorsque tout va de travers}
929 \index[general]{Restaurer lorsque tout va de travers}
930 \index[general]{Restaurer le catalogue}
931 \index[general]{Catalogue!Restaurer}
932 \addcontentsline{toc}{subsection}{Restaurer lorsque tout va de travers}
933
934 Je pr\'esente ici quelques-uns des probl\`emes qui peuvent survenir et 
935 rendre les op\'erations de restaurations plus difficiles, et quelques id\'ees 
936 pour se sortir de ces situations d\'elicates. Des informations plus 
937 sp\'ecifiques aux restaurations compl\`etes des \ilink{clients}{restore_client}
938 ou du \ilink{serveur}{restore_server} sont fournies dans le chapitre 
939 \ilink{Disaster recovery avec Bacula}{_ChapterRescue}.
940
941 \begin{description}
942 \item[Probl\`eme]
943    Mon catalogue est corrompu.
944 \item[Solution]
945    Pour SQLite, utilisez la commande {\bf vacuum} pour tenter de r\'ecup\'erer 
946    le catalogue. Pour MySQL ou PostgreSQL, consultez la documentation 
947    officielle de la base de donn\'ees. Des outils sp\'ecifiques vous permettront 
948    de contr\^oler et r\'eparer votre catalogue.
949
950    Dans le cas contraire, vous devrez restaurer le catalogue.
951 \item[Probl\`eme]
952    Comment restaurer mon catalogue ?
953 \item[Solution]
954    Si vous avez sauvegard\'e votre catalogue quotidiennement (comme il se doit...) 
955    et avez fait un fichier {\it bootstrap}, vous pouvez imm\'ediatement 
956    recharger votre base de donn\'ees. Faites une copie de votre base courante, 
957    puis r\'einitialisez-la avec les scripts suivants :
958 \begin{verbatim}
959    ./drop_bacula_tables
960    ./make_bacula_tables
961 \end{verbatim}
962    Apr\`es r\'einitialisation de la base, vous devriez pouvoir d\'emarrer Bacula.
963    Si vous tentez maintenat d'utiliser la commande {\bf run}, \c{c}a ne 
964    marchera pas puisque le catalogue est vierge. Cependant, vous pouvez 
965    ex\'ecuter manuellement un job et sp\'ecifier votre fichier bootstrap.
966    Pour cela, utilisez la commande {\bf run} et choisissez un job de type 
967    {\bf retore}. Si vous utilisez le bacula-dir.conf par d\'efaut, il s'agit 
968    de {\bf RestoreFiles}. Vous devriez obtenir quelque chose comme :
969
970 \footnotesize
971 \begin{verbatim}
972 Run Restore job
973 JobName:    RestoreFiles
974 Bootstrap:  /home/kern/bacula/working/restore.bsr
975 Where:      /tmp/bacula-restores
976 Replace:    always
977 FileSet:    Full Set
978 Client:     rufus-fd
979 Storage:    File
980 When:       2005-07-10 17:33:40
981 Catalog:    MyCatalog
982 Priority:   10
983 OK to run? (yes/mod/no): 
984 \end{verbatim}
985 \normalsize
986    Plusieurs param\`etres seront diff\'erents dans votre cas. Vous aller modifier 
987    (commande {\bf mod}) le param\`etre {\bf Bootstrap} pour qu'il pointe 
988    vers votre fichier bootstrap, et vous assurer que les autres param\`etres 
989    sont corrects. Notez que le FileSet est ignor\'e lorque vous utilisez un 
990    fichier bootstrap. Une fois que vous avez fix\'e tous les bons param\`etres, 
991    ex\'evutez le job, vous devriez r\'ecup\'erer la sauvegarde de votre catalogue. 
992    Il vous reste alors \`a r\'eg\'en\'erer votre base de donn\'ees \`a partir du 
993    fichier de sauvegarde ASCII.
994
995 \item[Solution]
996    Si vous avez sauvegard\'e votre catalogue mais n'avez pas fait de fichier 
997    bootstrap, la reconstruction du catalogue sera un peu plus difficile. 
998    Il vous faudra probablement utiliser {\bf bextract} pour extraire 
999    la sauvegarde du catalogue. D'abord vous devez la localiser en 
1000    consultant le rapport de la derni\`ere sauvegarde du catalogue. Il comporte 
1001    des informations qui vous seront pr\'ecieuses pour le restaurer rapidement.
1002    Par exemple, dans le rapport ci-dessous, les \'elements critiques sont 
1003    {\it Volume name(s)}, {\it the Volume Session Id} et {\it Volume Session Time}. 
1004    Si vous les connaissez, vous pouvez restaurer ais\'ement votre catalogue.
1005 \footnotesize
1006 \begin{verbatim}
1007
1008 22-Apr 10:22 HeadMan: Start Backup JobId 7510,
1009 Job=CatalogBackup.2005-04-22_01.10.0
1010 22-Apr 10:23 HeadMan: Bacula 1.37.14 (21Apr05): 22-Apr-2005 10:23:06
1011   JobId:                  7510
1012   Job:                    CatalogBackup.2005-04-22_01.10.00
1013   Backup Level:           Full
1014   Client:                 Polymatou
1015   FileSet:                "CatalogFile" 2003-04-10 01:24:01
1016   Pool:                   "Default"
1017   Storage:                "DLTDrive"
1018   Start time:             22-Apr-2005 10:21:00
1019   End time:               22-Apr-2005 10:23:06
1020   FD Files Written:       1
1021   SD Files Written:       1
1022   FD Bytes Written:       210,739,395
1023   SD Bytes Written:       210,739,521
1024   Rate:                   1672.5 KB/s
1025   Software Compression:   None
1026   Volume name(s):         DLT-22Apr05
1027   Volume Session Id:      11
1028   Volume Session Time:    1114075126
1029   Last Volume Bytes:      1,428,240,465
1030   Non-fatal FD errors:    0
1031   SD Errors:              0
1032   FD termination status:  OK
1033   SD termination status:  OK
1034   Termination:            Backup OK
1035
1036 \end{verbatim}
1037 \normalsize
1038   Avec ces informations, vous pouvez cr\'eer manuellement un fichier 
1039   bootstrap et embrayer sur les instructions donn\'ees plus haut pour 
1040   restaurer le catalogue. Un fichier bootstrap reconstruit pour le job 
1041   ci-dessus ressemblerait \`a ceci :
1042
1043 \footnotesize
1044 \begin{verbatim}
1045 Volume="DLT-22Apr05"
1046 VolSessionId=11
1047 VolSessionTime=1114075126
1048 FileIndex=1-1
1049 \end{verbatim}
1050 \normalsize    
1051   
1052   o\`u les valeurs {\it Volume name}, {\it Volume Session Id} , et {\it Volume Session Time} 
1053   conformes \`a celles du rapport de job ont \'et\'e introduites. Notez aussi 
1054   le {\it FileIndex} de valeur 1, ce sera toujours le cas pourvu qu'un seul fichier 
1055   ait \'et\'e sauvegard\'e par le job.
1056
1057   L'inconv\'enient de ce fichier bootstrap par rapport \`a celui cr\'e\'e automatiquement 
1058   lorsque vous le sp\'ecifiez est qu'il ne comporte aucune sp\'ecification {\it File} 
1059   ou {\it Block}, aussi Bacula doit examiner toutes les donn\'ees du volume pour 
1060   trouver le fichier requis. Un fichier bootstrap compl\`etement renseign\'e ressemblerait 
1061   \`a ceci :
1062
1063 \footnotesize
1064 \begin{verbatim}
1065 Volume="DLT-22Apr05"
1066 VolSessionId=11
1067 VolSessionTime=1114075126
1068 VolFile=118-118
1069 VolBlock=0-4053
1070 FileIndex=1-1
1071 \end{verbatim}
1072 \normalsize
1073
1074 \item [Probl\`eme]
1075    J'essaye de restaurer depuis la derni\`ere sauvegarde compl\`ete en 
1076    s\'electionnant le choix 3 dans le menu de restauration, puis le 
1077    JobId \`a restaurer. Bacula affiche alors :
1078
1079 \footnotesize
1080 \begin{verbatim}
1081    1 Job 0 Files
1082 \end{verbatim}
1083 \normalsize
1084    et ne restaure rien.
1085 \item[Solution]
1086    Les enregistrements de fichiers ont tr\`es probablement \'et\'e \'elagu\'es du catalogue 
1087    soit par expiration de leur p\'eriode de r\'etention (File Retention), soit par purge 
1088    explicite du job. La commande {\it llist jobid=nn} permet d'obtenir toutes les 
1089    informations importantes sur ce job :
1090 \footnotesize
1091 \begin{verbatim}
1092 llist jobid=120
1093            JobId: 120
1094              Job: save.2005-12-05_18.27.33
1095         Job.Name: save
1096      PurgedFiles: 0
1097             Type: B
1098            Level: F
1099     Job.ClientId: 1
1100      Client.Name: Rufus
1101        JobStatus: T
1102        SchedTime: 2005-12-05 18:27:32
1103        StartTime: 2005-12-05 18:27:35
1104          EndTime: 2005-12-05 18:27:37
1105         JobTDate: 1133803657
1106     VolSessionId: 1
1107   VolSessionTime: 1133803624
1108         JobFiles: 236
1109        JobErrors: 0
1110  JobMissingFiles: 0
1111       Job.PoolId: 4
1112        Pool.Name: Full
1113    Job.FileSetId: 1
1114  FileSet.FileSet: BackupSet
1115 \end{verbatim}
1116 \normalsize
1117    Vous pouvez alors d\'eterminer le(s) volume(s) avec : 
1118 \footnotesize
1119 \begin{verbatim}
1120 sql
1121 select VolumeName from JobMedia,Media where JobId=1 and JobMedia.MediaId=Media.MediaId;
1122 \end{verbatim}
1123 \normalsize
1124    Finalement, vous pouvez cr\'eer un fichier bootstrap iavec ces informations 
1125    comme d\'ecrit plus haut.
1126
1127    A partir de la version 1.38.0, lorsque vous entrez un jobId apr\`es avoir 
1128    fait le choix 3, Bacula v ous demande si vous voulez restaurer tous les 
1129    fichiers du job, collecte pour vous les informations requises et \'ecrit le 
1130    fichier bootstrap.
1131
1132 \item [Probl\`eme]
1133   Vous n'avez ni fichier bootstrap, ni rapport de job pour votre sauvegarde 
1134   de catalogue, mais vous avez une sauvegarde et vous savez sur quel volume.
1135   
1136 \item [Solution]
1137   Utilisez {\bf bls} pour d\'eterminer o\`u se trouve le fichier requis sur la bande. 
1138   Par exemple :
1139
1140 \footnotesize
1141 \begin{verbatim}
1142 ./bls -j -V DLT-22Apr05 /dev/nst0
1143 \end{verbatim}
1144 \normalsize
1145   pourrait produire ceci :
1146 \footnotesize
1147 \begin{verbatim}
1148 bls: butil.c:258 Using device: "/dev/nst0" for reading.
1149 21-Jul 18:34 bls: Ready to read from volume "DLT-22Apr05" on device "DLTDrive"
1150 (/dev/nst0).
1151 Volume Record: File:blk=0:0 SessId=11 SessTime=1114075126 JobId=0 DataLen=164
1152 ...
1153 Begin Job Session Record: File:blk=118:0 SessId=11 SessTime=1114075126
1154 JobId=7510
1155    Job=CatalogBackup.2005-04-22_01.10.0 Date=22-Apr-2005 10:21:00 Level=F Type=B
1156 End Job Session Record: File:blk=118:4053 SessId=11 SessTime=1114075126
1157 JobId=7510
1158    Date=22-Apr-2005 10:23:06 Level=F Type=B Files=1 Bytes=210,739,395 Errors=0
1159 Status=T
1160 ...
1161 21-Jul 18:34 bls: End of Volume at file 201 on device "DLTDrive" (/dev/nst0),
1162 Volume "DLT-22Apr05"
1163 21-Jul 18:34 bls: End of all volumes.
1164 \end{verbatim}
1165 \normalsize
1166   Bien sur, il y aura de nombreuses autres informations affich\'ees, nous n'avons 
1167   reproduit ici que les essentielles. D'apr\`es les informations sur le d\'ebut 
1168   ({\it Begin job Session Record} et sur la fin {\it End Job Session Record} du 
1169   job, vous pouvez \'ecrire un fichier bootstrap comme indiqu\'e plus haut.
1170
1171 \item[Probl\`eme]
1172   Comment puis-je d\'eterminer o\`u un fichier est stock\'e ?
1173 \item[Solution]
1174   En principe, ce n'est pas n\'ecessaire. La commande {\bf restore} permet de 
1175   restaurer la version de la sauvegarde la plus r\'ecente (option 5 du menu), 
1176   ou une version sauvegard\'ee avant une date donn\'ee (option 8 du menu). Si vous 
1177   connaissez le JobId du job qui l'a sauvegard\'e, vous pouvez utiliser l'option 3 
1178   pour entrer ce JobId.
1179
1180   Pour rechercher le JobId d'une sauvegarde d'un fichier donn\'e, choisissez 
1181   l'option 2.
1182
1183   Vous pouvez aussi utiliser la commande {\bf query} pour trouver l'information :
1184
1185 \footnotesize
1186 \begin{verbatim}
1187 *query
1188 Available queries:
1189      1: List Job totals:
1190      2: List up to 20 places where a File is saved regardless of the directory:
1191      3: List where the most recent copies of a file are saved:
1192      4: List last 20 Full Backups for a Client:
1193      5: List all backups for a Client after a specified time
1194      6: List all backups for a Client
1195      7: List Volume Attributes for a selected Volume:
1196      8: List Volumes used by selected JobId:
1197      9: List Volumes to Restore All Files:
1198     10: List Pool Attributes for a selected Pool:
1199     11: List total files/bytes by Job:
1200     12: List total files/bytes by Volume:
1201     13: List Files for a selected JobId:
1202     14: List Jobs stored in a selected MediaId:
1203     15: List Jobs stored for a given Volume name:
1204 Choose a query (1-15):
1205 \end{verbatim}
1206 \normalsize
1207
1208
1209 \end{description}