Spec-Zone .ru
спецификации, руководства, описания, API

7.5.1. Восстановление момента времени Используя Времена События

Чтобы указать на запуск и конец света для восстановления, определите --start-datetime и --stop-datetime опции для mysqlbinlog, в DATETIME формат. Как пример, предположите, что точно в 10:00 20 апреля 2005 SQL-оператор выполнялся, который удалил большую таблицу. Чтобы восстановить таблицу и данные, Вы могли восстановить резервное копирование предыдущей ночи, и затем выполнить следующую команду:

shell> mysqlbinlog --stop-datetime="2005-04-20
        9:59:59" \         /var/log/mysql/bin.123456 | mysql -u
        root -p

Эта команда восстанавливает все данные вплоть до даты и время, данное --stop-datetime опция. Если Вы не обнаруживали ошибочный SQL-оператор, который вводился, до несколько часов спустя, Вы будете, вероятно, также хотеть восстановить действие, которое произошло позже. Основанный на этом, Вы могли выполнить mysqlbinlog снова с датой начала и время, как так:

shell> mysqlbinlog --start-datetime="2005-04-20
        10:01:00" \         /var/log/mysql/bin.123456 | mysql -u
        root -p

В этой команде будут повторно выполняться SQL-операторы, зарегистрированные с 10:01 на. Комбинация восстановления файла дампа предыдущей ночи и двух mysqlbinlog команд восстанавливает все вплоть до одной секунды до 10:00 и всего с 10:01 на.

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

shell> mysqlbinlog /var/log/mysql/bin.123456 >
        /tmp/mysql_restore.sql

Затем откройтесь /tmp/mysql_restore.sql файл с текстовым редактором, чтобы исследовать это.

Исключая определенные изменения, определяя времена для mysqlbinlog не работает хорошо если многократные операторы, выполняемые одновременно как тот, который будет исключен.