Работали ли вы с мультимастер-репликацией в MariaDB?

«Работали ли вы с мультимастер-репликацией в MariaDB?» — вопрос из категории Базы данных, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

  • Развертывание кластера из 3+ нод для обеспечения отказоустойчивости.
  • Настройка синхронной репликации через wsrep_provider, где транзакция фиксируется только после применения на всех узлах.
  • Конфигурация параметров для минимизации конфликтов при параллельной записи и управления потоком репликации.

Пример базовой конфигурации для ноды в /etc/mysql/mariadb.conf.d/galera.cnf:

[galera]
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://node1_ip,node2_ip,node3_ip"
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2

Ключевые моменты из практики:

  • Для стабильной работы кворума действительно требуется минимум три ноды.
  • Сетевые задержки напрямую влияют на общую производительность записи.
  • Некоторые операции, такие как LOCK TABLES и определенные DDL-запросы, требуют особой осторожности или не поддерживаются.