Вам понадобится целое из / var / lib / mysql, и вам не понадобится какое-либо время простоя, если: 1) все ваши mysql файлы, включая binlogs и журналы транзакций, в / var / lib / mysql И 2) у вас есть / var / lib / mysql на LVM (или лучше на ZFS)
Убедитесь, что вы работаете с безопасными настройками (flush_logs_at_trx_commit = 1, sync_binlog = 1).
Предполагая, что вы находитесь в ZFS с данными / mysql, смонтированными в / var / lib / mysql (потому что я не могу вспомнить заклинание LVM из мышечной памяти), вы бы сделали что-то вроде this:
$ sudo mysql
mysql> FLUSH TABLES WITH READ LOCK;
mysql> \! sync
mysql> \! zfs snapshot data/mysql@transfer
mysql> UNLOCK TABLES;
Замените строку «zfs snapshot» выше на соответствующую команду LVM snapshot для вашей системы.
Теперь вы можете передавать содержимое этого снимка с помощью tar (или zfs send) over netcat или s sh.
Очистить / var / lib / mysql на цели до восстановления.
Удалить /var/lib/mysql/master.info на цели после восстановление.
Обратите внимание на последнее имя и размер binlog ПЕРЕД тем, как вы запустите mysqld.
Необязательно, но рекомендуется: установите read_only = 1 в my.cnf на целевом сервере.
Теперь запустите mysqld. Выполнить:
CHANGE MASTER TO ... MASTER_LOG_FILE='<name of latest binlog you noted earlier>', MASTER_LOG_POS=<size if binlog you noted above>;
START SLAVE;
Теперь ваш вновь инициализированный ведомый должен быть запущен и реплицирован.