Spec-Zone.ru › MariaDB

Использование репликации MariaDB с кластером MariaDB Galera

Репликация MariaDB и Кластер MariaDB Galera могут использоваться вместе. Однако есть некоторые моменты, которые необходимо учитывать.

Учебники

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

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

Настройка узла кластера как мастера репликации

Если узел кластера Galera также является мастером репликации, то может потребоваться дополнительная настройка.

Как и в случае с репликацией MariaDB, наборы записей, получаемые узлом с помощью репликации кластера Galera на основе сертификации, по умолчанию не записываются в бинарный журнал.

Если узел является мастером репликации, то его реплицирующие подчиненные узлы будут реплицировать только те транзакции, которые находятся в бинарном журнале, что означает, что транзакции, соответствующие наборам записей кластера Galera, по умолчанию не будут реплицироваться подчиненными узлами. Если вы хотите, чтобы узел записывал свои реплицированные наборы записей в бинарный журнал, вам необходимо установить log_slave_updates=ON. Если у узла есть подчиненные узлы репликации, это также позволит этим подчиненным узлам реплицировать транзакции, соответствующие этим наборам записей.

Дополнительную информацию см. в разделе Настройка MariaDB Galera Cluster: Запись реплицированных наборов записей в бинарный журнал.

Настройка узла кластера как подчиненного узла репликации

Если узел кластера Galera также является подчиненным узлом репликации, то может потребоваться дополнительная настройка.

Если узел является подчиненным узлом репликации, то поток SQL подчиненного узла будет применять транзакции, которые он реплицирует со своего мастера репликации. Примененные потоком SQL подчиненного узла транзакции будут генерировать наборы записей кластера Galera только если у узла установлено log_slave_updates=ON. Следовательно, для репликации этих транзакций в остальные узлы кластера необходимо установить log_slave_updates=ON.

Если узел является подчиненным узлом репликации, то рекомендуется также включить wsrep_restart_slave. При включении этой функции узел будет перезапускать свои потоки подчиненных узлов всякий раз, когда он присоединяется к кластеру.

Фильтры репликации

Как репликация MariaDB, так и кластер MariaDB Galera поддерживают фильтры репликации, поэтому при совместном использовании этих функций необходимо проявлять особую осторожность. Более подробную информацию о том, как кластер MariaDB Galera интерпретирует фильтры репликации, см. в разделе Настройка MariaDB Galera Cluster: Фильтры репликации.

Установка server_id на узлах кластера

Установка одинакового server_id на каждом узле кластера

Чаще всего server_id устанавливается в одинаковое значение на каждом узле данного кластера. Поскольку кластер MariaDB Galera использует виртуальную синхронную репликацию на основе сертификации, все узлы должны иметь одинаковые данные, поэтому в логическом смысле кластер во многих случаях может рассматриваться как один логический сервер для задач, связанных с репликацией MariaDB. Бинарные журналы каждого узла кластера могут даже содержать примерно одинаковые транзакции и GTID, если log_slave_updates=ON установлен, если режим wsrep GTID включен и если никакие транзакции Galera не выполняются ни на одном из узлов.

Установка разных server_id на каждом узле кластера

В некоторых случаях может быть целесообразно установить разные значения server_id на каждом узле данного кластера. Например, если log_slave_updates=OFF установлен, и другой кластер или стандартный сервер MariaDB использует репликацию с несколькими источниками для репликации транзакций с каждого узла кластера индивидуально, то для этого потребуется установить разные значения server_id на каждом узле.

Помните, что если репликация настроена таким образом, что каждый узел кластера имеет разные значения server_id, и если топология репликации настроена таким образом, что узел кластера может реплицировать одни и те же транзакции через Galera и через репликацию MariaDB, то вам может потребоваться настроить узел кластера на игнорирование этих транзакций при настройке репликации MariaDB. Это можно сделать, установив IGNORE_SERVER_IDS для идентификаторов серверов всех узлов в одном кластере при выполнении CHANGE MASTER TO. Например, это может потребоваться при настройке циклической репликации между двумя отдельными кластерами, и каждый узел кластера имеет разные значения server_id, и каждый кластер имеет log_slave_updates=ON.

Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проходит предварительной проверки со стороны 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/using-mariadb-replication-with-mariadb-galera-cluster-using-mariadb-replica/

Spec-Zone.ru

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