Bonjour à tous,
Je me permets de poster sur ce forum pour vous demander votre aide. J'ai mis en place un système de sauvegarde sur Bacula.
Je sauvegarde plusieurs serveurs (réels et virtuels) sur des bandes "virtuelles" sur un NAS Synology.
Voici ma politique de sauvegarde :
- Sauvegardes incrémentales quotidiennes, rétention 15 jours
- Sauvegardes complètes hebdomadaires, rétention 1 mois
- Sauvegardes complètes mensuelles, rétention 2 mois
- Sauvegardes complètes annuelles, rétention 10 ans
L'ensemble fonctionne parfaitement à un détail près : en voulant faire un essai de restauration (car il faut le faire de temps en temps), je ne retrouve pas mes sauvegardes annuelles effectuées en septembre 2013 et pourtant j'ai bien 2 bandes avec 100Go sur chaque.
Quelques éléments sur la configuration :
Pool de bandes sauvegardes annuelles
MediaId | VolumeName | VolStatus | Enabled | VolBytes | VolFiles | VolRetention | Recycle | Slot | InChanger | MediaType | LastWritten |
+---------+------------+-----------+---------+-----------------+----------+--------------+---------+------+-----------+-----------+---------------------+
| 40 | D001 | Full | 1 | 107,374,138,457 | 24 | 315,360,000 | 0 | 0 | 0 | File | 2013-09-03 22:27:20 |
| 41 | D002 | Full | 1 | 107,374,160,118 | 24 | 315,360,000 | 0 | 0 | 0 | File | 2013-09-04 01:42:36 |
| 42 | D003 | Append | 1 | 2,991,135,696 | 0 | 315,360,000 | 0 | 0 | 0 | File | 2013-09-04 02:21:46 |
Config job :
Job { Name = "Sauvegarde_SerLinS01" Client = SerLinS01-fd JobDefs = "Sauvegarde_Quotidienne_Linux" RunBeforeJob = "/etc/bacula/scripts/mount_media" Write Bootstrap = "/var/lib/bacula/SerLinS01.bsr" RunAfterJob = "/etc/bacula/scripts/duplicate_file SerLinS01.bsr" }
Config du pool annuel :
Pool { Name = Yearly Pool Type = Backup Recycle = no # Bacula can automatically recycle Volumes AutoPrune = no # Do not prune expired volumes Volume Retention = 10 years # 10 years Maximum Volume Bytes = 100G }
Lorsque je tente une restauration à partir de la bconsole, j'ai le message suivant :
restore
First you select one or more JobIds that contain files
to be restored. You will be presented several methods
of specifying the JobIds. Then you will be allowed to
select which files from those JobIds are to be restored.To select the JobIds, you have the following choices:
1: List last 20 Jobs run
2: List Jobs where a given File is saved
3: Enter list of comma separated JobIds to select
4: Enter SQL list command
5: Select the most recent backup for a client
6: Select backup for a client before a specified time
7: Enter a list of files to restore
8: Enter a list of files to restore before a specified time
9: Find the JobIds of the most recent backup for a client
10: Find the JobIds for a backup for a client before a specified time
11: Enter a list of directories to restore for found JobIds
12: Select full restore to a specified Job date
13: Cancel
Select item: (1-13): 6
The restored files will the most current backup
BEFORE the date you specify below.Enter date as YYYY-MM-DD HH:MM:SS :2013-09-15 00:00:00
Defined Clients:
1: SerLinD01-fd
2: SerLinS01-fd
3: SerLinS02-fd
4: SerWinS01-fd
Select the Client (1-4): 2
The defined FileSet resources are:
1: Catalog
2: Linux
Select FileSet resource (1-2): 2
No Full backup before 2013-09-15 00:00:00 found.
Config client :
Client {
Name = SerLinS01-fd
Address = 192.168.2.1
FDPort = 9102
Catalog = MyCatalog
Password = "mon mot de passe" # password for FileDaemon
File Retention = 21 days # 30 days
Job Retention = 2 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}
Avez-vous une petite idée ? Je pense que les données sont présentes mais que la base de données Bacula ne contient plus la liste des données sauvegardées. Je pense que j'ai un problème avec les rétentions définies ci-dessus. Dois-je passer la valeur "Job retention" à une valeur plus élevée ?
Merci d'avance pour votre aide.
Rob
# je dis surement une connerie
Posté par NeoX . Évalué à 2.
mais tu essayes de restaurer avec :
mais dans la defintion du client tu lui indiques catalog
donc il est peut-etre normal que bacula n'ait pas fait de sauvegarde du "linux" mais uniquement un catalogue des fichiers de la machine.
[^] # Re: je dis surement une connerie
Posté par bobby60 . Évalué à 1.
Bonjour,
La directive Catalog correspond au catalogue (=base de données) dans lequel les noms des fichiers sauvegardés sont indexés (ainsi que les noms de Pool, les medias de stockage, etc.). Le fileset "Catalog" est sauvegardé et peut être restauré. Le problème ne vient pas de là.
Je viens de trouver la solution je pense. J'ai découvert un paragraphe dans la documentation que je n'avais pas vu auparavant. Voici ce qui est dit :
Donc en plus de définir la rétention de la liste des fichiers sauvegardés et des jobs dans la config du client, on peut définir ces mêmes rétentions au niveau du pool de médias. Ce sont ces dernières qui écrasent les valeurs définies au niveau du client. Cela paraît plus que logique.
J'ai donc ajouté dans la définition de mon pool de bandes pour les sauvegardes annuelles les 2 directives suivantes :
Autrement dit, je peux faire une restauration fichier par fichier pendant 1 an et je peux restaurer en un seul bloc l'ensemble des fichiers sauvegardés pendant 10 ans.
Ma précédente configuration qui était erronée a supprimé les "méta données" du job mais les données sont toujours là… C'est certainement inexploitable. Je peux supprimer mes 200Go de données.
Je reviens vers vous dans quelques mois voir si cela fonctionne correctement ;-)
N'hésitez pas à me contredire si vous pensez que j'ai mal compris.
Merci de m'avoir lu.
Rob
[^] # Re: je dis surement une connerie
Posté par seraf1 . Évalué à 2.
Je n'ai plus utiliser Bacula depuis 2 ans mais tu doit avoir une commande pour récupérer les méta-données des jobs et fichier directement depuis la bande de sauvegarde, cela reconstruit le catalogue.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.