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

Mysql требует много времени для восстановления резервной копии для тестовой среды. Как это обойти?

На сервере MySQL 5.1 Enterprise db-dump занимает много времени. Я хотел бы сократить время восстановления db-dump или иметь возможность быстро вернуться в известное состояние. Эта машина используется для тестирования. Итак, допустим, у нас есть дамп БД в точке А. Я вношу некоторые изменения в БД с помощью приложения и через некоторое время хочу вернуться к тому же дампу БД. У меня есть следующие варианты.

Есть ли у меня другие варианты. Какой-то способ быстро вернуться в состояние A. Или ускорить мой dbdump. Я постараюсь предоставить вам более подробную информацию, если вы спросите (я не уверен, что мне здесь писать).

Так как 3моло предложил, другой вариант - запустить тестовый сервер как виртуальную машину.

Настройте виртуальную машину тестовой машины с начальными условиями теста, который вы хотите запустить, выполните снимок а затем запустите свои тесты. Если вы хотите вернуться к чистой тестовой настройке, используйте моментальный снимок, чтобы восстановить состояние всей виртуальной машины.

Mysqldump:

Используйте '--single-transaction' с mysqldump.
Если у вас нет большой нагрузки на процессор, используйте gzip.
Дефрагментируйте таблицы с помощью OPTIMIZE TABLE, чтобы освободить место.
Добавьте больше шпинделей.
Удалите ненужные данные.

Другие варианты:

Вы можете использовать моментальные снимки технологии виртуализации.
Некоторые файловые системы поддерживают моментальные снимки.
InnoDB поддержка снимков.

Это похоже на компромисс между пространством и временем. Самое быстрое восстановление, которое вы получите, - это просто удалить существующий каталог и скопировать резервную копию каталога данных в правильное место.

Единственная загвоздка - убедиться, что mysql молчит (либо выключен, либо с глобальной блокировкой чтения), чтобы убедиться, что данные на диске согласованы, прежде чем делать резервную копию каталога данных.

Проверять, выписываться Xtrabackup. Вы не сказали, какие у вас таблицы, но сценарий innobackupex Xtrabackup поддерживает необработанные резервные копии InnoDB (и XtraDB), а также таблиц MyISAM.

Как предположил @opsguy, это небольшой компромисс, поскольку сжатый mysqldump обычно намного меньше, чем необработанная резервная копия, но Xtrabackup также предлагает варианты сжатия, и нет сравнения с точки зрения восстановления необработанной и логической резервной копии.

HTH