Как восстановить команду удаления базы данных с помощью двоичного журнала MySQL?

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

  •  01-07-2019
  •  | 
  •  

Вопрос

Как я могу восстановить базу данных 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 команда, если вы используете двоичное ведение журнала с момента создания базы данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top