Spec-Zone.ru › MariaDB

Настройка реплики с помощью Mariabackup

В репликации исторически использовались термины master и slave, но теперь предпочтительнее использовать primary и replica. Старые термины всё ещё используются в некоторых частях документации и в командах MariaDB, хотя MariaDB 10.5 начала процесс переименования. Процесс документации продолжается. Следите за ходом этой работы в MDEV-18777.

Mariabackup очень упрощает настройку реплики с помощью полной резервной копии. На этой странице описано, как настроить реплику из резервной копии.

Если вы используете MariaDB Galera Cluster, возможно, вам следует обратиться к одной из следующих страниц:

  • Настройка репликации MariaDB между MariaDB Galera Cluster и MariaDB Server
  • Настройка репликации MariaDB между двумя MariaDB Galera Cluster

Резервное копирование базы данных и подготовка

Первый шаг — выполнить и подготовить свежую полную резервную копию сервера базы данных в топологии репликации. Если целевой сервер базы данных — желаемая реплицирующая primary, то при создании полной резервной копии дополнительных параметров добавлять не нужно. Например:

$ mariabackup --backup \
   --target-dir=/var/mariadb/backup/ \
   --user=mariabackup --password=mypassword

Если целевой сервер базы данных является репликой желаемой primary, то необходимо добавить параметр --slave-info, а возможно, и параметр --safe-slave-backup. Например:

$ mariabackup --backup \
   --slave-info --safe-slave-backup \
   --target-dir=/var/mariadb/backup/ \
   --user=mariabackup --password=mypassword

Затем необходимо подготовить резервную копию, как обычно. Например:

$ mariabackup --prepare \
   --target-dir=/var/mariadb/backup/

Копирование резервной копии на новую реплику

После завершения и подготовки резервной копии её можно скопировать на новую реплику. Например:

$ rsync -avP /var/mariadb/backup dbserver2:/var/mariadb/backup

Восстановление резервной копии на новой реплике

На данном этапе резервную копию можно восстановить в каталоге данных, как обычно. Например:

$ mariabackup --copy-back \
   --target-dir=/var/mariadb/backup/

И при необходимости скорректировать права доступа к файлам:

$ chown -R mysql:mysql /var/lib/mysql/

Создание пользователя репликации на сервере primary

Перед тем, как новая реплика начнёт реплицировать данные с primary, необходимо создать учётную запись пользователя на primary, который будет использоваться репликой для подключения, и необходимо предоставить этой учётной записи привилегию REPLICATION SLAVE. Например:

CREATE USER 'repl'@'dbserver2' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.*  TO 'repl'@'dbserver2';

Настройка новой реплики

Перед запуском сервера на новой реплике необходимо её настроить. По меньшей мере, необходимо убедиться, что у неё есть уникальное значение server_id. Также необходимо убедиться, что другие параметры репликации соответствуют требованиям, такие как различные переменные системы GTID, если они применимы в конкретной среде.

После завершения настройки можно запустить процесс MariaDB Server на новой реплике.

Запуск репликации на новой реплике

На данном этапе необходимо получить координаты репликации primary из исходного каталога резервной копии.

Если резервную копию создали на primary, то координаты будут в файле xtrabackup_binlog_info. Если резервную копию создали на другой реплике и при её создании использовали параметр --slave-info, то координаты будут в файле xtrabackup_slave_info.

Mariabackup выводит координаты репликации в двух форматах: координаты GTID и координаты файла и позиции бинарного лога, аналогичные выводу команды SHOW MASTER STATUS. Можно выбрать, какие координаты использовать для настройки репликации.

Например:

mariadb-bin.000096 568 0-1-2

Независимо от используемых координат, необходимо настроить подключение к primary с помощью команды CHANGE MASTER TO, а затем запустить потоки репликации с помощью START SLAVE.

GTID

Если необходимо использовать GTID, то сначала необходимо установить gtid_slave_pos в координаты GTID, полученные из файла xtrabackup_binlog_info или xtrabackup_slave_info в каталоге резервной копии. Например:

$ cat xtrabackup_binlog_info
mariadb-bin.000096 568 0-1-2

Затем нужно установить MASTER_USE_GTID=slave_pos в команде CHANGE MASTER TO. Например:

SET GLOBAL gtid_slave_pos = "0-1-2";
CHANGE MASTER TO 
   MASTER_HOST="dbserver1", 
   MASTER_PORT=3306, 
   MASTER_USER="repl",  
   MASTER_PASSWORD="password", 
   MASTER_USE_GTID=slave_pos;
START SLAVE;

Файл и позиция

Если нужно использовать координаты файла и позиции бинарного лога, то нужно установить MASTER_LOG_FILE и MASTER_LOG_POS в команде CHANGE MASTER TO в соответствии с файлом и позицией, полученными из файла xtrabackup_binlog_info или xtrabackup_slave_info в каталоге резервной копии, в зависимости от того, создавалась ли резервная копия с primary или с реплики primary. Например:

CHANGE MASTER TO 
   MASTER_HOST="dbserver1", 
   MASTER_PORT=3306, 
   MASTER_USER="repl",  
   MASTER_PASSWORD="password", 
   MASTER_LOG_FILE='mariadb-bin.000096',
   MASTER_LOG_POS=568;
START SLAVE;

Проверка статуса новой реплики

Настройка реплики завершена, теперь необходимо проверить её статус с помощью SHOW SLAVE STATUS. Например:

SHOW SLAVE STATUS\G
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержание не проверяется заранее 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/setting-up-a-replica-with-mariabackup/

Spec-Zone.ru

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