Как с помощью mysqldump создать согласованную резервную копию базы данных MySQL (InnoDB) и разделить файлы дампа таблицей?
Я знаю, что для создания согласованной резервной копии с помощью mysqldump есть --single-transaction
Я знаю, что для создания отдельных файлов дампа я могу использовать свой язык для циклического просмотра таблиц и вызова отдельных mysqldump
команды. Но каждый дамп таблицы будет из разного момента времени.
Я смотрел на mysqldump
документация чтобы каким-то образом указать момент времени либо по метке времени, либо по координатам двоичного журнала, но я не смог его найти.
Я также просматриваю каждую таблицу и вместо вызова mysqldump я вызываю «выбрать в выходной файл».
Транзакции очень важны для приложения, чтобы иметь согласованное состояние для базы данных. поэтому я думаю, что если вы используете тот же текущий метод (сквозной цикл) или «выбрать в исходный файл», то это правильный метод, я полагаю
Используя выбранный вами язык, вы можете заблокировать все таблицы, а затем выполнить mysqldump в цикле для каждой таблицы; или установите базу данных только для чтения на время резервного копирования. Вы также можете использовать innobackup (www.percona.com), который может поддерживать все согласованно, а затем применять журналы, которые были записаны во время фактического процесса резервного копирования.