Difference between revisions of "Comment je récupère mon arbre familial"

From Gramps
Jump to: navigation, search
(New page: {{languages}} An attempt to explain GRDB corruption, how to recover from it, and how to avoid it in the future. Category:How do I... ==Why this corruption?== By far, the leading caus...)
 
m (J'ai des fichiers de sauvegarde gbkp)
 
(69 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{languages}}
+
{{languages|Recover corrupted family tree}}
 +
Une tentative pour expliquer une corruption de '''l'arbre familial''' et de '''GRDB''', comment récupérer sa base, et comment l'éviter dans le futur.
  
An attempt to explain GRDB corruption, how to recover from it, and how to avoid it in the future.
+
==Corruption de l'arbre familial==
[[Category:How do I...]]
 
  
==Why this corruption?==
+
=== Qu'est ce qui cause cette corruption?===
By far, the leading cause of grdb corruption is moving the grdb file from its original location. Whether you move the file to another directory, rename it, copy into another file, transfer to another machine, or another user account -- all of those will "corrupt" the file.
 
  
What happens is that the grdb file needs its database environment -- a directory with log files, lock files, temp files, etc. The current stable gramps releases store the environment for each file, under a tree in a <code>~/.gramps/env</code> directory. If your grdb file is <code>/home/user/genealogy/MyData.grdb</code> then its environment is in the <code>/home/user/.gramps/env/home/user/genealogy/MyData.grdb</code> directory.
+
On ne sait pas vraiment. La corruption d'une base de données avec des arbres familiaux est beaucoup moins courante qu'avec le précédent format de stockage des arbres familiaux, utilisé pour la version 2.2.x.
  
So moving, copying, or renaming the file will copy the file's bytes, but not its environment. This is why the moved file appears corrupted.
+
===Comment être informé de cette corruption ?===
  
==What do I do now?==
+
Gramps peut vous informer au démarrage qu'une récupération de la base de données est nécessaire via une boîte de dialogue:
The answer depends on whether or not you have the environment for that database. If you just copied one file into another then the environment still may work. If you modified the original database since then, then the original environment has chanegd and there's no good environment for the new file. If you removed your <code>.gramps</code> directory (why oh why?) then all environments are lost. So act depending on the situation, as explained below.
 
  
===The environment still exists===
+
GRAMPS a détecté un problème relatif à la base de données Berkeley.
If you have environment directory for that file, copy it under the above gudelines.
+
Ceci peut être résolu depuis le gestionnaire d'arbre familial.
;Example: You copied <code>/home/user/genealogy/MyData.grdb</code> to <code>/home/user/genealogy/backup/BackupData.grdb</code> and the new file is not working.
+
Sélectionnez la base de données et cliquez sur le bouton Réparer.
;Solution: Copy <code>/home/user/.gramps/env/home/user/genealogy/MyData.grdb</code> directory into <code>/home/user/.gramps/env/home/user/genealogy/backup/BackupData.grdb</code> and this should fix the problem.
 
  
===The environment is lost===
+
Mais il est possible qu'aucun bouton {{man button|Réparer}} ne soit présent, ou que vous obteniez une erreur (visible dans le terminal)
If you don't have the original environment for that file, you may try dumping and loading your data using Berkeley DB tools. Depending on your system, they may be called <code>db_dump</code> and <code>db_load</code>, <code>db41_dump</code> and <code>db41_load</code>, <code>db4.4_dump</code> and <code>db4.4_load</code>, or some such. Whatever they are called, there should be be a dump tool and a load tool, and they should be version 4 or later.
 
  
Basically, you just dump the grdb into a text file, then create a new grdb from that text file:
+
(-30975, 'DB_RUNRECOVERY: Fatal error, run database recovery -- PANIC: Invalid argument').
    $ db4.4_dump BackupData.grdb > somefile.txt
 
    $ db4.4_load newfile.grdb < somefile.txt
 
and then cross your heart and hope that <code>newfile.grdb</code> will open in gramps.
 
  
==How to prevent corruption?==
+
=== Que dois-je faire, maintenant ? ===
While moving the file is the leading cause of corruption, apparently there are other less frequent causes that we don't fully know. So preventing corruption is not always possible.
 
  
What is possible though is to backup the data regularly. The backups should be in XML format (the <code>.gramps</code> format). XML is machine- and human-readable. It is completely self-sufficient. It is also smalll. Following are the good practices of backups:
+
Il est recommandé de ne pas cliquer sur le bouton réparer tout de suite. Ceci devrait fonctionner, mais GRAMPS pourrait croire à une erreur alors qu'il n'y en a pas. Réparer votre arbre va alors conduire à une perte de vos derniers changements.
# Export to XML from time to time, especially after large edits.
 
# Export to XML before making big changes, such as importing new data into an existing database from e.g. GEDCOM; merging records; running tools that may heavily modify the data etc.
 
# Export to XML before upgrading gramps to a newer version. Apparently, export to XML with old version before you install the new one!
 
# Export to XML before upgrading your OS.
 
  
Also, use XML format for any data migration. Moving to another machine, sending data to grandma, copying to another user on the same machine -- all of these cases should use XML.
+
Au lieu de cela, faites une sauvegarde de votre arbre familial rencontrant des problèmes. Dans un terminal:
  
==Can you guys not solve this ? ==
+
gramps -l
Yes we can! In the next version (GRAMPS 3.0/4.0) this part will be completely reworked, see [[Database Formats#The Future - GRAMPS_3.0|here]].
+
 
 +
Vous obtiendrez une liste de vos arbres familiaux ainsi que des répertoires de stockage, normalement quelque part dans le répertoire  ~/.gramps/grampsdb. Cherchez dans votre [[Gramps_4.0_Wiki_Manual_-_User_Directory/fr|répertoire utilisateur]]. Copiez le répertoire de votre arbre à problèmes pour avoir une sauvegarde :
 +
 +
cp -a <répertoire cible> <répertoire de sauvegarde>
 +
 
 +
Si le bouton réparer était présent sur l'arbre familial GRAMPS, cliquez dessus. Tout devrait de nouveau fonctionner. Si vous notez que vous avez perdu des informations, ou que le bouton réparer ne fonctionne pas, alors suivez les instructions suivantes.
 +
 
 +
Si la sauvegarde a fonctionné, mais vous n'aimez pas le résultat, sauvegardez ces données et placez votre précédente sauvegarde dans sa position originelle. Vous avez ainsi de nouveau l'arbre familial corrompu. Puis, obtenez les outils de récupération bsddb, voir le paquet selon votre distribution. Le programme est appelé db4.8_recover, où 4.8 peut être un numéro de version différent. Regardez votre version BSDDB dans la fenêtre {{man menu|Aide -> À propos}} ou avec la commande <code> gramps -v</code>.
 +
 
 +
Lancez l'outil comme suit :
 +
 
 +
cd /home/<user>/.gramps/grampsdb/<répertoire cible>
 +
db4.8_recover -c
 +
 
 +
Cela devrait faire le travail, et permettre à Gramps de charger l'arbre familial. Dans le cas contraire, ouvrez un rapport sur le traqueur de bugs.
 +
 
 +
====Windows OS====
 +
 
 +
# Téléchargez les outils d'Oracle sur: http://www.oracle.com/technetwork/products/berkeleydb/downloads/index-082944.html
 +
# ...À_COMPLÉTER...
 +
 
 +
=== J'ai des fichiers de sauvegarde gbkp ===
 +
Si vous avez une sauvegarde, alors vous pouvez essayer de récupérer les fichiers <code>.gbkp</code>.
 +
La procédure pour récupérer vos données depuis les fichiers <code>.gbkp</code> est la suivante :
 +
# Notez le nom de l'"Arbre familial" que vous souhaitez récupérer, depuis le "Gestionnaire d'arbres".
 +
# Fermez le programme Gramps.
 +
# Localisez votre [[Gramps_4.2_Wiki_Manual_-_User_Directory/fr|Répertoire local]] d'après votre configuration et système.
 +
# Localisez le répertoire <code>grampsdb</code> de votre répertoire local
 +
# Dans le répertoire <code>grampsdb</code> sont stockés toutes vos bases de données "Arbre" dans des répertoires spécifiques (par ex. si vous avez 10 arbres familiaux, alors vous avez 10 répertoires créés automatiquement avec un numéro lié à un système de numérotation), localisez la base de données que vous êtes en train d'essayer de récupérer en ouvrant le fichier <code>name.txt</code> dans un éditeur de texte et retrouvez le nom qui correspond à l'arbre familial que vous souhaitez récupérer. Si cela correspond, alors notez le nom du répertoire.
 +
# {{man menu|Si le répertoire contient les fichiers <code>.gbkp</code>, alors vous pouvez continuer.}}
 +
# Copiez tous les fichiers <code>.gbkp</code> vers un nouveau répertoire qui doit être créé dans le répertoire <code>grampsdb</code>, par ex. donnez un nom unique ''<code>a1111</code>''
 +
# Depuis le répertoire de l'arbre familial originel, copiez le fichier <code>name.txt</code> vers le nouveau répertoire que vous avez créé.
 +
# Dans le nouveau répertoire, ouvrez le fichier <code>name.txt</code> dans un éditeur de texte et changez le contenu en un nom unique. par ex. '''Tentative de sauvetage arbre familial 1'''
 +
# Dans le nouveau répertoire, créez un fichier avec pour nom '''<code>need_recover</code>''' . {{man menu|pensez bien au tiret}}. Le contenu du fichier n'est pas important. (Si vous êtes sous Microsoft Windows et vous avez des difficultés pour créer ce fichier, lisez {{bug|8665#c44245}} pour une possible alternative)
 +
# Démarrez le programme Gramps.
 +
# Sélectionnez l'arbre familial avec le nom défini à l'étape 9 {{man label|(Ne cliquez pas deux fois sur le nom de l'arbre familial)}}. Il devrait y avoir un signe "stop" rouge à côté du nom de votre arbre familial.
 +
# Sélectionnez le bouton {{man button|Réparer}} et le dialogue {{man label|Réparer l'arbre familial ?}} va apparaître, à ce moment cliquez sur le bouton {{man button|Procéder, j'ai fait une sauvegarde}} ou vous pouvez sélectionner {{man button|Quitter}} pour annuler la réparation.
 +
# Le programme Gramps va essayer de réparer et récupérer l'arbre familial et si l'action est un succès alors le signe stop rouge va disparaître.
 +
# Depuis le gestionnaire d'arbre familial sélectionnez l'arbre familial réparé et vous pourrez ouvrir cette {{man button|Base de donnée chargée}}.
 +
# Depuis le menu Sélection {{man menu|Arbres familiaux > Faire une sauvegarde..}} et créez une sauvegarde pour plus de sécurité.
 +
 
 +
===Implémenter plus de sécurité===
 +
 
 +
Vos données généalogiques contiennent beaucoup de travail et de nombreuses heures de saisies. Ainsi '''établissez un schéma de sauvegarde'''
 +
 
 +
Si vous travaillez régulièrement avec GRAMPS : sauvegardez le répertoire contenant les bases de données ''Arbre Familial''. En général, ce sont des gros fichiers.
 +
 
 +
Si vous savez que vous travaillez sporadiquement avec GRAMPS, ou vous n'avez pas de place pour une sauvegarde régulière des vos arbres, alors faites une [[How_to_make_a_backup/fr|sauvegarde]] au format XML (l'extension <code>.gramps</code>). Ne pas oublier de désactiver les filtres sur la vie privée...
 +
Le format XML a fait ses preuves depuis des années sur d'autres ordinateurs et d'autres systèmes d'exploitation. Ceci n'est probablement '''pas''' le cas pour les données stockées dans l'arbre familial. XML est lisible par les machines et les humains. Il est complètement auto-suffisant. Il est également petit. Suivez les étapes suivantes pour vos [[How_to_make_a_backup/fr|sauvegardes]] :
 +
 
 +
#Exportez au format XML (<code>.gramps</code>) de temps en temps, surtout après de longues éditions.
 +
#Exportez au format XML  avant de faire de grands changements, tel qu'une importation de nouvelles données dans une base de données existante, une fusion des enregistrements, l'utilisation d'outils pouvant durablement modifier vos données, etc.
 +
#Exportez au format XML  avant de mettre à niveau GRAMPS vers une nouvelle version. Mais exportez au format XML sous votre ancienne version avant d'installer la nouvelle !
 +
#Exportez au format XML avant de mettre à niveau votre OS.
 +
 
 +
Par ailleurs, utilisez le format XML pour chaque migration de données. Changement de machine, envoi de données à votre grand-mère, copier pour un autre utilisateur sur la même machine -- tous ces cas devraient utiliser le format XML, car il n'y a pas de données binaires spécifiques.
 +
 
 +
Notez que le fichier XML ne contient pas vos fichiers media. Le format de sortie <code>.gpkg</code> contient vos données XML et vos fichiers media, avec le désavantage d'être très grand. Si vous avez déjà un schéma de sauvegarde pour vos fichiers media, alors il n'y a pas besoin de sauvegarder au format <code>.gpkg</code>.
 +
 
 +
=== ACI pas ACID, version supérieure, version inférieure ===
 +
Gramps protège vos données avec une base de données ACI. Ce qui signifie que le dernier enregistrement peut être perdu avec une erreur, mais pas plus que 1 enregistrement. Vous devez faire une sauvegarde avant une mise à niveau supérieure et être certain(e) que Gramps a bien fermé votre arbre familial.
 +
 
 +
Il ne devrait pas y avoir d'erreur à l'ouverture d'un arbre familial avec une nouvelle version. Voir la longue recherche dans ce rapport [http://www.gramps-project.org/bugs/view.php?id=3975], qui indique que la version 4.7.25 de Bsddb contient un bogue produisant un étrange message d'erreur.
 +
 
 +
L'ouverture d'un arbre familial après un passage à une version inférieure de Bsddb n'est pas supportée. Vous obtiendrez une erreur indiquant que la base de données a été créée avec une version plus récente.
 +
 
 +
=== Utilitaires en ligne de commande Oracle Berkeley DB ===
 +
Utilisez "<code>db_recover -cv</code>" pour plus de détails.
 +
 
 +
'dbdump' copie la base de données au format texte, utilisé par 'dbload' :
 +
 
 +
<code>db_dump database.db > dump.txt</code>
 +
 
 +
<code>db_load database.db < dump.txt</code>
 +
 
 +
Votre numéro de séquence log est désynchronisé vous avez besoin de le récréer :
 +
 
 +
<code>db_load -r lsn database.db < dump.txt</code>
 +
 
 +
Voir [https://gramps-project.org/bugs/view.php?id=9559#c48620][https://docs.oracle.com/cd/E17076_02/html/api_reference/C/utilities.html]
 +
 
 +
==GRDB Corruption (2.2.x)==
 +
===Pourquoi cette corruption?===
 +
De loin, la principale cause d'une corruption du fichier grdb est le déplacement de ce dernier de son emplacement original. Que vous déplaciez le fichier vers un autre répertoire, le renommer, le copier, que vous le transférez vers une autre machine, ou un autre compte utilisateur -- toutes ces actions vont "corrompre" votre fichier.
 +
 
 +
Ce qui arrive c'est que le fichier grdb a besoin de son environnement de base de données -- un répertoire avec ses fichiers log, fichiers verrous, fichiers temporaires, etc. Les dernières versions stables conservent l'environnement pour chaque fichier, suivant un arbre hierarchique du répertoire <code>~/.gramps/env</code>. Si votre fichier grdb est sous <code>/home/utilisateur/généalogie/MesDonnées.grdb</code> alors son environnement est dans le répertoire <code>/home/utilisateur/.gramps/env/home/utilisateur/généalogie/MesDonnées.grdb</code>.
 +
 
 +
Ainsi, le déplacement, la copie ou le renommage du fichier copiera ses bytes, mais pas son environnement. C'est pourquoi le fichier déplacé apparaît comme corrompu.
 +
 
 +
===Que dois je faire maintenant ?===
 +
La réponse dépend de la présence ou non de l'environment de votre base de données. Si vous avez simplement copié un fichier vers un autre alors l'environnement devrait toujours fonctionner. Si vous avez modifié votre base de données depuis, alors l'environnement original a changé, il n'y a pas de bon environnement pour votre nouvelle base. Si vous avez déplacé votre répertoire <code>.gramps</code> (pourquoi oh pourquoi ?) alors les environnements seront perdus. Agissez ainsi en fonction de la situation, comme il est expliqué ci-dessous.
 +
 
 +
====L'environnement existe toujours====
 +
Si vous avez un répertoire d'environment pour votre fichier, copiez le suivant ces étapes.
 +
;Exemple: Vous avez copié <code>/home/utilisateur/généalogie/MesDonnées.grdb</code> vers <code>/home/utilisateur/généalogie/sauvegarde/SauvegardeDonnées.grdb</code> et le nouveau fichier ne fonctionne plus.
 +
;Solution: Copier le répertoire <code>/home/utilisateur/.gramps/env/home/utilisateur/généalogie/MesDonnées.grdb</code> dans <code>/home/utilisateur/.gramps/env/home/utilisateur/généalogie/sauvegarde/SauvegardeDonnées.grdb</code> et ceci devrait solutionner le problème.
 +
 
 +
====L'environnement est perdu====
 +
Si vous n'avez plus l'environnement original pour ce fichier, vous devriez essayer de mettre en mémoire et charger vos données en utilisant les outils Berkeley DB. Selon votre système, ils peuvent être appelés <code>db_dump</code> et <code>db_load</code>, <code>db48_dump</code> et <code>db48_load</code>, <code>db4.8_dump</code> et <code>db4.8_load</code>, ou quelque chose comme cela. Peut importe leur nom, il devrait y avoir un outil dump et un outil de chargement et ils devraient être de la version 4 ou supérieur.
 +
 
 +
Simplement, vous mettez le fichier grdb en mémoire via un fichier texte, puis créez un nouveau fichier grdb à partir de ce fichier texte :
 +
    $ db4.8_dump SauvegardeDonnées.grdb > fichier.txt
 +
    $ db4.8_load nouveaufichier.grdb < fichier.txt
 +
et espérez que gramps ouvrira <code>nouveaufichier.grdb</code>.
 +
 
 +
Si vous obtenez l'error:
 +
 
 +
db4.7_dump: eidtrans: unsupported hash version: 9
 +
 
 +
ceci indique que vous avez besoin d'une version plus récente. Utilisez ''db4.8 tools'':
 +
    $ db4.8_dump BackupData.grdb > fichier.txt
 +
    $ db4.8_load newfile.grdb < fichier.txt
 +
 
 +
Notez: si vous descendez le niveau de votre distribution, alors il sera peut être nécessaire de faire un dump avec les outils 4.8, et de charger avec les outils 4.6 ou 4.7.
 +
 
 +
===Comment prévenir ce type de corruption ?===
 +
Bien que déplacer le fichier reste la principale cause de corruption, il semble que d'autres actions moins fréquentes sont également responsables mais pas encore découvertes. Ainsi prévenir d'une corruption n'est pas toujours possible.
 +
 
 +
Ce qui est possible est de sauvegarder régulièrement ses données. Ces [[How_to_make_a_backup/fr|sauvegardes]] devraient être au format XML (le format <code>.gramps</code>). XML est lisible par la machine- et l'humain. C'est un fichier qui se suffit à lui-même. Il est également léger. Voici les bons moyens pour ces [[How_to_make_a_backup/fr|sauvegardes]] :
 +
# Exporter vers XML de temps en temps, surtout après beaucoup d'éditions.
 +
# Exporter vers XML avant de faire de grands changements, comme importer de nouvelles données dans une base existante par exemple : GEDCOM; fusionner des enregistrements; utiliser les outils qui peuvent modifier grandement vos données.
 +
# Exporter vers XML avant d'utiliser une nouvelle version de gramps. Exporter vers XML avec votre ancienne version avant d'installer la nouvelle !
 +
# Exporter vers XML avant de mettre à niveau votre OS.
 +
 
 +
Aussi, utiliser le format XML pour n'importe quelle migration de données. Déplacer vers une autre machine, envoyer vos données à votre grand-mère, copier vers un autre utilisateur sur la même machine -- dans tous ces cas, vous devriez utiliser XML.
 +
 
 +
[[Category:Fr:Comment je...]]

Latest revision as of 16:42, 22 December 2019

Une tentative pour expliquer une corruption de l'arbre familial et de GRDB, comment récupérer sa base, et comment l'éviter dans le futur.

Corruption de l'arbre familial

Qu'est ce qui cause cette corruption?

On ne sait pas vraiment. La corruption d'une base de données avec des arbres familiaux est beaucoup moins courante qu'avec le précédent format de stockage des arbres familiaux, utilisé pour la version 2.2.x.

Comment être informé de cette corruption ?

Gramps peut vous informer au démarrage qu'une récupération de la base de données est nécessaire via une boîte de dialogue:

GRAMPS a détecté un problème relatif à la base de données Berkeley.
Ceci peut être résolu depuis le gestionnaire d'arbre familial.
Sélectionnez la base de données et cliquez sur le bouton Réparer.

Mais il est possible qu'aucun bouton Réparer ne soit présent, ou que vous obteniez une erreur (visible dans le terminal)

(-30975, 'DB_RUNRECOVERY: Fatal error, run database recovery -- PANIC: Invalid argument').

Que dois-je faire, maintenant ?

Il est recommandé de ne pas cliquer sur le bouton réparer tout de suite. Ceci devrait fonctionner, mais GRAMPS pourrait croire à une erreur alors qu'il n'y en a pas. Réparer votre arbre va alors conduire à une perte de vos derniers changements.

Au lieu de cela, faites une sauvegarde de votre arbre familial rencontrant des problèmes. Dans un terminal:

gramps -l 

Vous obtiendrez une liste de vos arbres familiaux ainsi que des répertoires de stockage, normalement quelque part dans le répertoire ~/.gramps/grampsdb. Cherchez dans votre répertoire utilisateur. Copiez le répertoire de votre arbre à problèmes pour avoir une sauvegarde :

cp -a <répertoire cible> <répertoire de sauvegarde>

Si le bouton réparer était présent sur l'arbre familial GRAMPS, cliquez dessus. Tout devrait de nouveau fonctionner. Si vous notez que vous avez perdu des informations, ou que le bouton réparer ne fonctionne pas, alors suivez les instructions suivantes.

Si la sauvegarde a fonctionné, mais vous n'aimez pas le résultat, sauvegardez ces données et placez votre précédente sauvegarde dans sa position originelle. Vous avez ainsi de nouveau l'arbre familial corrompu. Puis, obtenez les outils de récupération bsddb, voir le paquet selon votre distribution. Le programme est appelé db4.8_recover, où 4.8 peut être un numéro de version différent. Regardez votre version BSDDB dans la fenêtre Aide -> À propos ou avec la commande gramps -v.

Lancez l'outil comme suit :

cd /home/<user>/.gramps/grampsdb/<répertoire cible>
db4.8_recover -c

Cela devrait faire le travail, et permettre à Gramps de charger l'arbre familial. Dans le cas contraire, ouvrez un rapport sur le traqueur de bugs.

Windows OS

  1. Téléchargez les outils d'Oracle sur: http://www.oracle.com/technetwork/products/berkeleydb/downloads/index-082944.html
  2. ...À_COMPLÉTER...

J'ai des fichiers de sauvegarde gbkp

Si vous avez une sauvegarde, alors vous pouvez essayer de récupérer les fichiers .gbkp. La procédure pour récupérer vos données depuis les fichiers .gbkp est la suivante :

  1. Notez le nom de l'"Arbre familial" que vous souhaitez récupérer, depuis le "Gestionnaire d'arbres".
  2. Fermez le programme Gramps.
  3. Localisez votre Répertoire local d'après votre configuration et système.
  4. Localisez le répertoire grampsdb de votre répertoire local
  5. Dans le répertoire grampsdb sont stockés toutes vos bases de données "Arbre" dans des répertoires spécifiques (par ex. si vous avez 10 arbres familiaux, alors vous avez 10 répertoires créés automatiquement avec un numéro lié à un système de numérotation), localisez la base de données que vous êtes en train d'essayer de récupérer en ouvrant le fichier name.txt dans un éditeur de texte et retrouvez le nom qui correspond à l'arbre familial que vous souhaitez récupérer. Si cela correspond, alors notez le nom du répertoire.
  6. Si le répertoire contient les fichiers .gbkp, alors vous pouvez continuer.
  7. Copiez tous les fichiers .gbkp vers un nouveau répertoire qui doit être créé dans le répertoire grampsdb, par ex. donnez un nom unique a1111
  8. Depuis le répertoire de l'arbre familial originel, copiez le fichier name.txt vers le nouveau répertoire que vous avez créé.
  9. Dans le nouveau répertoire, ouvrez le fichier name.txt dans un éditeur de texte et changez le contenu en un nom unique. par ex. Tentative de sauvetage arbre familial 1
  10. Dans le nouveau répertoire, créez un fichier avec pour nom need_recover . pensez bien au tiret. Le contenu du fichier n'est pas important. (Si vous êtes sous Microsoft Windows et vous avez des difficultés pour créer ce fichier, lisez 8665#c44245 pour une possible alternative)
  11. Démarrez le programme Gramps.
  12. Sélectionnez l'arbre familial avec le nom défini à l'étape 9 (Ne cliquez pas deux fois sur le nom de l'arbre familial). Il devrait y avoir un signe "stop" rouge à côté du nom de votre arbre familial.
  13. Sélectionnez le bouton Réparer et le dialogue Réparer l'arbre familial ? va apparaître, à ce moment cliquez sur le bouton Procéder, j'ai fait une sauvegarde ou vous pouvez sélectionner Quitter pour annuler la réparation.
  14. Le programme Gramps va essayer de réparer et récupérer l'arbre familial et si l'action est un succès alors le signe stop rouge va disparaître.
  15. Depuis le gestionnaire d'arbre familial sélectionnez l'arbre familial réparé et vous pourrez ouvrir cette Base de donnée chargée.
  16. Depuis le menu Sélection Arbres familiaux > Faire une sauvegarde.. et créez une sauvegarde pour plus de sécurité.

Implémenter plus de sécurité

Vos données généalogiques contiennent beaucoup de travail et de nombreuses heures de saisies. Ainsi établissez un schéma de sauvegarde

Si vous travaillez régulièrement avec GRAMPS : sauvegardez le répertoire contenant les bases de données Arbre Familial. En général, ce sont des gros fichiers.

Si vous savez que vous travaillez sporadiquement avec GRAMPS, ou vous n'avez pas de place pour une sauvegarde régulière des vos arbres, alors faites une sauvegarde au format XML (l'extension .gramps). Ne pas oublier de désactiver les filtres sur la vie privée... Le format XML a fait ses preuves depuis des années sur d'autres ordinateurs et d'autres systèmes d'exploitation. Ceci n'est probablement pas le cas pour les données stockées dans l'arbre familial. XML est lisible par les machines et les humains. Il est complètement auto-suffisant. Il est également petit. Suivez les étapes suivantes pour vos sauvegardes :

  1. Exportez au format XML (.gramps) de temps en temps, surtout après de longues éditions.
  2. Exportez au format XML avant de faire de grands changements, tel qu'une importation de nouvelles données dans une base de données existante, une fusion des enregistrements, l'utilisation d'outils pouvant durablement modifier vos données, etc.
  3. Exportez au format XML avant de mettre à niveau GRAMPS vers une nouvelle version. Mais exportez au format XML sous votre ancienne version avant d'installer la nouvelle !
  4. Exportez au format XML avant de mettre à niveau votre OS.

Par ailleurs, utilisez le format XML pour chaque migration de données. Changement de machine, envoi de données à votre grand-mère, copier pour un autre utilisateur sur la même machine -- tous ces cas devraient utiliser le format XML, car il n'y a pas de données binaires spécifiques.

Notez que le fichier XML ne contient pas vos fichiers media. Le format de sortie .gpkg contient vos données XML et vos fichiers media, avec le désavantage d'être très grand. Si vous avez déjà un schéma de sauvegarde pour vos fichiers media, alors il n'y a pas besoin de sauvegarder au format .gpkg.

ACI pas ACID, version supérieure, version inférieure

Gramps protège vos données avec une base de données ACI. Ce qui signifie que le dernier enregistrement peut être perdu avec une erreur, mais pas plus que 1 enregistrement. Vous devez faire une sauvegarde avant une mise à niveau supérieure et être certain(e) que Gramps a bien fermé votre arbre familial.

Il ne devrait pas y avoir d'erreur à l'ouverture d'un arbre familial avec une nouvelle version. Voir la longue recherche dans ce rapport [1], qui indique que la version 4.7.25 de Bsddb contient un bogue produisant un étrange message d'erreur.

L'ouverture d'un arbre familial après un passage à une version inférieure de Bsddb n'est pas supportée. Vous obtiendrez une erreur indiquant que la base de données a été créée avec une version plus récente.

Utilitaires en ligne de commande Oracle Berkeley DB

Utilisez "db_recover -cv" pour plus de détails.

'dbdump' copie la base de données au format texte, utilisé par 'dbload' :

db_dump database.db > dump.txt

db_load database.db < dump.txt

Votre numéro de séquence log est désynchronisé vous avez besoin de le récréer :

db_load -r lsn database.db < dump.txt

Voir [2][3]

GRDB Corruption (2.2.x)

Pourquoi cette corruption?

De loin, la principale cause d'une corruption du fichier grdb est le déplacement de ce dernier de son emplacement original. Que vous déplaciez le fichier vers un autre répertoire, le renommer, le copier, que vous le transférez vers une autre machine, ou un autre compte utilisateur -- toutes ces actions vont "corrompre" votre fichier.

Ce qui arrive c'est que le fichier grdb a besoin de son environnement de base de données -- un répertoire avec ses fichiers log, fichiers verrous, fichiers temporaires, etc. Les dernières versions stables conservent l'environnement pour chaque fichier, suivant un arbre hierarchique du répertoire ~/.gramps/env. Si votre fichier grdb est sous /home/utilisateur/généalogie/MesDonnées.grdb alors son environnement est dans le répertoire /home/utilisateur/.gramps/env/home/utilisateur/généalogie/MesDonnées.grdb.

Ainsi, le déplacement, la copie ou le renommage du fichier copiera ses bytes, mais pas son environnement. C'est pourquoi le fichier déplacé apparaît comme corrompu.

Que dois je faire maintenant ?

La réponse dépend de la présence ou non de l'environment de votre base de données. Si vous avez simplement copié un fichier vers un autre alors l'environnement devrait toujours fonctionner. Si vous avez modifié votre base de données depuis, alors l'environnement original a changé, il n'y a pas de bon environnement pour votre nouvelle base. Si vous avez déplacé votre répertoire .gramps (pourquoi oh pourquoi ?) alors les environnements seront perdus. Agissez ainsi en fonction de la situation, comme il est expliqué ci-dessous.

L'environnement existe toujours

Si vous avez un répertoire d'environment pour votre fichier, copiez le suivant ces étapes.

Exemple
Vous avez copié /home/utilisateur/généalogie/MesDonnées.grdb vers /home/utilisateur/généalogie/sauvegarde/SauvegardeDonnées.grdb et le nouveau fichier ne fonctionne plus.
Solution
Copier le répertoire /home/utilisateur/.gramps/env/home/utilisateur/généalogie/MesDonnées.grdb dans /home/utilisateur/.gramps/env/home/utilisateur/généalogie/sauvegarde/SauvegardeDonnées.grdb et ceci devrait solutionner le problème.

L'environnement est perdu

Si vous n'avez plus l'environnement original pour ce fichier, vous devriez essayer de mettre en mémoire et charger vos données en utilisant les outils Berkeley DB. Selon votre système, ils peuvent être appelés db_dump et db_load, db48_dump et db48_load, db4.8_dump et db4.8_load, ou quelque chose comme cela. Peut importe leur nom, il devrait y avoir un outil dump et un outil de chargement et ils devraient être de la version 4 ou supérieur.

Simplement, vous mettez le fichier grdb en mémoire via un fichier texte, puis créez un nouveau fichier grdb à partir de ce fichier texte :

   $ db4.8_dump SauvegardeDonnées.grdb > fichier.txt
   $ db4.8_load nouveaufichier.grdb < fichier.txt

et espérez que gramps ouvrira nouveaufichier.grdb.

Si vous obtenez l'error:

db4.7_dump: eidtrans: unsupported hash version: 9

ceci indique que vous avez besoin d'une version plus récente. Utilisez db4.8 tools:

   $ db4.8_dump BackupData.grdb > fichier.txt
   $ db4.8_load newfile.grdb < fichier.txt

Notez: si vous descendez le niveau de votre distribution, alors il sera peut être nécessaire de faire un dump avec les outils 4.8, et de charger avec les outils 4.6 ou 4.7.

Comment prévenir ce type de corruption ?

Bien que déplacer le fichier reste la principale cause de corruption, il semble que d'autres actions moins fréquentes sont également responsables mais pas encore découvertes. Ainsi prévenir d'une corruption n'est pas toujours possible.

Ce qui est possible est de sauvegarder régulièrement ses données. Ces sauvegardes devraient être au format XML (le format .gramps). XML est lisible par la machine- et l'humain. C'est un fichier qui se suffit à lui-même. Il est également léger. Voici les bons moyens pour ces sauvegardes :

  1. Exporter vers XML de temps en temps, surtout après beaucoup d'éditions.
  2. Exporter vers XML avant de faire de grands changements, comme importer de nouvelles données dans une base existante par exemple : GEDCOM; fusionner des enregistrements; utiliser les outils qui peuvent modifier grandement vos données.
  3. Exporter vers XML avant d'utiliser une nouvelle version de gramps. Exporter vers XML avec votre ancienne version avant d'installer la nouvelle !
  4. Exporter vers XML avant de mettre à niveau votre OS.

Aussi, utiliser le format XML pour n'importe quelle migration de données. Déplacer vers une autre machine, envoyer vos données à votre grand-mère, copier vers un autre utilisateur sur la même machine -- dans tous ces cas, vous devriez utiliser XML.