Voici le manuel utilisateur officiel de DBRECOVER pour MySQL. Utilisez la table des matières à gauche pour accéder directement à un scénario de récupération précis ; pour une vue d'ensemble de bout en bout, lisez le document de haut en bas.
Présentation
DBRECOVER pour MySQL est un outil de récupération MySQL/InnoDB. Lorsqu'aucune sauvegarde exploitable n'est disponible, il permet de récupérer les données après un crash d'instance, un dictionnaire InnoDB corrompu empêchant le démarrage de la base, un DROP DATABASE, un DROP TABLE, un TRUNCATE TABLE, un DELETE au niveau de la ligne, ainsi qu'après une défaillance disque ou un endommagement du système de fichiers.
Fonctionnalités :
- Interface graphique — aucune ligne de commande requise.
- Prend en charge MySQL 5.1 à 8.0, y compris le nouveau dictionnaire de données de MySQL 8.0.
- Moteur de stockage InnoDB uniquement.
- Récupère les données après DROP DATABASE, DROP TABLE, TRUNCATE TABLE et DELETE au niveau de la ligne.
- Récupère après une défaillance disque ou un endommagement du système de fichiers.
- Lit les fichiers FRM et les convertit en instructions CREATE TABLE.
- Récupère les objets volumineux (LOB / TEXT).
- Génère les résultats sous forme de fichiers SQL au format MYSQLDUMP.
- Basé sur Java ; fonctionne sous Windows, Red Hat, CentOS et Ubuntu.
- Logiciel gratuit : DBRECOVER pour MySQL est libre d'utilisation et ne nécessite aucun achat de licence.






Une fois que DBRECOVER a généré le SQL au format MYSQLDUMP, vous pouvez le réimporter dans MySQL et vérifier le nombre de lignes :
mysql -uroot -p < actor.sql
Enter password: ********
mysql -uroot -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.14 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use employees;
Database changed
mysql> select count(*) from actor;
+----------+
| count(*) |
+----------+
| 200 |
+----------+
1 row in set (0.00 sec)Récupérer après un DROP DATABASE
Reproduisez la panne pour la démonstration :
mysql> drop database employees;
Query OK, 14 rows affected (0.16 sec)
#sync
#sync- Démarrez le logiciel DBRECOVER pour MySQL et sélectionnez le scénario de récupération DROP DATABASE.

- Choisissez la version correcte de la base de données MySQL.

- Choisissez SELECT DIRECTORY (Sélectionner le répertoire) et saisissez le chemin du répertoire
@@datadir, puis cliquez sur Start (Démarrer).

- Le logiciel analyse les fichiers
ibdata1oumysql.ibdainsi que le disque@@datadir.

- Cliquez sur le nœud des bases de données supprimées pour rechercher et récupérer les tables des bases supprimées.

Récupérer après un DROP TABLE et un TRUNCATE TABLE
Les étapes de récupération s'appliquent aussi bien aux scénarios DROP TABLE qu'à TRUNCATE TABLE. Commencez par reproduire la panne :
mysql> select count(*) from employees.employees;
+----------+
| count(*) |
+----------+
| 300024 |
+----------+
1 row in set (0.09 sec)
mysql> select @@datadir;
+-----------+
| @@datadir |
+-----------+
| /m01/ |
+-----------+
1 row in set (0.00 sec)
mysql> drop table employees.employees;
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
mysql> SET FOREIGN_KEY_CHECKS=0;
Query OK, 0 rows affected (0.00 sec)
mysql> drop table employees.employees;
Query OK, 0 rows affected (0.02 sec)
mysql> ^DBye
#sync
#sync
- Démarrez le logiciel et sélectionnez le scénario de récupération DROP TABLE.

- Choisissez la version correcte de la base de données MySQL.

- Sélectionnez SELECT DIRECTORY (Sélectionner le répertoire), saisissez le chemin du répertoire
@@datadir, puis cliquez sur Start (Démarrer).

- Le logiciel analyse
ibdata1oumysql.ibdainsi que le disque sur lequel se trouve@@datadir.
Important : faites pointer DBRECOVER vers le @@datadir d'origine, et non vers une copie réalisée après la panne. DBRECOVER analyse le système de fichiers du point de montage de @@datadir pour retrouver les données supprimées, et un répertoire copié perd ces informations au niveau du système de fichiers.

- Cliquez sur le nœud des tables supprimées sous la base de données correspondante pour vérifier la présence de la table supprimée.

Pour TRUNCATE TABLE, la table reste répertoriée sous le nœud habituel de sa base de données — ouvrez-la dans l'arborescence pour visualiser et exporter les données.
Le contenu de la table apparaît à droite de l'interface ; à partir de là, suivez le flux d'exportation standard.
Récupérer les lignes supprimées par une instruction DELETE
Lorsque des lignes ont été supprimées par un DELETE accidentel, récupérez-les grâce à la fonctionnalité d'undelete de DBRECOVER pour MySQL. Commencez par reproduire la panne :
mysql> use employees;
Database changed
mysql> select count(*) from employees;
+----------+
| count(*) |
+----------+
| 1000 |
+----------+
1 row in set (0.00 sec)
mysql> delete from employees;
mysql> flush table employees with read lock;
Query OK, 0 rows affected (0.01 sec)- Localisez le fichier
.ibdcorrespondant, par exempleemployees.ibdpour la tableemployees. - Démarrez DBRECOVER pour MySQL, sélectionnez Add ibd file (Ajouter un fichier ibd) dans le menu de démarrage, puis ajoutez le fichier ibd.

- Effectuez un clic droit sur le fichier ibd et choisissez Scan (Analyser). Une fois l'analyse terminée, les fichiers de pages correspondants apparaissent.


- Effectuez un clic droit et collez l'instruction
CREATE TABLEde la table (utilisezSHOW CREATE TABLEdans MySQL pour l'obtenir).
mysql> show create table employees;
+-----------+-----------------------------------------------------------------------------------+
| Table | Create Table |
+-----------+-----------------------------------------------------------------------------------+
| employees | CREATE TABLE `employees` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` enum('M','F') NOT NULL,
`hire_date` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-----------+-----------------------------------------------------------------------------------+
1 row in set (0.01 sec)
- Cliquez sur Confirm (Confirmer). La table apparaît à droite ; cliquez sur Deleted Data (Données supprimées) pour visualiser les lignes récupérables.

- Cliquez sur Export to file (Exporter vers un fichier) pour récupérer les données supprimées sous forme d'instructions INSERT au format MYSQLDUMP.

Conversion des fichiers FRM en SQL CREATE TABLE
DBRECOVER pour MySQL peut lire gratuitement les fichiers FRM et les reconvertir en instructions CREATE TABLE — aucune licence n'est requise.

- Sélectionnez Add frm file (Ajouter un fichier frm) dans l'interface principale du logiciel.
- Double-cliquez sur le fichier FRM ajouté (ou effectuez un clic droit pour l'afficher). L'instruction
CREATE TABLEreconstruite apparaît à droite de l'interface, prête à être copiée.

Vérifier le nombre de lignes récupérables sur les tables de données
Cette fonctionnalité indique combien de lignes DBRECOVER peut récupérer dans une table donnée — utile pour estimer l'ampleur de la récupération avant l'export.
Effectuez un clic droit sur la table et sélectionnez Show Table Recoverable Row Count (Afficher le nombre de lignes récupérables de la table).


Pour les cas de récupération non couverts par ce manuel, ou pour une assistance de récupération payante, contactez liu.maclean@gmail.com ou consultez la page produit DBRECOVER pour MySQL.