Nl:Het herstellen van een corrupt gegevensbestand

From Gramps
Revision as of 00:43, 26 October 2012 by Erikdr (Talk | contribs)

Jump to: navigation, search

Uitleg over familiestamboom en corrupte GRDB, hoe de gegevens herstellen en hoe dit te voorkomen.

Corrupte familiestamboom

Wat was de oorzaak? =

Niet bekend. Maar een corrupt gegevensbestand is veel onwaarschijnlijker met de recentere versies van Gramps (> 2.2.x).

Hoe stelt u dit vast?

Gramps geeft mogelijk aan bij de opstart dat een herstelling nodig kan zijn via een dialoogscherm:

Gramps stelde een probleem vast in de onderliggende Berkeley database.
Dit kan hersteld worden via de familistamboombeheerder.
Selecteer het gegevensbestand en klik op de herstelknop

Maar soms is er geen Herstel knop aanwezig of u ziet deze foutmelding via een terminal

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

Wat doet u dan?

Aangeraden is om niet direct op de herstelknop te klikken. Het kan zijn dat dit werkt, maar het kan ook zijn dat Gramps denkt dat er een fout is, maar in werkelijkheid er niets aan de hand is. Wanneer u uw familistamboom hersteld, kunnen de laatste aanpassingen verloren gaan.

Neem een kopie van de familiestamboom die de problemen geeft. Open een terminal en doe:

gramps -l 

Dit commando geeft u een lijst van de familiestambomen en de map waar deze bestanden zijn opgeslagen. Normaal is dit een map in de aard van ~/.gramps/grampsdb. Kopieer dan de probleemmap met:

cp -a <doelmap> <kopiemap>

Indien de herstelknop aanwezig was, klikt u op de knop. Alles zou normaal moeten werken. Stelt u vast dat er gegevens verloren zijn gegaan of dat de herstelknop toch niet werkte, dan doet u het volgende. If recovery worked, but you do not like the result, backup this data and place your backup taken above back in its original position. You now have again the bad family tree to work on. Next, obtain the bsddb recovery tools, see your distributions package search page. The program is called db4.6_recover, where 4.6 might be an older or newer version number.

Gebruik dit gereedschap als volgt:

cd /home/<user>/.gramps/grampsdb/<doelmap>
db4.6_recover -c

Dit zou moeten werken en laat Gramps toe om de familiestamboom te laden. Werkt het niet, kunt u best een ticket starten op de gramps bug tracker.

Ik heb nog reserve gpkg-bestanden

If you have a backup, you can try to recover the backup gpkg files. Do the following steps: The procedure to recover your data from gbkp files is:

  1. Copy the gbkp files to a new directory in your database directory, eg directory a1111
  2. Copy name.txt, open it in the new directory and set the content to a unique name.
  3. Create a file with name need_recover. Mind the underscore and the lack of an extension. The content of that file is unimportant.
  4. Start Gramps, click on the family tree with the name you adjusted in step 2. There should be a red stop sign with that filename. Click on the Recover button. The red stop sign should disappear and you should be able to load that family tree.

Meer veiligheid inbouwen

Your genealogy data contains a lot of work and man hours. So work out a backup scheme

If you work on GRAMPS regularly: backup the directory holding the family tree databases. These are very large files however.

If you know you work on GRAMPS sporadically only, or have no space to backup your trees regularly, then do backup in XML format (the .gramps format). Do not forget to disable privacy filters... The XML format will open up just fine over 5 years on another computer with another OS. This will probably not be the case for the databases a family tree is stored in. XML is machine- and human-readable. It is completely self-sufficient. It is also small. The following are good practices of backups:

  1. Export to XML from time to time, especially after large edits.
  2. 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.
  3. Export to XML before upgrading GRAMPS to a newer version. Apparently, export to XML with old version before you install the new one!
  4. 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, as there is no binary specific data.

Note that XML does not contain your media files. The gpkg output format contains XML and your media files, with the disadvantage of this being very large. If you already have a backup scheme for your media files, there is no need to also backup gpkg files.

ACI niet ACID, upgrade, downgrade

Gramps protects your data using an ACI database. This means the last commit can be lost on an error, but not more than that. You should before an upgrade make sure Gramps closed your family tree correctly however.

There should be no error in opening a family tree with a newer version. See the long research in 3975, which does indicate version 4.7.25 of Bsddb contains a bug that can give a strange error message.

Trying to open a family tree after a downgrade is not supported. You will obtain an error that the database is created with a newer version.

Versie 2.2.x: GRDB corruptie

Wat was de oorzaak?

De voornaamste oorzaak is het verplaatsen van een grdb-bestand. Indien u dit bestand verplaatst naar een andere map, de bestandsnaam verandert, het bestand kopiëert naar een ander bestand, het bestand verplaatst naar een andere computer of een andere gebruiker kunnen de gegevens 'corrupt' worden.

Hoe komt dit?

Het grdb-bestand heeft een gegevensbestandsomgeving nodig -- dit is een map met log-bestanden, slot-bestanden, tijdelijke bestanden enz.

De huidige stabiele GRAMPS-versie slaat deze bestandsomgeving op in een ~/.gramps/env boomstruktuur.

Stel dat u het grdb-bestand /home/gebruiker/genealogie/MijnGegevens.grdb noemt, dan is de gegevensbestandsomgeving in de /home/gebruiker/.gramps/env/home/gebruiker/genealogie/MijnGegevens.grdb map te vinden.

Indien u dus het gegevensbestand verplaatst, kopiëert of herbenoemt zullen de gegevens wel verplaatst worden, maar niet de opmgeving. Zo geraken de gegevens corrupt.

Wat moet ik nu doen?

Dat hangt er van af of u nog over de correcte omgeving van het gegegevensbestand beschikt. Indien u enekel een bestand kopieerde, bestaat de oorspronkelijke omgeving waarschijnlijk nog. Indien u echter het gegevensbestand zelf veranderd hebt, is de kans groot dat de omgeving ook veranderd werd. Hebt u echter de volledige .gramps verwijderd, dan is de hele omgeving verloren.

Dus afhankelijk van de situatie moet u onderstaande doen.

De omgeving bestaat nog

Hebt u nog steeds de omgevingsmap voor het bestand:

Voorbeeld
U kopieerde /home/user/genealogie/MijnGegevens.grdb naar /home/user/genealogie/backup/BackupData.grdb en het nieuwe bestand werkt niet.
Oplossing
Kopieer de /home/user/.gramps/env/home/user/genealogie/MijnGegevens.grdb map naar /home/user/.gramps/env/home/user/genealogie/backup/BackupData.grdb en het probleem zou verholpen moeten zijn.

De omgeving is verloren

Hebt u de originele omgeving van het bestand niet meer kan u proberen de Berkeley DB gereedschappen te gebruiken. Dit is echter afhankelijk van uw computersysteem. Deze gereedschappen worden gestart met onder andere db_dump en db_load, db41_dump en db41_load, db4.4_dump en db4.4_load. Er zijn nog mogelijkheden, maar er moet steeds een dump en een load gereedschap zijn en de versie van de gereedschappen moet 4 of hoger zijn.

Wat u eigenlijk doet met dump is dat u het gegevensbestand opslaat in een tekstbestand. Van dit tekstbestand wordt dan een nieuwe grdb>/code>bestand aangemaakt:


   $ db4.4_dump BackupData.grdb > eenbestand.txt
   $ db4.4_load nieuwbestand.grdb < eenbestand.txt

kruis dan uw vingers en hoop dat <code>nieuwbestand.grdb kan geopend worden in gramps.

Hoe een corrupt bestand voorkomen?

De hoofdoorzaak is het verplaatsen van het gegevensbestand. Maar er zijn blijkbaar nog een paar andere mogelijke oorzaken, die echter niet zo vaak voorkomen of die we nog niet volledig begrijpen. Daarom is voorkomen beter dan herstellen.

Daarom is het belangrijk om uw gegevens te backuppen. Deze reservekopieen gebeuren in het XML-formaat (het .gramps formaat). Vergeet niet uit te schakelen privacy filters ... XML is leesbaar door mens en machine. Het is bovendien vrij klein en volledig. Doe deze zaken dan ook regelmatig

  1. Exporteer van tijd tot tijd naar XML zeker wanneer u vele aanpassingen deed.
  2. Exporteer naar XML voor u grote wijzigingen aanbrengt, zoals het importeren van nieuwe gegevens vanuit bv. GEDCOM in een bestaand gegevensbestand. Ofindien u gegevens gaat combineren die de oorspronkelijk gegevens sterk zullen wijzigen
  3. Exporteer naar XML voor u de grampsversie opwaardeerd. Natuurlijk doet u dit met de oude versie voor u de nieuwere versie installeerd!
  4. Exporteer naar XML voor u uw OS opwaardeerd.

Gebruik ook het XML-formaat voor gelijk welke gegevensmigratie naar een andere computer, doorsturen van uw gegevens naar uw grootmoeder, kopieren van gegevens naar een andere gebruiker op dezelfde computer.... . In al deze gevallen gebruikt u het XML-formaat.