Назад | Перейти на главную страницу

Как лучше всего сделать резервную копию живой базы данных mysql для таблиц MyIsam

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

Я просмотрел много сообщений на этом сайте. Я думаю, что нет, если мы не отключим сайт в случае MyIsam. Для InnoDB мы можем использовать --single-transaction.

До сих пор использую mysqldump. А вот для живых форумов восстановление может быть рискованным. Кажется, что mysqldump блокирует таблицы, но по одной, что может повредить таблицы базы данных.

Мне интересно, что может быть лучшим способом сделать с помощью одной команды!

Один из вариантов - настроить репликацию и выполнить mysqldump на подчиненном сервере с помощью --lock-tables. Альтернативный вариант - остановить подчиненный сервер на время резервного копирования, скопировать / заархивировать данные, а затем перезапустить mysql. Таким образом вы избегаете процедуры mysqldump / restore, которая требует много времени для больших наборов данных.

Одно из предложений - использовать файловую систему ZFS для хранения ваших баз данных, а затем сделать снимок файловой системы. Подход хорошо масштабируется, дает согласованные снимки и не блокирует файловую систему на какой-либо значительный период времени (менее секунды?).

Если ваши серверы находятся в облаке Amazon, вы можете рассмотреть сценарий ec2-consisten-snapshot. Он хорошо работает с файловыми системами XFS и по сути очищает базу данных, замораживает файловую систему, делает снимок и размораживает файловую систему. Хотя процедура, возможно, не полностью применима к вашей установке, она все же может быть актуальной.

Оба вышеперечисленных работают на уровне файловой системы, а не через mySQL.