如何实现 mysql/galera 集群的自动故障转移

如何实现 mysql/galera 集群的自动故障转移

我有两个 mysql/galera 集群,每个集群有三个节点(两个 + garb 节点)。

集群位于单独的 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 - 在两个节点上向“replicant”用户添加授权

> 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;

相关内容