oracle仲裁磁盘是一块磁盘吗,一种双活系统共享仲裁盘的方法与流程

  • Post author:
  • Post category:其他


本发明涉及数据库领域,尤其涉及了一种双活系统共享仲裁盘的方法。

背景技术:

出于灾备目的,一般都会建设至少两个数据中心,一个数据中心承担用户的业务,另一个数据中心备份数据、配置、业务等。双活数据中心是指两个数据中心同时承担业务且相互备份,以提高两个数据中心的整体服务能力和系统资源利用率。

双活数据中心中的两个数据中心之间每隔设定时间会向对方发送一个心跳包,若在设定时间内未接收到对方的心跳包,则备份中断。此时如果两个数据中心都继续承担业务,就会出现数据不一致的问题。仲裁机制是当前避免出现数据不一致问题的手段之一,其实现方式为:两个数据中心分别向独立于两个数据中心设置的仲裁设备发送仲裁请求,仲裁设备根据仲裁请求确定获胜的数据中心,获胜的数据中心继续提供服务(即承担业务),没有获胜的数据中心停止提供服务。

在基于Oracle RAC数据库的双活集群环境下,Oracle数据库集群的仲裁,基于仲裁磁盘完成,在标准情况下,需要三个仲裁磁盘,Oracle数据库集群需要奇数个仲裁磁盘来防止出现集群脑裂的情况,并且Oracle数据库集群的策略是当可用磁盘少于仲裁磁盘的一半,整个集群就会关闭。

当基于Oracle RAC提供数据中心中的数据库双活方案时,有两种方案,而两种方案都有缺陷:

1、由于仲裁盘为奇数个,可以在两边数据中心一边部署两个仲裁盘,另一边部署一个仲裁盘,但是这样会造成两边数据库并不对等的情况。当数据中心出现故障时仲裁盘多的那边始终会存活,然而当仲裁盘多的数据中心出现故障时,仲裁盘少的那边由于没有获取到大多数仲裁盘也无法存活。

2、另一种方案是基于第三方仲裁盘,这种方