Резервное копирование одной базы данных с помощью mariabackup?

Я работал над восстановлением наших подпрограмм резервного копирования базы данных и изучал mariabackup, так как mysqldump больше не сокращает его, учитывая размер наших схем. У нас есть несколько схем, для которых необходимо выполнить резервное копирование - все они различаются по размеру и частоте резервного копирования (для некоторых требуется резервное копирование в течение шести часов, для других - один день между резервными копиями). Кроме того, наша база данных состоит из двух серверов баз данных, работающих в конфигурации главный-подчиненный.

Для начала я выполнил эту команду для одной из наших схем:

mariabackup --backup --user root --password <pass> --databases db1

Это сгенерировало копию файлов данных схемы 'db1', а также некоторые файлы, используемые самой MariaDB (aria_log, ib_buffer_pool, ib_logfile, ibdata и т. Д.). Это работает отлично - мы можем создавать отдельные резервные копии каждой из наших схем.

Восстановление, кажется, другая история как бы то ни было. После '--prepare' резервного копирования и выполнения команды mariabackup --copy-back он жалуется, что каталог данных должен быть пустым. Если бы я разделил резервные копии, смогу ли я восстановить эти схемы в одной базе данных (точнее, в одном экземпляре MariaDB)? Чтобы быть еще яснее, если я сделал резервные копии схем 'db1', 'db2' и 'db3', я не могу восстановить их все в одном экземпляре базы данных - есть ли что-то, что я не понимая?

1 ответ

Частичное резервное копирование, как и ваше, может быть восстановлено только с помощью --prepare --export. это генерирует некоторые файлы.cfg одни.ibd файлы. "Восстановить" означает "ALTER TABLE .. DISCARD TABLESPACE", "ALTER TABLE IMPORT TABLESPACE" для каждой таблицы в целевой системе. К сожалению, он не на 100% автоматизирован, поскольку для удаления табличного пространства в целевой системе сначала необходимо создать табличное пространство в целевой системе с тем же "CREATE TABLE".

Другие вопросы по тегам