Comment puis-je restaurer à partir d'une goutte de commande de base de données à l'aide d'une base mysql log binaire?
Comment puis-je restaurer une base de données mysql qui a été abandonné à l'aide d'une "baisse de la base de données de la commande"? J'ai accès aux logs binaires qui devrait faire de ce type de restauration.
Selon les Docs, les binlogs sont juste une séquence de commandes est exécuté sur la base d'un point de référence. De sorte que lorsque vous l'avez fait "DROP DATABASE", au lieu d'aller "Oh, hes droppping la base de données, nous devons sauvegarder maintenant juste au cas où" il simplement écrit une "CHUTE de la BASE de données" à la dernière binlog. La récupération n'est pas aussi simple que la lecture de la bande à l'envers.
Ce que vous devez faire est de récupérer la base de données à partir d'une dernière connue-bon, et d'appliquer les binlogs qui s'est passé entre la récupération de point et la commande DROP.
En supposant que vous avais fait une sauvegarde, le log binaire détient les choses qui s'est passé depuis cette sauvegarde. À l'aide de la mysqlbinlog utilitaire que vous pourriez faire quelque chose comme:
mysqlbinlog the_log_file > mise à jour.sql
Mais je pense que vous pourriez avoir à modifier le fichier à supprimer ce que vous ne voulez pas exécuter de nouveau (comme la baisse instruction de base de données).
Bonne chance!
C'est vraiment chouette! Merci beaucoup pour le tuyau.
Juste pour compléter Kent Fredric réponse, vous POUVEZ reprendre le drop database commande si vous utilisez binaire de journalisation depuis la base de données de création.
Ce peut être ajouté comme commentaire n'est pas "répondre" Merci @MySQLRockstar, je sais, mais il faut au moins 50 rep :\
Documentation Suce. Il fait allusion à la CHUTE de BASE de données récupérables, mais seulement dans d'étranges conditions, je ne suis pas familier avec http://dev.mysql.com/doc/refman/5.0/en/binary-log.html
Selon les Docs, les binlogs sont juste une séquence de commandes est exécuté sur la base d'un point de référence. De sorte que lorsque vous l'avez fait "DROP DATABASE", au lieu d'aller "Oh, hes droppping la base de données, nous devons sauvegarder maintenant juste au cas où" il simplement écrit une "CHUTE de la BASE de données" à la dernière binlog. La récupération n'est pas aussi simple que la lecture de la bande à l'envers.
Ce que vous devez faire est de récupérer la base de données à partir d'une dernière connue-bon, et d'appliquer les binlogs qui s'est passé entre la récupération de point et la commande DROP.
http://dev.mysql.com/doc/refman/5.0/en/recovery-from-backups.html
Comment on détermine les binlogs à utiliser tho, incertaine.
Il n'y a rien de mieux que d'avoir plein de système de fichiers de sauvegardes. Et vous devriez au moins avoir ces à tomber en arrière.
OriginalL'auteur Kent Fredric
Si vous n'avez pas une sauvegarde de la base de données, vous êtes hors de la chance. Baisseing est une base de données permanente.
OriginalL'auteur willurd
En supposant que vous avais fait une sauvegarde, le log binaire détient les choses qui s'est passé depuis cette sauvegarde. À l'aide de la mysqlbinlog utilitaire que vous pourriez faire quelque chose comme:
mysqlbinlog the_log_file > mise à jour.sql
Mais je pense que vous pourriez avoir à modifier le fichier à supprimer ce que vous ne voulez pas exécuter de nouveau (comme la baisse instruction de base de données).
Bonne chance!
OriginalL'auteur itsmatt
Aucune sauvegarde d'aucune partie.
Donc je vais répondre:
De ne jamais être dans votre situation à nouveau d'installer les ultra simple et ultra puissant automysqlbackup (si vous êtes sous linux):
sudo apt-get install automysqlbackup
le configurer:
sudo nano /etc/default/automysqlbackup
Puis de télécharger son contenu automatiquement sur dropbox, ubuntu one ou similaire.
Seulement vivre heureux 🙂
OriginalL'auteur Pitto
Juste pour compléter Kent Fredric réponse, vous POUVEZ reprendre le
drop database
commande si vous utilisez binaire de journalisation depuis la base de données de création.Merci @MySQLRockstar, je sais, mais il faut au moins 50 rep :\
OriginalL'auteur melloc