Восстановление отдельных таблиц и разделов с помощью Mariabackup
При использовании Mariabackup вам не обязательно восстанавливать каждую таблицу и/или раздел, которые были резервными копиями. Даже если вы начинаете с полной резервной копии, вполне возможно восстановить только определенные таблицы и/или разделы из резервной копии, при условии, что таблица или раздел находятся в InnoDB файловом пространстве таблиц на уровне таблицы. На этой странице описано, как восстановить отдельные таблицы и разделы.
Подготовка резервной копии
Прежде чем вы сможете восстановить резервную копию, вам сначала нужно подготовить её, чтобы сделать файлы данных согласованными. Вы можете сделать это с помощью опции команды --prepare.
Возможность восстановления отдельных таблиц и разделов зависит от транспортабельных табличных пространств InnoDB. Для того, чтобы MariaDB импортировала такие табличные пространства, InnoDB ищет файл с расширением .cfg. Для создания этих файлов Mariabackup также необходимо добавить опцию --export во время этапа подготовки.
Например, вы можете выполнить следующую команду:
$ mariabackup --prepare --export \ --target-dir=/var/mariadb/backup/ \ --user=mariabackup --password=mypassword
Если эта операция завершится без ошибок, резервная копия готова к восстановлению.
До MariaDB 10.2.9, Mariabackup не поддерживала опцию --export. Об этом см. MDEV-13466. В более ранних версиях MariaDB это означало, что Mariabackup не могла создать файлы .cfg для InnoDB файловых пространств таблиц на уровне таблицы на этапе --prepare. Вы по-прежнему можете импортировать табличные пространства на уровне таблиц без файлов .cfg во многих случаях, поэтому в этих версиях всё ещё возможно восстановить частичные резервные копии или восстановить отдельные таблицы и разделы только с помощью файлов .ibd. Если у вас есть полная резервная копия и вам нужно создать файлы .cfg для InnoDB файловых пространств таблиц на уровне таблицы, вы можете сделать это, подготовив резервную копию как обычно, без опции --export, а затем восстановив резервную копию и запустив сервер. В этот момент вы можете использовать встроенные возможности сервера для копирования транспортабельных табличных пространств.
Восстановление резервной копии
Процесс восстановления отдельных таблиц и/или разделов отличается от процесса восстановления полных резервных копий.
Вместо использования --copy-back или --move-back, каждый отдельный файл InnoDB файлового пространства таблиц на уровне таблицы должен быть вручную импортирован на целевой сервер. Процесс восстановления резервной копии будет зависеть от того, участвует ли в этом разделение.
Восстановление отдельных неразделенных таблиц
Чтобы восстановить отдельные неразделенные таблицы из резервной копии, найдите файлы .ibd и .cfg для таблицы в резервной копии, а затем импортируйте их, используя процесс Импорта транспортабельных табличных пространств для неразделенных таблиц.
Восстановление отдельных разделов и разделённых таблиц
Чтобы восстановить отдельные разделы или разделённые таблицы из резервной копии, найдите файлы .ibd и .cfg для раздела(ов) в резервной копии, а затем импортируйте их, используя процесс Импорта транспортабельных табличных пространств для разделённых таблиц.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/restoring-individual-tables-and-partitions-with-mariabackup/