根据了解,不论是oracle asm+rac,还是存储厂商的相应解决方案(vplex,svc)等,在oracle数据库层面实现双活基本都依赖于oracle rac来实现的,
目前我们的困惑,就是各个厂商包括oracle,在双活数据中心中,必须要有一个第三方站点,存放一个独立的仲裁资源
根据部分厂商建议,在没有条件的情况下,将第三方仲裁资源存放在主生产中心,这样的话,主中心一旦停运,灾备站点也因为获取不到仲裁资源,而为避免脑裂,停止对外服务
那么是不是所谓的双活数据中心,必须要有物理上分开的3个机房,才能够真正的实现?
有些集群软件是支持手工仲裁的,比如rsct,脑裂后可以将仲裁方式修改为人工,然后将某个子集群拉起来。但是有些集群比如gpfs是不支持这种人工仲裁的,它好像就majority一种仲裁方式,不过这也不要紧,依稀记得好像只要子集群里有配置节点,在配置节点里把不要的节点删了,还是可以把集群拉起来。综上,我觉得不一定要有三个机房。ps:交行双活就只有两个机房,然后通过上述方式实现一个中心gg后强行切换到另一个中心的,相比有第三个站点的方式有一个很明显的缺点就是要人工介入而且有几分钟的切换时间,这段时间集群是被挂起的,无法对外提供服务。
为什么需要设置第三方仲裁站点?思维进入误区了,在设计架构时应该尽量避免出现这种情况,因为不可靠
一般说来,只有在创建跨中心的集群的场景时,才会考虑设置第三方仲裁站点,不管是应用层,还是数据库层,或者是所谓的存储双活层。但是想想看,这样设置的益处有多少?带来的风险点增加了多少?(带来的故障场景在8-9种,也太复杂),根本是得不偿失呀。