Nl:Het herstellen van een corrupt gegevensbestand

From Gramps
(Redirected from Recover corrupted grdb/nl)
Gnome-important.png Opmerking over speciale auteursrechten: Alle aanpassingen aan deze pagina vallen onder twee verschillende auteursrechtlicenties:

Deze licenties geven het Gramps-project de maximale vrijheid om het wikihandboek als vrije inhoud voor toekomstige Gramps versies te gebruiken. Indien u niet akkoord gaat met deze dubbele licentie, pas dan de inhoud van deze pagina niet aan. U mag slechts middels externe links (gebruik: [http://www.gramps-project.org/...]) naar andere wikipagina's verwijzen die enkel onder de GFDL licentie vallen, en niet via interne links.
Gebruik daarnaast enkel de bekende conventies.


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 familiestamboombeheerder.
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 familiestamboom 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. Zie ook naar uw gebruikersmap. 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. Indien het herstel werkte maar u niet tevreden bent met het resultaat, kunt u opnieuw een kopie maken van deze gegevens en de reservekopie terug op zijn oorspronkelijke plaats zetten. Zo hebt u opnieuw de corrupte stamboom waar u verder mee kunt werken. Vervolgens kunt u naar de 'bsddb' herstelgereedschappen zoeken. Hiervoor kunt u best de normale pakketbeheerder van uw distributie gebruiken. Het programma is db4.x_recover, waar 4.x een versienummer is. Dit kan hoger of lager zijn. Voor Fedora 17 is dit 'db4-utils-4.8.30-10.fc17'. U kunt nakijken welke BSDDB-version u hebt door naar Hulp -> Over dialoo te kijken of met het commando gramps -v.

U gebruikt dit gereedschap als volgt:

cd /home/<gebruiker>/.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.

Windows OS

  1. download Oracle tools on: http://www.oracle.com/technetwork/products/berkeleydb/downloads/index-082944.html
  2. ...TO_COMPLETE...

Ik heb nog reserve gpkg-bestanden

Indien u nog een reservekopie hebt, kunt u deze 'gpkg-bestanden' proberen te herstellen op deze manier: De procedure om uw gegevens te herstellen via een gbkg-bestand gaat als volgt:

  1. Kopieer het gpkg-bestand naar een nieuwe map, bijvoorbeeld a1111
  2. Kopieer name.txt, open het in een nieuwe map en sla de inhoud op met een unieke naam.
  3. Maak een bestand aan met de naam need_recover. Let op de met 'underscore' en zonder bestandsextensie. De inhoud van dit bestand is onbelangrijk.
  4. Start Gramps, klik op een familiestamboom met de naam die u gebruikte in stap 2. Er zou een rood stopteken bij dit bestand moeten staan. Klik op de Herstellen knop. Het teken zou nu moeten verdwijnen en u zou opnieuw uw familiestamboom moeten kunnen laden.

Meer veiligheid inbouwen

Uw genealogische gegevens is het resultaat van veel werk en manuren. Dus kunt u best een herstelstrategie uitwerken.

Indien u vaak met Gramps werkt: maak een reservekopie van de map waarin zich de gegevensbestanden met de familiestambomen zich bevinden. Maar dit kunnen zeer grote bestanden zijn.

Werkt u integendeel enkel sporadisch met Gramps of hebt u niet de nodige ruimte om uw gegevensbestanden te kopiëren, gebruikt u best het XML-formaat (het .gramps formaat). Maar u mag niet vergeten eerst mogelijke privacy-filters uit te schakelen. Het XML-formaat kunt u nog over 5 jaar op een andere computer met een ander OS-systeem gebruiken. Waarschijnlijk is dit niet het geval met het formaat waarin de huidige gegevensbestanden zijn in opgeslagen. XML is door de machine en een mens te lezen. En het formaat is ook op zich zelf staand en ook klein. Dit zijn voorbeelden van goede herstelstrategieën:

  1. Exporteer van tijd tot tijd naar XML, zeker na grote veranderingen aan de gegevens.
  2. Exporteer naar XML voor u grote aanpassingen maakt, zoals het importeren van nieuwe gegevens vanuit GEDCOM in een bestaand gegevensbestand of het samenvoegen van gegevens of hulpmiddelen draaien die uw gegevens sterk kunnen veranderen.
  3. Exporteer naar XML voor u naar een nieuwe Gramps-versie overschakelt. Het is belangrijk om uiteraard een XML-export vanuit de oude versie te doen voor u de nieuwe versie installeert!
  4. Exporteer naar XML voor u uw OS opwaardeert. 

Bovendien gebruikt u best het XML-formaat voor elke gegevensmigratie. Dit kan zijn naar een andere computer, gegevens naar uw oma sturen, gegevens kopiëren naar een andere gebruiker op dezelfde computer -- in al deze situaties gebruikt u best XML omdat er geen specifieke binaire gegevens zijn.

Let wel op dat XML geen media-objecten bevat. Het 'gpkg'-formaat daarentegen bevat XML en uw mediabestanden, wat als nadeel heeft de mogelijk zeer grootte omvang. Indien u reeds een goed werkend reservesysteem hebt om uw mediabestanden op te slaan is er eigenlijk geen noodzaak voor de 'gpkg'-bestanden.

ACI niet ACID, upgrade, downgrade

Gramps beschermd uw gegevens door gebruik te maken van een 'ACI'-gegevensbestand. Dit betekent dat de laatste aanpassing kan verloren gaan indien er een fout optreed maar dat de vorige aanpassingen niet verloren zijn. Het is belangrijk voor u een opwaardering van Gramps uitvoert, dat uw familiestamboom correct afgesloten werd.

Normaal gezien zou er ook geen fout mogen optreden indien u uw familiestamboom met een nieuwere versie opent. Zie ook de uitgebreide long research in de Engelstalige 3975, van de versie 4.7.25 van Bsddb die een fout bevatte die aanleiding gaf tot rare foutmeldingen.

Een familiestamboom in een oudere versie openen, wordt niet ondersteund. U zult dan een foutmelding zien waarin vermeld wordt dat het gegevensbestand werd aangemaakt met een nieuwere versie.

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 kopieert 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 boomstructuur.

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, kopieert of herbenoemt zullen de gegevens wel verplaatst worden, maar niet de omgeving. Zo geraken de gegevens corrupt.

Wat moet ik nu doen?

Dat hangt er van af of u nog over de correcte omgeving van het gegevensbestand beschikt. Indien u enkel 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.8_dump en db4.8_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. Hiervoor kunt u best de normale pakketbeheerder van uw distributie gebruiken. Het programma is db4-utils, waar 4.x een versienummer is. Dit kan hoger of lager zijn. Voor Fedora 17 is dit 'db4-utils-4.8.30-10.fc17'

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.6_dump BackupData.grdb > eenbestand.txt
   $ db4.6_load nieuwbestand.grdb < eenbestand.txt

kruis dan uw vingers en hoop dat nieuwbestand.grdb kan geopend worden in Gramps.

Indien u deze fout ziet:

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

is dit een aanwijzing dat u een nieuwere versie dient te gebruiken:

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

Opmerking: Indien u uw distributie 'downgrade' hebt, moet u waarschijnlijk ook een lagere versie van de 4.x hulpmiddelen gebruiken en 4.4 of 4.5 installeren.

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.

Wat doenbaar is: regelmatig een reservekopie maken. De reservekopies moeten in het XML-formaat zijn (het .gramps formaat). Vergeet niet de privacy filters uit te schakelen ... 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. Of indien u gegevens gaat combineren die de oorspronkelijk gegevens sterk zullen wijzigen
  3. Exporteer naar XML voor u de Gramps-versie opwaardeert. Natuurlijk doet u dit met de oude versie voor u de nieuwere versie installeert!
  4. Exporteer naar XML voor u uw OS opwaardeert.

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