我正在尝试配置一个 2 节点 openais / 起搏器集群,并且很难找到信息/教程。
我的目标是在主从复制场景中设置 2 个 MySQL 服务器,我可以从两个服务器读取,但只能写入“主”服务器。
因此,我通过交换辅助 IP 地址并使用 my.cnf 中的“只读”选项重新配置新的从属设备来进行复制和手动故障转移。我现在想用起搏器自动化这个。基本上,我希望主 IP 始终位于我可以写入的服务器上,而从 IP 始终位于另一个服务器上。我希望在主服务器上的 mysql 无法响应时发生故障转移。
这是我到目前为止的配置。有没有人可以检查我的工作(我确定这是不完整的),并给我一些关于我做错了什么的指示?(注意:mysql-master 脚本是 /etc/init.d 下的自定义脚本,用于设置/清除只读选项,并重新启动 mysql)
primitive virtual_master_ip ocf:heartbeat:IPaddr2 \
params ip=192.168.250.xxx.xxx \
op monitor interval=10s
primitive virtual_slave_ip ocf:heartbeat:IPaddr2 \
params ip=192.168.xxx.yyy
primitive mysql_service ocf:heartbeat:mysql
params binary="/usr/bin/mysqld_safe" config="/etc/mysql/my.cnf" \
op minitor interval="60s" timeout="30s" \
meta target-role="Started"
primitive mysql_master_role lsb:mysql-master
group mysql virtual_master_ip mysql_master virtual_slave_ip
colocation ms_ip inf: virtual_master_ip virtual_slave_ip score="-INFINITY"
正如卡米尔所说,了解问题的实质是非常有用的信息。但是,我马上就给您带来了一些问题:
192.168.250.xxx.xxx
op minitor interval="60s" timeout="30s"
lsb:mysql
类,而不是ocf:heartbeat:mysql
; 如果您在这方面遇到问题,可能值得一试。virtual_master_ip
和在同一个组中。那会使心脏起搏器心律失常。virtual_slave_ip
-INF
不过,我什至不确定你是否想做你认为你正在做的事情。我更倾向于设置两个资源
mysql_as_master
和mysql_as_slave
配置文件,并使用 mysql 客户端查询正在运行的服务器,以确保它根据需要以只读或读写方式运行),然后将它们与关联的 IP 地址分组。