Полное резервное копирование и восстановление с помощью Mariabackup
При использовании Mariabackup у вас есть возможность выполнить полное или инкрементное резервное копирование. Полное резервное копирование создает полную резервную копию сервера базы данных в пустом каталоге, в то время как инкрементное резервное копирование обновляет предыдущее резервное копирование тем изменениями в данных, которые произошли с момента резервного копирования. Эта страница описывает, как выполнить полное резервное копирование.
Создание резервной копии сервера базы данных
Для создания резервной копии базы данных вам необходимо запустить Mariabackup с опцией --backup для указания на выполнение резервного копирования и с опцией --target-dir для указания места размещения файлов резервной копии. При выполнении полного резервного копирования целевой каталог должен быть пустым или не должен существовать.
Для создания резервной копии выполните следующую команду:
$ mariabackup --backup \ --target-dir=/var/mariadb/backup/ \ --user=mariabackup --password=mypassword
Время, необходимое для создания резервной копии, зависит от размера баз данных или таблиц, которые вы резервируете. Вы можете отменить резервное копирование, если это необходимо, так как процесс резервного копирования не изменяет базу данных.
Mariabackup записывает файлы резервной копии в целевой каталог. Если целевой каталог не существует, он создается. Если целевой каталог существует и содержит файлы, генерируется ошибка и процесс прерывается.
Вот пример каталога резервной копии:
$ ls /var/mariadb/backup/ aria_log.0000001 mysql xtrabackup_checkpoints aria_log_control performance_schema xtrabackup_info backup-my.cnf test xtrabackup_logfile ibdata1 xtrabackup_binlog_info
Подготовка резервной копии к восстановлению
Файлы данных, создаваемые Mariabackup в целевом каталоге, не гарантируют согласованность во времени, так как файлы данных копируются в разное время во время операции резервного копирования. Если вы попытаетесь восстановить эти файлы, InnoDB обнаружит несоответствия и завершит работу, чтобы защитить вас от повреждений.
Прежде чем восстановить резервную копию, необходимо подготовить её для согласованности данных. Вы можете сделать это с помощью опции --prepare.
$ mariabackup --prepare \ --target-dir=/var/mariadb/backup/
Восстановление резервной копии
После завершения резервного копирования и подготовки резервной копии к восстановлению (предыдущий шаг) вы можете восстановить резервную копию, используя либо опцию --copy-back , либо опцию --move-back. Опция --copy-back позволяет сохранить исходные файлы резервной копии. Опция --move-back фактически перемещает файлы резервной копии в datadir, поэтому исходные файлы резервной копии теряются.
- Сначала остановите процесс сервера MariaDB.
- Затем убедитесь, что
datadirпуст.
- Затем запустите Mariabackup с одной из указанных выше опций:
$ mariabackup --copy-back \ --target-dir=/var/mariadb/backup/
- Затем, возможно, потребуется исправить разрешения файлов.
Когда Mariabackup восстанавливает базу данных, он сохраняет права доступа к файлам и каталогам из резервной копии. Однако он записывает файлы на диск от имени пользователя и группы, выполняющих восстановление базы данных. Поэтому после восстановления резервной копии вам может потребоваться скорректировать владельца каталога данных, чтобы он соответствовал пользователю и группе сервера MariaDB, обычно mysql для обоих. Например, чтобы рекурсивно изменить владельца файлов на пользователя и группу mysql, можно выполнить:
$ chown -R mysql:mysql /var/lib/mysql/
- Наконец, запустите процесс сервера MariaDB.
Восстановление с помощью других инструментов
После подготовки полного резервного копирования, это является полностью функциональным каталогом данных MariaDB. Поэтому, пока процесс сервера MariaDB остановлен на целевом сервере, вы можете технически восстановить резервную копию, используя любой инструмент для копирования файлов, такой как cp или rysnc. Например, вы также можете выполнить следующее для восстановления резервной копии:
$ rsync -avrP /var/mariadb/backup /var/lib/mysql/ $ chown -R mysql:mysql /var/lib/mysql/ $ rm /var/lib/mysql/ib_logfile*
При использовании Mariabackup из версий до MariaDB 10.2.10, вам также необходимо удалить любые существующие файлы журнала переписывания InnoDB. Например:
$ rm /var/lib/mysql/ib_logfile*
См. Внутренние детали Mariabackup: файлы журнала переписывания для получения дополнительной информации.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/full-backup-and-restore-with-mariabackup/