Spec-Zone.ru › MySQL 5.7

7.5.1 Восстановление данных в определённый момент времени с использованием двоичного журнала

В этом разделе объясняется общий принцип использования двоичного журнала для выполнения восстановления данных в определённый момент времени. Следующий раздел, раздел 7.5.2, «Восстановление данных в определённый момент времени с использованием позиций событий», подробно объясняет работу на примере.

Примечание

Во многих примерах в этом и следующем разделе используется клиент mysql для обработки вывода двоичного журнала, созданного инструментом mysqlbinlog. Если ваш двоичный журнал содержит \0 (null) символы, этот вывод не может быть проанализирован клиентом mysql, если не вызвать его с опцией --binary-mode.

Источником информации для восстановления данных в определённый момент времени является набор двоичных журналов, созданных после операции полного резервного копирования. Поэтому, чтобы позволить серверу восстановиться в определённый момент времени, ведение двоичного журнала на нём должно быть включено (см. раздел 5.4.4, «Двоичный журнал» для получения подробностей).

Для восстановления данных из двоичного журнала необходимо знать имя и расположение текущих двоичных журналов. По умолчанию сервер создаёт двоичные журналы в каталоге данных, но путь можно указать с помощью опции --log-bin, чтобы разместить файлы в другом месте. Чтобы увидеть список всех двоичных журналов, используйте это утверждение:

mysql> SHOW BINARY LOGS;

Чтобы определить имя текущего двоичного журнала, выполните следующее утверждение:

mysql> SHOW MASTER STATUS;

Утилита mysqlbinlog преобразует события в двоичных журналах из двоичного формата в текстовый, чтобы их можно было просмотреть или применить. Утилита mysqlbinlog имеет параметры для выбора разделов двоичного журнала на основе времени события или позиции событий в журнале. См. раздел 4.6.7, «mysqlbinlog — Утилита для обработки двоичных журналов».

Применение событий из двоичного журнала приводит к повторному выполнению представляемых ими изменений данных. Это позволяет восстановить изменения данных за заданный промежуток времени. Для применения событий из двоичного журнала обработайте вывод mysqlbinlog с помощью клиента mysql:

$> mysqlbinlog binlog_files | mysql -u root -p

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

$> mysqlbinlog binlog_files | more

В качестве альтернативы, сохраните вывод в файл и просмотрите его в текстовом редакторе:

$> mysqlbinlog binlog_files > tmpfile
$> ... edit tmpfile ...

После редактирования файла, примените содержимое следующим образом:

$> mysql -u root -p < tmpfile

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

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

Другой подход заключается в записи всего журнала в один файл, а затем обработке файла:

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

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/point-in-time-recovery-binlog.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API