MySQL tools / tricks / scripts для перемотки изменений БД - PullRequest
1 голос
/ 07 марта 2012

Я пытаюсь ускорить задачу по разработке, над которой я работаю. Я пишу некоторый код, который обращается к базе данных MySQL большого размера (около 5 ГБ) Я хочу проверить свой код по ходу дела. После внесения изменения в код мне нужно его опробовать (что сделает некоторые вставки / обновления / удаления в БД). Для правильной работы потребуется несколько итераций настройки кода. Но после каждой итерации мне нужно восстановить БД до состояния, в котором она была до запуска кода. Полное удаление / восстановление БД после каждого теста занимает очень много времени, что я и делаю сейчас. Итак, я ищу способ упростить процесс перемотки - возможно, путем регистрации изменений БД с достаточным количеством информации, чтобы операторы, которые манипулировали данными (выполнялись в течение примерно 30 секунд), можно было отменить в обратном хронологическом порядке.

Кто-нибудь знает какие-либо инструменты, которые позволят более быстрое, инкрементальное восстановление ? В принципе, есть ли способ воспроизвести журнал запросов в обратном порядке? Или, по крайней мере, сделать различие данных со снимком, чтобы отменить последние изменения?

К вашему сведению, я использую MySQL 5.5.x с InnoDB. Я пишу в Ruby on Rails, но есть и другой не-Ruby-код, поэтому в идеале я бы искал что-то большее, не зависящее от языка, утилиту командной строки, которую я мог бы запустить до и после выполнения теста.

1 Ответ

1 голос
/ 07 марта 2012

Если вы используете файловую систему, такую ​​как btrfs или ZFS, вы можете использовать снимки файловой системы для записи состояния. Если у вас есть специальный раздел для содержимого базы данных, то будет легко остановить mysqld, вернуться к снимку и снова запустить сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...