Как восстановить базу данных MySQL на определенный момент времени - PullRequest
0 голосов
/ 07 июня 2019

База данных MySQL используется для целей тестирования, поэтому я хочу запустить бэкэнд-тесты API для этого (несколько транзакций), имитируя реальную базу данных в рабочем состоянии.

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

У меня нет ограничений на версию MySQL, потому что это будет новый сервер баз данных.

Какой самый эффективный способ восстановить эту базу данных?

Ответы [ 2 ]

1 голос
/ 07 июня 2019

Я бы использовал Percona XtraBackup для создания физической резервной копии.Это можно восстановить намного быстрее, чем дамп, созданный mysqldump.

Если база данных достаточно велика (более 100 ГБ), даже физическое резервное копирование не будет достаточно быстрым.Я бы использовал снимки LVM файловой системы.См. Например, https://www.lullabot.com/articles/mysql-backups-using-lvm-snapshots.

1 голос
/ 07 июня 2019

У вас есть много вариантов:

  • Создание снимка с помощью инструмента, такого как mysqldump, и восстановление из этого снимка позже для сброса базы данных.
  • Создание томаВыровняйте моментальный снимок в файловой системе, которая поддерживает его, например, ZFS, и восстановите его позже.
  • Создайте виртуальную машину и снимок, который позже восстановит ее в моментальный снимок.Большинство сред виртуальных машин, таких как VirtualBox, поддерживают эту функцию.
  • Используйте контейнер Docker с подключенным томом, который можно снимать и восстанавливать.
...