我有两个 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;