Как восстановить из команды drop database с помощью двоичного журнала mysql?

Как я могу восстановить базу данных mysql, которая была удалена с помощью команды "drop database"? У меня есть доступ к двоичным журналам, которые должны сделать этот тип отката возможным.

5 ответов


Документация Хреново. Он намекает на то, что база данных может быть восстановлена, но только в нечетных условиях, с которыми я не знакомhttp://dev.mysql.com/doc/refman/5.0/en/binary-log.html

согласно документам, binlog - это просто последовательность команд, выполняемых на основе заданной опорной точки. Так что, когда вы сделали "DROP DATABASE", вместо того, чтобы идти" о, он сбрасывает базу данных, мы должны создать резервную копию сейчас на всякий случай", он просто написал" DROP DATABASE " до последнего binlog. Восстановление не так просто, как воспроизведение ленты назад.

Что вам нужно сделать, это восстановить базу данных из последнего известного товара и применить binlog, которые произошли между этой точкой восстановления и командой DROP.

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

Как определить, какие binlog использовать tho, неясно.

нет ничего лучше, чем иметь полные резервные копии файловой системы. И вы должны на по крайней мере, есть к чему возвращаться.


Если у вас нет резервной копии базы данных, то вам не повезло. Droping база данных является постоянной.


предполагая, что у вас есть резервная копия, двоичный журнал содержит все, что произошло после этой резервной копии. С помощью утилиты mysqlbinlog можно сделать что-то вроде:

mysqlbinlog the_log_file > обновление.в SQL

хотя я думаю, что вам, возможно, придется отредактировать этот файл, чтобы удалить все, что вы не хотели выполнять снова (например, оператор drop database).

удачи!


нет резервного копирования нет партии.

поэтому я отвечу:

чтобы никогда не быть в вашей ситуации снова установить ультра простой и ультра мощный automysqlbackup (если вы на linux):

sudo apt-get установить automysqlbackup

настроить это:

sudo nano/etc/default / automysqlbackup

затем загрузите его содержимое автоматически в dropbox, ubuntu one или аналогичный.

только тогда живите счастливо:)


чтобы дополнить ответ Кента Фредрика, вы можете откатить drop database команда, если вы используете двоичный журнал с момента создания базы данных.