Резервное копирование MySQL
Это руководство поможет вам выполнить полный резервный копирование базы данных MySQL без остановки системы. Оно было написано и протестировано командой devops Navixy, поэтому вы можете доверять ему как проверенному рабочему решению.
Что необходимо для выполнения полного резервного копирования базы данных MySQL без остановки системы:
Подсоедините дополнительный том на отдельном диске, на который будет выполняться резервное копирование.
Установите дополнительное программное обеспечение - https://www.percona.com/software/mysql-database/percona-xtrabackup
Получите учетные данные существующего пользователя MySQL или создайте пользователя специально для резервного копирования
Все операции должны выполняться от имени пользователя с правами root или с использованием sudo.
Ниже мы подробнее рассмотрим шаги, которые необходимо выполнить.
Создание пользователя
В качестве примера мы создадим пользователя с именем bkpuser с минимальными правами, достаточными для создания полного резервного копирования, и паролем s3cret.
Сначала необходимо войти в консоль MySQL с административными правами, например:
mysql -uroot -pЗатем в консоли MySQL введите команды, специфичные для различных версий MySQL:
MySQL 5.xx
MySQL 8.xx
Том для резервного копирования
Теперь нам нужно рассчитать размер дополнительного тома, на который будет выполняться резервное копирование.
Чтобы определить размер тома, необходимого для резервного копирования базы данных, нужно узнать размер текущей базы данных и умножить его на 1.5.
Если ваша база данных находится в стандартном расположении, заданном при установке сервера MySQL, необходимо выполнить следующую команду с правами root:
Если у вас нестандартное расположение базы данных, укажите путь к базе данных в качестве аргумента команды location, например:
Пример расчёта

На скриншоте видно, что текущий размер базы данных MySQL составляет 181 GB. Следовательно, размер тома для резервного копирования этой базы должен быть не менее 181 * 1.5 = 271.5 GB, округлённого вверх до 272 GB
Расчёт применим к одной копии базы данных. Если вы планируете хранить более одной резервной копии базы, не забудьте умножить результат на количество хранимых копий.
Программное обеспечение для резервного копирования
После подключения нового тома и создания на нём файловой системы необходимо установить программное обеспечение, требуемое для резервного копирования базы данных. Это программное обеспечение называется https://www.percona.com/doc/percona-xtrabackup/LATEST/index.html. Рассмотрите возможность установки его с использованием готовых пакетов установки, доступных в репозиториях Percona XtraBackup.
Установка выполняется через пакет, содержащий утилиту percona-release для конфигурации.
Прежде всего, загрузите этот пакет из репозиториев Percona XtraBackup с помощью следующей команды:
Следующим шагом запустите установку загруженного пакета с помощью утилиты dpkg. Вы должны быть root или использовать sudo для выполнения этой команды:
Теперь настройте репозитории, необходимые для этой цели:
Исключение для Debian 10
На Debian 10 указанный выше шаг возвращает ошибку:

Чтобы исправить эту ошибку, необходимо отредактировать файл /etc/apt/sources.list
Откройте этот файл в любом текстовом редакторе, например:
Добавьте следующую строку в список в начале файла:
Содержимое файла будет выглядеть примерно так:
Сохраните изменения в файле, а затем выполните следующие команды:
Теперь вы готовы установить утилиту резервного копирования. Для этого выполните следующую команду от root или с sudo:
для MySQL версии 5.xx:
для версий MySQL 8.xx, меньших или равных 8.0.29:
На этом процедура установки утилиты Percona XtraBackup завершена.
Создание резервной копии
Теперь вы создадите полный резерв базы данных с помощью Percona XtraBackup.
команда резервного копирования выполняется на том же сервере, где хранится копируемая база данных
в приведённом ниже примере дополнительный том для резервного копирования смонтирован в
/mnt/backupsпапкеиспользуется заранее созданный пользователь
bkpuserс паролемs3cretдля подключения к базе данных
После завершения резервного копирования необходимо подготовить скопированную базу данных к работе. Без этой операции база данных будет нерабочей.
Теперь у вас есть копия базы данных, актуальная на момент её создания, созданная без остановки сервера и без снятия с него нагрузки.
Эта резервная копия может быть использована для восстановления базы данных в случае аварии.
Последнее обновление
Это было полезно?