我想我正在尝试做什么可以使用bash脚本来实现,但我绝对可以在这里使用一些帮助! 好的,这是这个场景:
我有一个双主节点的MySQL集群,主Master复制就绪。 现在,有问题的应用程序(SOGo)在这两个节点上运行。 在任何给定的时间点,应用程序的这两个实例都应该读取/写入一个副本,以避免重复input。
因此,如果实例A正在写入其本地数据库,那么B也正在远程写入该数据库。 反之亦然
如果A发生故障,那么我必须replaceB的SOGo实例中的一个configuration指令,使它现在使用它的本地数据库。 一个简单的sed语句和服务重启可以做到这一点。
之后,当A再次回来时,我可以指示A写入B的副本,或要求B停止在本地副本上写入,而是写入A的副本。
那么,为了使这个程序自动化,我最好的办法是什么?
您可以安装心跳包以提供所需的function。 可以configuration心跳,将一个称为虚拟IP(VIP)的IP地址分配给当前活动的机器。 这个IP应该与分配给两个服务器的另外两个IP不同。
所以,你的应用程序可以使用这个VIP来访问数据库。 当一台服务器出现故障时,VIP会自动跳转到另一台服务器。 因此,您的应用程序不需要重新启动和/或configuration为使用不同的IP。 你可能只需要检查连接中断!