Как восстановить команду удаления базы данных с помощью двоичного журнала MySQL?
Вопрос
Как я могу восстановить базу данных MySQL, которая была удалена с помощью команды «удалить базу данных»?У меня есть доступ к двоичным журналам, которые должны сделать возможным откат такого типа.
Решение
Документация отстой.Это намекает на то, что DROP DATABASE можно восстановить, но только в странных условиях, с которыми я не знаком. http://dev.mysql.com/doc/refman/5.0/en/binary-log.html
Согласно документации, бинлоги — это просто последовательность команд, выполняемых на основе заданной контрольной точки.Таким образом, когда вы выполняли «УДАЛЕНИЕ БАЗЫ ДАННЫХ», вместо того, чтобы сказать «О, он удаляет базу данных, нам следует сделать резервную копию сейчас на всякий случай», он просто записывал «УДАЛИТЬ БАЗУ ДАННЫХ» в последний binlog.Восстановление не так просто, как воспроизведение кассеты задом наперед.
Что вам нужно сделать, так это восстановить базу данных из последней известной исправной базы данных и применить журналы bin, которые произошли между этой точкой восстановления и командой DROP.
http://dev.mysql.com/doc/refman/5.0/en/recovery-from-backups.html
Как определить, какие бинлоги использовать, неясно.
Нет ничего лучше, чем иметь полную резервную копию файловой системы.И у вас, по крайней мере, должно быть это, к чему можно вернуться.
Другие советы
Если у вас нет резервной копии базы данных, вам не повезло. УронитьИспользование базы данных является постоянным.
Предполагая, что у вас есть резервная копия, двоичный журнал хранит все, что произошло после этой резервной копии.Используя утилиту mysqlbinlog, вы можете сделать что-то вроде:
mysqlbinlog the_log_file > update.sql
Хотя я думаю, что вам, возможно, придется отредактировать этот файл, чтобы удалить все, что вы не хотите выполнять снова (например, оператор удаления базы данных).
Удачи!
Нет поддержки, нет вечеринки.
Поэтому я отвечу:
Чтобы никогда больше не оказаться в вашей ситуации, установите сверхпростую и сверхмощную программу automysqlbackup (если вы используете Linux):
sudo apt-get установить automysqlbackup
настроить его:
sudo nano /etc/default/automysqlbackup
Затем автоматически загрузите его содержимое в Dropbox, Ubuntu или аналогичный.
Только тогда живите счастливо :)
Чтобы дополнить ответ Кента Фредрика, вы МОЖЕТЕ откатить drop database
команда, если вы используете двоичное ведение журнала с момента создания базы данных.