1 minute read

Mariabackup Механизм резервирования базы данных MariaDB c полной поддержкой всех функций(сжатие страниц InnoDB, шифрование данных в состоянии покоя). Пакет Mariabackup доступен с версии MariaDB 10.1. Mariabackup, который основан на хорошо известном и широко используемом инструменте резервного копирования Percona XtraBackup. Mariabackup поддерживает полное резервное копирование, инкрементальное и частичное:

  • Полные резервные копии создают полную резервную копию сервера базы данных в пустом каталоге, в то время как добавочные резервные копии обновляют предыдущую резервную копию с учетом любых изменений данных, произошедших с момента резервного копирования.
  • Инкрементное резервное копирование отслеживает изменения страниц из последней полной резервной копии и копирует дельта-страницы.
  • Частичное позволяет вам выбирать, какие базы данных или таблицы для резервного копирования, если задействованная таблица или раздел находятся в табличном пространстве InnoDB «файл на таблицу» (не в ibdata1).

Предположим, что мы делаем резервную копию на server01 и разворачиваем на server02. Максимальный размер БД с которым мне приходилось работать это 5.2ТБ. Для надежного выполнения команд лучше запускать в фоне(screen или tmux), лично для меня tmux более user-friendly.

Выполняем полный бекап c server01 на server02:

mariabackup --user=root --password=******** --parallel=10 --backup --compress --compress-threads=16 --stream=xbstream ssh root@server02 "mbstream -x -C /var/mysql/.backup"

Подготовка сервера server02:

systmectl mariadb stop
rm -rf /var/lib/mysql/* 
rm -rf /tmp/mysql/*
rm -rf /var/log/mysql/*

Выполняем декомпрессию server02:

mariabackup --user=root --password=******** --parallel=16 --decompress --remove-original --target-dir=/var/mysql/.backup

Провека и подготовка бекапа server02:

mariabackup --prepare --user=root --password=******** --target-dir=/var/mysql/.backup

Восстанавливаем бекап server02:

mariabackup --move-back --force-non-empty-directories --user=root password=********  --target-dir=/var/mysql/.backup

Восстанавливаем права и стартуем сервер server02:

chmod 755 /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
chown -R mysql:mysql /var/log/mysql
chown -R mysql:mysql /tmp/mysql
find /var/lib/mysql -type d -exec chmod 750 {} \;
systemctl start mariadb

Tags:

Categories:

Updated: