Команды Mariabackup и BACKUP STAGE
Команды BACKUP STAGE были введены в MariaDB 10.4.1.
Команды BACKUP STAGE — это набор команд, позволяющий создать эффективный инструмент внешнего резервного копирования. Способ использования Mariabackup этих команд зависит от того, используете ли вы версию, поставляемую с MariaDB Community Server, или версию, поставляемую с MariaDB Enterprise Server.
Команды Mariabackup и BACKUP STAGE в MariaDB Community Server
В MariaDB Community Server Mariabackup впервые поддерживает команды BACKUP STAGE в MariaDB 10.4.1.
В MariaDB 10.3 и ранее команды BACKUP STAGE не поддерживаются, поэтому Mariabackup выполняет команду FLUSH TABLES WITH READ LOCK, чтобы заблокировать базу данных. После завершения резервного копирования выполняется команда UNLOCK TABLES, чтобы разблокировать базу данных.
В MariaDB 10.4 и более поздних версиях поддерживаются команды BACKUP STAGE. Однако версия Mariabackup, поставляемая с MariaDB Community Server, пока не использует команды BACKUP STAGE наиболее эффективным способом. Mariabackup просто выполняет следующие команды BACKUP STAGE, чтобы заблокировать базу данных:
BACKUP STAGE START; BACKUP STAGE BLOCK_COMMIT;
После завершения резервного копирования выполняется следующая команда BACKUP STAGE, чтобы разблокировать базу данных:
BACKUP STAGE END;
Если вы хотите использовать версию Mariabackup, которая использует команды BACKUP STAGE наиболее эффективным образом, то ваш лучший вариант — использовать MariaDB Enterprise Backup, поставляемую с MariaDB Enterprise Server.
Задачи, выполняемые перед этапом BACKUP STAGE в MariaDB Community Server
- Копирование некоторых транзакционных таблиц.
-
InnoDB (например,
ibdataNи расширения файлов.ibdи.isl)
-
InnoDB (например,
- Копирование хвоста некоторых журналов транзакций.
- Хвост журнала журнала перегенерации InnoDB (т.е. файлы
ib_logfileN) будет скопирован для таблиц InnoDB.
- Хвост журнала журнала перегенерации InnoDB (т.е. файлы
BACKUP STAGE START в MariaDB Community Server
Mariabackup из MariaDB Community Server в настоящее время не выполняет никаких задач на этапе START.
BACKUP STAGE FLUSH в MariaDB Community Server
Mariabackup из MariaDB Community Server в настоящее время не выполняет никаких задач на этапе FLUSH.
BACKUP STAGE BLOCK_DDL в MariaDB Community Server
Mariabackup из MariaDB Community Server в настоящее время не выполняет никаких задач на этапе BLOCK_DDL.
BACKUP STAGE BLOCK_COMMIT в MariaDB Community Server
Mariabackup из MariaDB Community Server выполняет следующие задачи на этапе BLOCK_COMMIT:
- Копирование других файлов.
- т.е. расширения файлов
.frm,.isl,.TRG,.TRN,.opt,.par
- т.е. расширения файлов
- Копирование некоторых транзакционных таблиц.
-
Aria (т.е.
aria_log_controlи расширения файлов.MADи.MAI)
-
Aria (т.е.
- Копирование не транзакционных таблиц.
- Создание контрольной точки MyRocks с использованием системной переменной
rocksdb_create_checkpoint. - Копирование хвоста некоторых журналов транзакций.
- Хвост журнала журнала перегенерации InnoDB (т.е. файлы
ib_logfileN) будет скопирован для таблиц InnoDB.
- Хвост журнала журнала перегенерации InnoDB (т.е. файлы
- Сохранение позиции журнала бинарных логов в
xtrabackup_binlog_info. - Сохранение информации о состоянии кластера Galera Cluster в
xtrabackup_galera_info.
BACKUP STAGE END в MariaDB Community Server
Mariabackup из MariaDB Community Server выполняет следующие задачи на этапе END:
- Копирование контрольной точки MyRocks в резервную копию.
Команды Mariabackup и BACKUP STAGE в MariaDB Enterprise Server
MariaDB Enterprise Backup впервые поддерживает команды BACKUP STAGE в MariaDB Enterprise Server 10.4.6-1, MariaDB Enterprise Server 10.3.16-1 и MariaDB Enterprise Server 10.2.25-1.
В следующих разделах описывается, как версия MariaDB Enterprise Backup Mariabackup, поставляемая с MariaDB Enterprise Server, использует каждую команду BACKUP STAGE эффективным способом.
BACKUP STAGE START в MariaDB Enterprise Server
Mariabackup из MariaDB Enterprise Server выполняет следующие задачи на этапе START:
- Копирование всех транзакционных таблиц.
- Копирование хвоста всех журналов транзакций.
- Хвост журнала журнала перегенерации InnoDB (т.е. файлы
ib_logfileN) будет скопирован для таблиц InnoDB. - Хвост журнала перегенерации Aria (т.е. файлы
aria_log.N) будет скопирован для таблиц Aria.
- Хвост журнала журнала перегенерации InnoDB (т.е. файлы
BACKUP STAGE FLUSH в MariaDB Enterprise Server
Mariabackup из MariaDB Enterprise Server выполняет следующие задачи на этапе FLUSH:
- Копирование всех не транзакционных таблиц, которые не используются. Этот список используемых таблиц найден с помощью
SHOW OPEN TABLES. - Копирование хвоста всех журналов транзакций.
- Хвост журнала журнала перегенерации InnoDB (т.е. файлы
ib_logfileN) будет скопирован для таблиц InnoDB. - Хвост журнала перегенерации Aria (т.е. файлы
aria_log.N) будет скопирован для таблиц Aria.
- Хвост журнала журнала перегенерации InnoDB (т.е. файлы
BACKUP STAGE BLOCK_DDL в MariaDB Enterprise Server
Mariabackup из MariaDB Enterprise Server выполняет следующие задачи на этапе BLOCK_DDL:
- Скопировать другие файлы.
- например, расширения файлов
.frm,.isl,.TRG,.TRN,.opt,.par
- например, расширения файлов
- Скопировать не транзакционные таблицы, которые использовались во время
BACKUP STAGE FLUSH. - Проверить
ddl.logна предмет DDL, выполненных до стадииBLOCK DDL.- Имена файлов вновь созданных таблиц можно прочитать из
ddl.log. - Имена файлов удаленных таблиц также можно прочитать из
ddl.log. - Имена файлов переименованных таблиц также можно прочитать из
ddl.log, поэтому файлы можно переименовать вместо повторного копирования.
- Имена файлов вновь созданных таблиц можно прочитать из
- Скопировать изменения в системные таблицы журнала.
-
mysql.general_log -
mysql.slow_log - Это легко, так как они являются только для добавления.
-
- Скопировать хвост всех журналов транзакций.
- Хвост журнала переопределения InnoDB (например, файлы
ib_logfileN) будет скопирован для таблиц InnoDB. - Хвост журнала переопределения Aria (например, файлы
aria_log.N) будет скопирован для таблиц Aria.
- Хвост журнала переопределения InnoDB (например, файлы
BACKUP STAGE BLOCK_COMMIT в MariaDB Enterprise Server
Mariabackup из MariaDB Enterprise Server выполняет следующие задачи на стадии BLOCK_COMMIT:
- Создать контрольную точку MyRocks с использованием системной переменной
rocksdb_create_checkpoint. - Скопировать изменения в системные таблицы журнала.
-
mysql.general_log -
mysql.slow_log - Это легко, так как они являются только для добавления.
-
- Скопировать изменения в таблицы статистики.
- Скопировать хвост всех журналов транзакций.
- Хвост журнала переопределения InnoDB (например, файлы
ib_logfileN) будет скопирован для таблиц InnoDB. - Хвост журнала переопределения Aria (например, файлы
aria_log.N) будет скопирован для таблиц Aria.
- Хвост журнала переопределения InnoDB (например, файлы
- Сохранить позицию бинарного журнала в
xtrabackup_binlog_info. - Сохранить информацию о состоянии кластера Galera в
xtrabackup_galera_info.
BACKUP STAGE END в MariaDB Enterprise Server
Mariabackup из MariaDB Enterprise Server выполняет следующие задачи на стадии END:
- Скопировать контрольную точку MyRocks в резервную копию.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/mariabackup-and-backup-stage-commands/