У меня есть два кластера mysql / galera по три узла каждый (два + garb node).
Кластеры находятся в отдельных DC (dc1 и dc2)
Кросс-кластерная репликация происходит между node1-dc1 и node1-dc2.
Я хочу знать, как автоматически переключаться при отказе в случае, если node1-dc1 переходит в node2-dc1.
Думаю, еще один вопрос: является ли автоматическое переключение при отказе хорошей идеей, если я могу его написать? Также приветствуются любые другие рекомендации и передовой опыт.
Так настраивается репликация между node1-dc1 и node1-dc2
1 - На каждом узле добавьте следующие строки в файл /etc/my.cnf и перезапустите службу mysql.
# vi /etc/my.cnf
server-id=101 # 102 for the remote galera node
log-slave-updates=1
log-bin=mysql-bin
gtid_mode=ON
enforce-gtid-consistency=1
2 - Добавить грант пользователю-репликанту на обоих узлах
> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO replicant@'%' IDENTIFIED BY 'password';
3 - Запустите репликацию на обоих узлах, установите MASTER_HOST на IP-адрес другого узла
mysql> STOP SLAVE;
mysql> CHANGE MASTER TO MASTER_HOST = '172.1.1.55', MASTER_PORT = 3306, MASTER_USER = 'replicant', MASTER_PASSWORD = 'password', MASTER_AUTO_POSITION = 1;
mysql> START SLAVE;