I had to fully recover my MaxDB database due to a data corruption. Hopefully, I had a full backup dating from before the data corruption.
Here is how to recover a MaxDB database from a complete backup.
Suite à une corruption de ma base de donnée MaxDB, j’ai du effectuer une restauration complète. Heureusement, j’avais une sauvegarde complète récente datant de juste avant la corruption.
Voici comment restaurer une base de données MaxDB à partir d’une sauvegarde complète.
First connect to the database (start it if it’s not), and go to ADMIN mode.
ADMIN is a mode dedicated for administration tasks, the database first go OFFLINE and then in ADMIN operational state (kind of Oracle’s “startup restrict” mode).
En premier se connecter à la base de données (la démarrer si elle ne l’est pas déjà) et se mettre en mode ADMIN).
ADMIN est une mode dédié pour les taches d’administration, la base de données passe dans un premier temps OFFLINE, puis dans le mode opérationnel ADMIN (ressemble au mode “startup restrict” d’Oracle)
# cd /Database/MaxDB/Software/programs/bin
# ./dbmcli -d MDB -u DBADMIN,PASSWORD
./dbmcli on MDB>db_start
OK
./dbmcli on MDB>db_connect
OK
---
./dbmcli on MDB>db_admin
OK
---
Then list all backup mediums:
Ensuite lister les mediums de sauvegarde :
./dbmcli on MDB>medium_getall
OK
BACKMAXDB /tmp/pipe PIPE DATA 0 8 NO NO 20080520110904 20080520110904 BACK
BACKUP /tmp/ADA.dat UNKNOWN UNKNOWN 0 8 NO NO 20080521093903 20080521095340 NONE
---
If you don’t have a medium that suit you, create it. I’m creating a medium named RESTORE referencing the backup file I want to use for the recover /tmp/maxdb.dat.
Si vous n’avez pas déjà de medium à votre convenance, créez-le. Dans l’exmple je créé un medium nommé RESTORE qui fait référence au fichier de sauvegarde que je veux utiliser pour la restauration /tmp/maxdb.dat.
./dbmcli on MDB>medium_put RESTORE /tmp/maxdb.dat
OK
Start the recover (specify DATA for we are restoring a complete data backup) :
Démarrer le recover (spécifier DATA car c’est une restauration à partir d’une sauvegarde complète) :
./dbmcli on MDB>recover_start RESTORE DATA
OK
Returncode 0
Date 20080521
Time 00161852
Server myserver1
Database MDB
Kernel Version Kernel 7.6.03 Build 015-123-173-107
Pages Transferred 2664
Pages Left 0
Volumes 1
Medianame BACKUP
Location /tmp/maxdb.dat
Errortext
Label DAT_000000043
Is Consistent true
First LOG Page 625
Last LOG Page
DB Stamp 1 Date 20080521
DB Stamp 1 Time 00095848
DB Stamp 2 Date
DB Stamp 2 Time
Page Count 2643
Devices Used 1
Database ID myserver1:MDB_20080520_151928
Max Used Data Page 0
Converter Page Count 8
---
Wipe out the old logs:
Nettoyer les anciens logs :
./dbmcli on MDB>util_execute clear log
OK
---
And switch to ONLINE state:
Et se mettre en mode ONLINE :
. /dbmcli on MDB>db_online
OK
---
You can restart the database to make sur everything is allright.
Vous pouvez redémarrer la base pour être sur que tout fonctionne correctement.
If you have to recover some operations that occurred between the complete backup and the corruption, you will have to recover from the backup log.
Si vous voulez récupérer certaines opérations qui auraient eu lieu entre la sauvegarde complète et la corruption, il faudra procéder autrement en passant par une restauration à partir des sauvegardes de log.