Spec-Zone.ru › MariaDB

Руководство по ручному SST для узла кластера Galera с Mariabackup

Иногда полезно выполнить «ручной SST», когда обычные SST Galera неуспешны. Это особенно полезно, когда datadir кластера очень велик, так как в этом случае обычный SST может долго выполняться.

Ручной SST по существу состоит из создания резервной копии донора, загрузки резервной копии на присоединившийся узел и последующего ручного редактирования состояния кластера на узле присоединения. Эта страница покажет, как выполнить этот процесс с помощью Mariabackup.

Процесс

  • Убедитесь, что донор и присоединившийся узел имеют одинаковую версию Mariabackup.
mariabackup --version
  • Создайте директорию резервной копии на доноре.
MYSQL_BACKUP_DIR=/mysql_backup
mkdir $MYSQL_BACKUP_DIR
  • Создайте полную резервную копию узла-донора с mariabackup. Также должен быть предоставлен параметр --galera-info, чтобы резервная копия включала состояние кластера узла.
DB_USER=sstuser
DB_USER_PASS=password
mariabackup --backup  --galera-info \
   --target-dir=$MYSQL_BACKUP_DIR \
   --user=$DB_USER \
   --password=$DB_USER_PASS
  • Проверьте, что процесс 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}
  • Подготовьте резервную копию на узле-присоединении.
mariabackup --prepare \
   --target-dir=$MYSQL_BACKUP_DIR
  • Получите идентификатор версии Galera Cluster с файла 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

Файл содержит значения переменных состояния wsrep_local_state_uuid и wsrep_last_committed.

Значения записаны в следующем формате:

wsrep_local_state_uuid:wsrep_last_committed

Например:

d38587ce-246c-11e5-bcce-6bbd0831cc0f:1352215
  • Создайте файл 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 на узле-присоединении.
mariabackup --copy-back \
   --target-dir=$MYSQL_BACKUP_DIR
  • Убедитесь, что разрешения на datadir правильные на узле-присоединении.
chown -R mysql:mysql $MYSQL_DATADIR/
  • Запустите процесс MariaDB Server на узле-присоединении. Это зависит от вашего менеджера службы.

Например, на системах systemd можно выполнить:

systemctl start mariadb
  • Следите за журналом ошибок MariaDB на узле-присоединении и убедитесь, что узел не должен выполнять обычные SST из-за ручного SST.
tail -f /var/log/mysql/mysqld.log
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проходит предварительной проверки MariaDB. Мнения, информация и мнения, выраженные в этом содержимом, не обязательно отражают позицию MariaDB или любой другой стороны.

© 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-mariabackup/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API