Architecture 自动数据库故障切换和恢复

Architecture 自动数据库故障切换和恢复,architecture,failover,redundancy,Architecture,Failover,Redundancy,我们在两个处理器上部署了一个独立的Java应用程序,主要用于在主处理器出现故障时进行故障切换。让我们把它们称为处理器A和B。该体系结构目前有一组进程在A上运行,一个Oracle数据库在A和B上运行,并配置流以保持它们的同步。如果A宕机,则在B上启动进程以接管并使用B上的数据库 然后,当A恢复时,我们希望系统作为一个整体自动恢复到一种状态,即进程在A上运行,数据库移回A为主,B从,以便进行故障切换。我们主要是这样工作的,我们定义了自己的逻辑来停止B上的数据库,基本上擦除A上的数据库并从B恢复它,然

我们在两个处理器上部署了一个独立的Java应用程序,主要用于在主处理器出现故障时进行故障切换。让我们把它们称为处理器A和B。该体系结构目前有一组进程在A上运行,一个Oracle数据库在A和B上运行,并配置流以保持它们的同步。如果A宕机,则在B上启动进程以接管并使用B上的数据库

然后,当A恢复时,我们希望系统作为一个整体自动恢复到一种状态,即进程在A上运行,数据库移回A为主,B从,以便进行故障切换。我们主要是这样工作的,我们定义了自己的逻辑来停止B上的数据库,基本上擦除A上的数据库并从B恢复它,然后重新建立流。然而,尽管这在99%的时间里对我们有效,我们仍然会在这里和那里发现同步错误

在我看来,我们正在重新发明轮子,但我们是吗?我觉得应该有一个标准的数据库集群方法,在这个方法中,数据库节点可以来来去去去,它为我们实现了同步?我是天真的还是已经存在了,什么流行语描述了这种架构?这就是“多主”吗?当一个或另一个主机停机一段时间时,多主机是否自动同步