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

7.5. Момент времени (Инкрементное) Восстановление Используя Двоичный Журнал

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

Восстановление момента времени обращается к восстановлению изменений данных, произведенных начиная с данного момента времени. Как правило, этот тип восстановления выполняется после восстановления полного резервного копирования, которое приносит сервер к его состоянию со времени, которым было сделано резервное копирование. (Полное резервное копирование может быть сделано несколькими способами, такими как перечисленные в Разделе 7.2, "Методы Резервного копирования базы данных".) Восстановление Момента времени тогда осовременивает сервер с приращением со времени полного резервного копирования к более свежему времени.

Восстановление момента времени основано на этих принципах:

Если у Вас есть больше чем один двоичный журнал, чтобы выполниться на сервере MySQL, надежный метод должен обработать их всех использование единственного соединения с сервером. Вот пример, который демонстрирует то, что может быть опасным:

shell> mysqlbinlog binlog.000001 | mysql -u root -p #
        DANGER!!shell> mysqlbinlog binlog.000002 | mysql -u root -p #
        DANGER!!

Обработка двоичного файла регистрирует этот способ использовать различные соединения с проблемами причин сервера, если первый файл журнала содержит a CREATE TEMPORARY TABLE оператор и второй журнал содержат оператор, который использует временную таблицу. Когда первый процесс mysql завершается, сервер отбрасывает временную таблицу. Когда второй процесс mysql пытается использовать таблицу, отчеты сервера "неизвестная таблица."

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

shell> mysqlbinlog binlog.000001 binlog.000002 |
        mysql -u root -p

Другой подход должен записать все журналы в единственный файл и затем обработать файл:

shell> mysqlbinlog binlog.000001 >
        /tmp/statements.sqlshell> mysqlbinlog binlog.000002 >>
        /tmp/statements.sqlshell> mysql -u root -p -e "source
        /tmp/statements.sql"