MyDumper — Быстрый и надежный инструмент для резервного копирования MySQL

10 Jun, 2026
3,177
🔱 500
👥 81

Почему стандартные инструменты не всегда подходят?

Каждый, кто работал с большими базами данных MySQL, знает, как мучительно долго может идти процесс резервного копирования. Стандартный mysqldump, хоть и проверен временем, часто становится узким местом в инфраструктуре, особенно когда речь идет о терабайтах данных. Именно здесь на помощь приходит MyDumper — специализированный инструмент, который делает процесс резервного копирования и восстановления в разы быстрее.

Что такое MyDumper?

MyDumper — это пара инструментов с открытым исходным кодом:

  • mydumper — для создания резервных копий
  • myloader — для их восстановления

Главное преимущество? Многопоточность. В то время как стандартные инструменты работают в один поток, MyDumper задействует все доступные ресурсы процессора, что особенно заметно на современных серверах.

Три причины попробовать MyDumper

  1. Скорость Благодаря параллельной обработке, резервное копирование выполняется в несколько раз быстрее. На практике это означает, что там, где mysqldump тратит часы, MyDumper справляется за минуты.

  2. Гибкость

    Реклама
    • Можно включать/исключать базы и таблицы по регулярным выражениям
    • Резервные копии сохраняются в удобной структуре файлов
    • Поддержка сжатия на лету через внешние утилиты
  3. Надежность MyDumper обеспечивает консистентность данных даже при работе с большими объемами, используя механизм транзакционных снимков MySQL.

Как это работает технически?

Под капотом MyDumper использует следующий алгоритм:

  1. Блокирует таблицы глобальной блокировкой чтения
  2. Собирает метаданные (позиции бинарного лога и т.д.)
  3. Создает транзакционные снимки во всех рабочих потоках
  4. Освобождает блокировки и начинает параллельную выгрузку данных

Интересная деталь: для старых версий MySQL (до 4.1.8) инструмент создает временную InnoDB таблицу, чтобы обеспечить консистентность.

Практические сценарии использования

Миграция баз данных

mydumper --host=source_db --outputdir=/backups --compress
myloader --host=target_db --directory=/backups

Частичное резервное копирование

mydumper --regex '^(important_db|critical_schema)' --outputdir=/partial_backup

Интеграция в CI/CD

docker run --rm -v $(pwd):/backups mydumper/mydumper \
  --host=$DB_HOST --user=ci_user --outputdir=/backups

Особенности конфигурации

MyDumper поддерживает файлы настроек в формате INI, где можно задать параметры как для самого процесса выгрузки, так и для сессии MySQL:

[mydumper]
host = db-prod-01
user = backup_user
rows = 50000

[mydumper_session_variables]
wait_timeout = 600

Важно: для флагов без значений (например, --no-data) в конфигурационном файле нужно указать любое значение, иначе они будут проигнорированы.

Когда стоит выбирать MyDumper?

Проект особенно полезен:

  • Администраторам баз данных, работающим с крупными инсталляциями MySQL
  • Командам, которым критична скорость резервного копирования
  • При миграциях между разными версиями MySQL/MariaDB/Percona

Если вы до сих пор мучаетесь с медленными бэкапами — самое время попробовать MyDumper. Проект активно развивается сообществом и уже заслужил доверие тысяч разработчиков по всему миру.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.