Руководство по ручному SST узла кластера Galera с Percona XtraBackup
Вместо XtraBackup следует использовать Mariabackup во всех поддерживаемых версиях. См. руководство по ручному SST с Mariabackup.
В MariaDB 10.1 и более поздних версиях, Mariabackup является рекомендуемым методом резервного копирования вместо Percona XtraBackup.
В MariaDB 10.3, Percona XtraBackup не поддерживается. Для получения дополнительной информации см. Обзор Percona XtraBackup: Совместимость с MariaDB.
В MariaDB 10.2 и MariaDB 10.1, Percona XtraBackup поддерживается только частично. Для получения дополнительной информации см. Обзор Percona XtraBackup: Совместимость с MariaDB.
Иногда может быть полезно выполнить «ручной SST», когда стандартные SST Galera прерываются. Это особенно полезно, когда размер кластера datadir очень большой, так как в этом случае стандартный SST может долго выполняться, прежде чем прерваться.
Ручной SST в основном состоит из создания резервной копии донора, загрузки резервной копии на присоединяющийся узел и последующего ручного редактирования состояния кластера на узле присоединения. Эта страница покажет, как выполнить этот процесс с помощью Percona XtraBackup.
Процесс
- Убедитесь, что у донорского и присоединяющегося узлов одинаковая версия XtraBackup.
innobackupex --version
- Создайте директорию для резервной копии на донорском узле.
MYSQL_BACKUP_DIR=/mysql_backup mkdir $MYSQL_BACKUP_DIR
- Создайте полную резервную копию донорского узла с помощью
innobackupex. Также необходимо использовать опцию--galera-info, чтобы резервная копия также содержала состояние кластера узла.
DB_USER=sstuser DB_USER_PASS=password innobackupex --user=$DB_USER --password=$DB_USER_PASS --galera-info --no-timestamp $MYSQL_BACKUP_DIR
- Убедитесь, что процесс MariaDB Server остановлен на узле присоединения. Это зависит от вашего менеджера сервисов.
Например, на системах systemd вы можете выполнить команду:
systemctl status mariadb
- Создайте директорию для резервной копии на узле присоединения.
MYSQL_BACKUP_DIR=/mysql_backup mkdir $MYSQL_BACKUP_DIR
- Скопируйте резервную копию с донорского узла на узел присоединения.
OS_USER=dba
JOINER_HOST=dbserver2.mariadb.com
rsync -av $MYSQL_BACKUP_DIR/* ${OS_USER}@${JOINER_HOST}:${MYSQL_BACKUP_DIR}
- Подготовьте резервную копию на узле присоединения.
innobackupex --apply-log $MYSQL_BACKUP_DIR
- Получите идентификатор версии кластера Galera из файла
grastate.datна донорском узле.
MYSQL_DATADIR=/var/lib/mysql cat $MYSQL_DATADIR/grastate.dat | grep version
Например, очень распространенное значение версии — «2.1».
- Получите состояние кластера узла из файла
--xtrabackup_galera_infoв резервной копии, которая была скопирована на узел присоединения.
cat $MYSQL_BACKUP_DIR/xtrabackup_galera_info
Пример вывода:
d38587ce-246c-11e5-bcce-6bbd0831cc0f:1352215
Этот вывод имеет формат:
uuid:seqno
- Создайте файл
grastate.datв директории резервной копии на узле присоединения. Идентификатор версии Galera Cluster, uuid кластера и seqno из предыдущих шагов будут использованы для заполнения соответствующих полей.
Например, с использованием значений из предыдущих шагов мы можем сделать так:
sudo tee $MYSQL_BACKUP_DIR/grastate.dat <<EOF # GALERA saved state version: 2.1 uuid: d38587ce-246c-11e5-bcce-6bbd0831cc0f seqno: 1352215 safe_to_bootstrap: 0 EOF
- Удалите содержимое существующего файла
datadirна узле присоединения.
MYSQL_DATADIR=/var/lib/mysql rm -Rf $MYSQL_DATADIR/*
- Скопируйте содержимое каталога резервной копии в
datadirна узле присоединения.
cp -R $MYSQL_BACKUP_DIR/* $MYSQL_DATADIR/
- Убедитесь, что права доступа к
datadirкорректны на узле присоединения.
chown -R mysql:mysql $MYSQL_DATADIR/
- Запустите процесс MariaDB Server на узле присоединения. Это зависит от вашего менеджера сервисов.
Например, на системах systemd вы можете выполнить команду:
systemctl start mariadb
- Отслеживайте журнал ошибок MariaDB на узле присоединения и убедитесь, что узлу не требуется выполнить стандартный SST из-за выполнения ручного SST.
tail -f /var/log/mysql/mysqld.log
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/manual-sst-of-galera-cluster-node-with-percona-xtrabackup/