Как я могу восстановить из команды удаления базы данных, используя двоичный журнал mysql? - PullRequest
7 голосов
/ 18 сентября 2008

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

Ответы [ 5 ]

8 голосов
/ 18 сентября 2008

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

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

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

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

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

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

5 голосов
/ 18 сентября 2008

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

mysqlbinlog the_log_file> update.sql

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

Удачи!

5 голосов
/ 18 сентября 2008

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

0 голосов
/ 09 февраля 2015

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

0 голосов
/ 03 октября 2013

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

Итак, я отвечу:

Чтобы больше никогда не оказаться в вашей ситуации, установите ультрапростую и сверхмощную программу automysqlbackup (если вы используете Linux):

sudo apt-get install automysqlbackup

настроить его:

sudo nano / etc / default / automysqlbackup

Затем автоматически загрузите его содержимое в Dropbox, Ubuntu One или аналогичный.

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

...