Eu tenho dois clusters mysql / galera de três nós cada (dois + nó garb).
Os clusters estão em DCs separados (dc1 e dc2)
A replicação do cluster cruzado ocorre entre node1-dc1 e node1-dc2
Eu quero saber como fazer failover automaticamente no caso de o node1-dc1 descer para o node2-dc1.
Acho que outra pergunta é: o failover automático é uma boa ideia se eu puder fazer o script? Quaisquer outras recomendações e melhores práticas também são bem-vindas.
É assim que a replicação é configurada entre node1-dc1 e node1-dc2
1 - Em cada nó, adicione as seguintes linhas ao arquivo /etc/my.cnf e reinicie o serviço 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 - Adicionar concessão ao usuário 'replicante' em ambos os nós
> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO replicant@'%' IDENTIFIED BY 'password';
3 - Inicie a replicação em ambos os nós, configure MASTER_HOST para o endereço IP do outro nó
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;