Comment restaurer à partir d'une commande drop database en utilisant un journal binaire mysql?

StackOverflow https://stackoverflow.com/questions/88800

  •  01-07-2019
  •  | 
  •  

Question

Comment puis-je restaurer une base de données mysql qui a été supprimée à l'aide de la base de données "drop database"? commander? J'ai accès à des journaux binaires qui devraient rendre ce type de restauration possible.

Était-ce utile?

La solution

Documentation Sucks. Cela fait allusion au fait que DROP DATABASE soit récupérable, mais seulement dans des conditions étranges. Je ne suis pas familier avec http://dev.mysql.com/doc/refman/5.0/en/binary-log.html

Selon Docs, les binlogs sont simplement une séquence de commandes exécutées en fonction d’un point de référence donné. Ainsi, lorsque vous avez utilisé "DROP DATABASE", au lieu d'aller "Oh, il est en train de supprimer la base de données, nous devrions sauvegarder maintenant, au cas où" il s'est contenté d'écrire "DROP DATABASE". jusqu'au dernier binlog. La récupération n’est pas aussi simple que de lire la bande à l’arrière.

Ce que vous devez faire, c'est récupérer la base de données à partir d'un dernier bien connu et appliquer les journaux de travaux remplis qui se sont produits entre ce point de récupération et la commande DROP.

http://dev.mysql.com/ doc / refman / 5.0 / fr / recovery-from-backups.html

Comment déterminer les journaux de travaux à utiliser, ce qui n’est pas clair.

Il n'y a rien de mieux que d'avoir des sauvegardes complètes du système de fichiers. Et vous devriez au moins pouvoir vous y replier.

Autres conseils

Si vous ne possédez pas de sauvegarde de la base de données, vous n’avez pas de chance. Supprimer une base de données est permanent.

En supposant que vous disposiez d’une sauvegarde, le journal binaire contient les événements survenus depuis cette sauvegarde. En utilisant l'utilitaire mysqlbinlog, vous pouvez faire quelque chose comme:

mysqlbinlog the_log_file > update.sql

Bien que je pense que vous deviez peut-être modifier ce fichier pour supprimer tout ce que vous ne voudriez pas exécuter à nouveau (comme l'instruction drop database).

Bonne chance!

Aucune sauvegarde, aucune partie.

Je vais donc répondre:

Pour ne plus jamais être dans votre situation, installez automysqlbackup ultra simple et ultra puissant (si vous êtes sur Linux):

sudo apt-get install automysqlbackup

configurez-le:

sudo nano / etc / default / automysqlbackup

Téléchargez ensuite son contenu automatiquement dans Dropbox, Ubuntu One ou similaire.

Seulement alors vivre heureux:)

Pour compléter la réponse de Kent Fredric, vous pouvez annuler la commande drop database si vous utilisez la journalisation binaire depuis la création de la base de données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top