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}
10 \subsection*{G\'en\'eralit\'es}
11 \index[general]{G\'en\'eralit\'es}
12 \addcontentsline{toc}{subsection}{G\'en\'eralit\'es}
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.
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}.
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}.
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.
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}.
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
64 Dans la Console, apr\`es avoir saisi {\bf restore}, le menu suivant vous est
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
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
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).
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.
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).
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.
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
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.
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.
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.
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.
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.
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
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.
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.
172 \item Le choix 12 vous permet d'abandonner la restauration.
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 :
191 Select Client (File daemon) resource (1-9):
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 :
202 The defined FileSet resources are:
205 Select FileSet resource (1-2):
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.
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
221 +-------+------+----------+-------------+-------------+------+-------+----------
223 | JobId | Levl | JobFiles | StartTime | VolumeName | File | SesId |
225 +-------+------+----------+-------------+-------------+------+-------+----------
227 | 1,792 | F | 128,374 | 08-03 01:58 | DLT-19Jul02 | 67 | 18 |
229 | 1,792 | F | 128,374 | 08-03 01:58 | DLT-04Aug02 | 0 | 18 |
231 | 1,797 | I | 254 | 08-04 13:53 | DLT-04Aug02 | 5 | 23 |
233 | 1,798 | I | 15 | 08-05 01:05 | DLT-04Aug02 | 6 | 24 |
235 +-------+------+----------+-------------+-------------+------+-------+----------
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 ...
246 (Certaines colonnes sont tromqu\'ees pour des n\'ecessit\'es de mise en page).
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.
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
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.
267 Si vous voulez que tous les fichiers de l'arbre soient marqu\'es pour
268 restauration \`a sa construction, tapez {\bf restore all}.
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.
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.
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.
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 :
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
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
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.
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
325 Pour contr\^oler ce qui est marqu\'e et ce qui ne l'est pas utilisez la commande
326 {\bf count} qui affiche :
330 128401 total files. 128401 marked to be restored.
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 :
341 Bootstrap records written to /home/kern/bacula/working/restore.bsr
342 The restore job will require the following Volumes:
346 128401 files selected to restore.
348 JobName: kernsrestore
349 Bootstrap: /home/kern/bacula/working/restore.bsr
350 Where: /tmp/bacula-restores
356 OK to run? (yes/mod/no):
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
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
377 Un exemple de ressource Job de type restore est donn\'e plus bas.
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.
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.
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.
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}
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.
407 Pour saisir la liste, choisissez l'option 7 dans le menu de la commande {\bf restore} :
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
428 Vous \^etes alors invit\'e \`a pr\'eciser le client :
436 Select the Client (1-3): 3
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 :
449 Vous pouvez, \`a ce stade, saisir le chemin absolu et le nom du fichier :
453 Enter filename: /home/kern/bacula/k/Makefile.in
458 Si Bacula ne peut en trouver aucune copie, il affiche ce qui suit :
462 Enter filename: junk filename
463 No database record found for: junk filename
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 :
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:
483 1 file selected to restore.
485 JobName: kernsrestore
486 Bootstrap: /home/kern/bacula/working/restore.bsr
487 Where: /tmp/bacula-restores
492 When: 2003-09-11 10:20:53
494 OK to run? (yes/mod/no):
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
504 restore client=Rufus file=</tmp/file-list
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.
513 \label{CommandArguments}
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}
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 :
527 restore client=Rufus select current all done yes
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.
536 Voici la liste des arguments de la ligne de commandes :
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
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).
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}
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.
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
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.
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.
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.
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.
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.
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.
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}
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.
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.
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
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).
672 \subsection*{Problems Restoring Files}
673 \index[general]{Files!Problems Restoring }
674 \index[general]{Problems Restoring Files }
675 \addcontentsline{toc}{subsection}{Problems Restoring Files}
677 The most frequent problems users have restoring files are error messages such
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.
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 ".".
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.
706 Try the following things, each separately, and reset your Device resource to
707 what it is now after each individual test:
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
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.
727 \subsection*{Restore Errors}
728 \index[general]{Errors!Restore}
729 \index[general]{Restore Errors}
730 \addcontentsline{toc}{subsection}{Restore Errors}
732 There are a number of reasons why there may be restore errors or
733 warning messages. Some of the more common ones are:
737 \item [file count mismatch]
738 This can occur for the following reasons:
740 \item You requested Bacula not to overwrite existing or newer
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.
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.
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.
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}
772 Name = "RestoreFiles"
775 FileSet = "Any-FileSet"
776 Storage = Any-storage
777 Where = /tmp/bacula-restores
784 If {\bf Where} is not specified, the default location for restoring files will
785 be their original locations.
788 \subsection*{File Selection Commands}
789 \index[general]{Commands!File Selection }
790 \index[general]{File Selection Commands }
791 \addcontentsline{toc}{subsection}{File Selection Commands}
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:
807 The {\bf cd} command changes the current directory to the argument
809 It operates much like the Unix {\bf cd} command. Wildcard specifications are
812 Note, on Windows systems, the various drives (c:, d:, ...) are treated like
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.
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
823 the {\bf ls} command because it must access the catalog database for the
824 detailed information for each file.
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
831 be restored. This can be useful if you are short on disk space on the
833 where the files will be restored.
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}.
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
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.
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.
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}
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.
872 After executing the {\bf mark} command, it will print a brief summary:
881 If no files were marked, or:
890 if some files are marked.
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.
902 The {\bf pwd} command prints the current working directory. It accepts no
907 The {\bf count} command prints the total files in the directory tree and the
908 number of files marked to be restored.
912 This command terminates file selection mode.
916 This command terminates file selection mode (the same as done).
920 This command terminates the file selection and does not run the restore
926 This command prints a summary of the commands available.
929 This command is the same as the {\bf help} command.
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}
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.
949 My database is broken.
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.
955 Assuming the above does not resolve the problem, you will need to restore
956 or rebuild your catalog.
958 How do I restore my catalog?
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:
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:
979 JobName: RestoreFiles
980 Bootstrap: /home/kern/bacula/working/restore.bsr
981 Where: /tmp/bacula-restores
986 When: 2005-07-10 17:33:40
989 OK to run? (yes/mod/no):
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.
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
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
1019 Job: CatalogBackup.2005-04-22_01.10.00
1022 FileSet: "CatalogFile" 2003-04-10 01:24:01
1025 Start time: 22-Apr-2005 10:21:00
1026 End time: 22-Apr-2005 10:23:06
1029 FD Bytes Written: 210,739,395
1030 SD Bytes Written: 210,739,521
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
1039 FD termination status: OK
1040 SD termination status: OK
1041 Termination: Backup OK
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
1051 Volume="DLT-22Apr05"
1053 VolSessionTime=1114075126
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.
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:
1069 Volume="DLT-22Apr05"
1071 VolSessionTime=1114075126
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
1088 and restores nothing.
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:
1098 Job: save.2005-12-05_18.27.33
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
1111 VolSessionTime: 1133803624
1118 FileSet.FileSet: BackupSet
1122 Then you can find the Volume(s) used by doing:
1126 select VolumeName from JobMedia,Media where JobId=1 and JobMedia.MediaId=Media.MediaId;
1129 Finally, you can create a bootstrap file as described in the previous
1130 problem above using this information.
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
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.
1144 Use {\bf bls} to indicate where it is on the tape. For example:
1148 ./bls -j -V DLT-22Apr05 /dev/nst0
1151 Might produce the following output:
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"
1157 Volume Record: File:blk=0:0 SessId=11 SessTime=1114075126 JobId=0 DataLen=164
1159 Begin Job Session Record: File:blk=118:0 SessId=11 SessTime=1114075126
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
1164 Date=22-Apr-2005 10:23:06 Level=F Type=B Files=1 Bytes=210,739,395 Errors=0
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.
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
1178 How can I find where a file is stored.
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.
1185 If you would like to know the JobId where a file was saved, select
1186 restore menu option 2.
1188 You can also use the {\bf query} command to find information such as:
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):