Восстановление MySQL, включите позицию бинлога MASTER_LOG_POS - PullRequest
0 голосов
/ 10 апреля 2019

Я запускаю дамп базы данных MySQL следующим образом:

mysqldump mydatabase -u root -p --single-transaction --events --routines --quick --master-data=2 --flush-logs --flush-privileges > mydump.sql

Это создает файл дампа, который содержит следующую строку:

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000008', MASTER_LOG_POS=120;

Это говорит мне, что любые новые изменениязапись начинается с mysql-bin.000008

Затем я могу, после загрузки моего файла дампа, загрузить инкрементные файлы, как это (при условии, что mysql-bin.000009 также был создан в некоторый момент):

mysqlbinlog mysql-bin.000008 mysql-bin.000009 | mysql -u root -p mydatabase

Но как насчет MASTER_LOG_POS = 120? Нужно ли включать это и, если да, то как?Моя команда дампа включала --flush-logs, поэтому она должна была запустить новый файл.

Я читаю здесь https://dev.mysql.com/doc/refman/5.7/en/backup-policy.html и здесь https://dev.mysql.com/doc/refman/5.7/en/recovery-from-backups.html

1 Ответ

1 голос
/ 10 апреля 2019

https://dev.mysql.com/doc/refman/5.6/en/mysqlbinlog.html#option_mysqlbinlog_start-position говорит:

- начальная позиция = N, -j N

Начать чтение двоичного журнала с первого события, имеющего позицию, равнуюдо или больше N. Этот параметр применяется к первому файлу журнала, указанному в командной строке.

Этот параметр полезен для восстановления на момент времени.

...