Fully recover MaxDB database following data corruption – Restauration complète d’une base MaxDB suite à une corruption de données

Fully recover MaxDB database following data corruption

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.