L’utilitaire Amrestore permet tout comme Amrecover de restaurer les fichiers sauvegardés par Amanda, mais de manière moins “fine”. En effet, si les données à sauvegarder sont trop volumineuses, Amanda effectue la sauvegarde en découpant en plusieurs morceaux les disques déclarés dans votre fichier disklist. Cela permet d’effectuer la sauvegarde plus rapidement.
Amrestore se base sur ces morceaux (chunks) pour établir une restauration. Il ne peut restaurer qu’au minimum un morceau. Pour restaurer un seul fichier, vous êtes obligé de restaurer l’intégralité du morceau dans lequel il se trouve.
Quel est alors l’intérêt d’utiliser un outil “moins puissant” ? C’est simple, contrairement à Amrecover, Amrestore n’a pas besoin des fichiers d’index pour effectuer une restauration. Si vos index sont perdus, vous pouvez donc quand même effectuer une restauration de vos fichiers.
Voici la méthode
Rembobiner la bande:
thomas@cryonux:~$ mt -f /dev/nst0 rewind
Lancer la commande pour lister le contenu de la bande:
thomas@cryonux:~$ amrestore -p /dev/nst0 no-such-host > /dev/null
Voici un exemple de listing qu’amrestore va vous générer:
CMD N° DE CHUNK ACTION SERVEUR._DISQUE.DATE
amrestore: 1: skipping pdc._home.20080917.3.01
amrestore: 2: skipping pdc._home.20080917.3.02
amrestore: 3: skipping pdc._home.20080917.3.03
amrestore: 4: skipping pdc._etc.20080917.3.1
amrestore: 5: skipping pdc._var_lib.20080917.3.2
amrestore: 6: skipping sgbd._opt.20080917.3.3
amrestore: 7: reached end of tape: date 20080918
Puis rembobiner la bande à nouveau:
thomas@cryonux:~$ mt -f /dev/nst0 rewind
Pour restaurer l’ensemble des données du serveur “pdc” présentes sur la bande nous allons faire:
thomas@cryonux:~$ amrestore /dev/nst0 pdc | tar xvf -
Pour ne restaurer par exemple que le disque “etc” du serveur “pdc” nous allons faire:
thomas@cryonux:~$ amrestore /dev/nst0 pdc etc | tar xvf -
amrestore: 1: skipping pdc._home.20080917.3.01
amrestore: 2: skipping pdc._home.20080917.3.02
amrestore: 3: skipping pdc._home.20080917.3.03
amrestore: 4: restoring pdc._etc.20080917.3.1
amrestore: 5: skipping pdc._var_lib.20080917.3.2
amrestore: 6: skipping sgbd._opt.20080917.3.3
amrestore: 7: reached end of tape: date 20080918
Il y a un petit truc pour aller plus rapidement, si au préalable vous aviez lancé le listing de la bande (cf commande correspondante). Amrestore lance la recherche de l’emplacement des données sur la bande avant d’effectuer la restauration et ce processus peut prendre énormément de temps si vous avez beaucoup de données sauvegardées. Le truc consiste alors à se placer directement à l’endroit des données à restaurer, pour cela il suffit d’avoir le numéro du morceau correspondant à cet emplacement sur la bande (n° de chunk).
Exemple avec mon disque “etc” du serveur “pdc”:
thomas@cryonux:~$ mt -f /dev/nst0 fsf 4
4 correspondant donc au morceau où se trouve “etc”
amrestore: 4: restoring pdc._etc.20080917.3.1
amrestore: 5: skipping pdc._var_lib.20080917.3.2
amrestore: 6: skipping sgbd._opt.20080917.3.3
amrestore: 7: reached end of tape: date 20080918
Il ne reste alors plus qu’à décompresser l’archive restaurée pdc._etc.20080917.3.1 avec tar -xzvf
A noter, Amanda n’utilise pas de format propriétaire pour la sauvegarde de vos fichiers. Si votre serveur de sauvegarde est en rade et que vous devez faire une restauration en urgence, vous pouvez tout simplement utiliser les outils Linux pour restaurer vos bandes. Certes, ça va être du “tout ou rien” mais ce n’est pas le moment de chipoter !
En utilisant dd on va pouvoir restaurer tout une bande en un seul coup:
thomas@cryonux:~$ dd if=/dev/nst0 bs=32k count=1
thomas@cryonux:~$ dd if=/dev/nst0 bs=32k skip=1 | gunzip | tar xvf