MySql сделать резервную копию недавно обновленных / вставленных данных - PullRequest
1 голос
/ 20 июня 2020

У меня есть база данных размер 500 Мб , чтобы сделать резервную копию, требуется огромное время, чтобы сделать полный файл дампа, я просто хочу знать, есть ли способ сделать резервные запросы для даты между от и до date-times, чтобы я мог вернуться в определенный интервал времени.

Я знаю, что мы можем сделать резервную копию всей базы данных, используя

`$ > mysqldump -u username -p db_name > path/file.sql`

Заранее спасибо :)

все предложения приняты :)

1 Ответ

0 голосов
/ 20 июня 2020

Вы можете использовать параметр --where для mysqldump, чтобы взять подмножество строк. Например:

mysqldump --where "updated_at > '2020-06-14 00:00:00'" ...other options...

Однако это добавит условие WHERE к каждой сбрасываемой таблице. Таким образом, в каждой таблице должен быть столбец updated_at. MySQL не требует наличия такого столбца, так что это зависит от вас и ваших соглашений о дизайне таблиц.

Другой метод - использовать двоичный журнал. Вы можете выгрузить содержимое двоичного журнала в виде серии операторов SQL, воспроизводящих инкрементные изменения.

mysqlbinlog --start-datetime "2020-06-14 00:00:00" ...other options...

См. https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog.html для получения полной документации по использованию этой команды.

...