本发明涉及数据库技术领域,尤其涉及了一种基于一致性算法的双活系统的实现方式。
背景技术:
在现有的基于块同步的oraclerac的同城双活方案中,实现如下:
1.无需采用第三方机房存放其中一块仲裁磁盘。
2.当其中一个机房断电,另一个机房仍然可以访问到超过一半的仲裁盘,从而保障一边能够正常提供业务。
在上述的实现方法中,只考虑了其中一方机房断电的情况,却没有考虑到两地机房间的块复制网络中断的情况。
在我们已知的oraclerealapplicationcluster双活集群方案中,集群的仲裁策略必须保证两个实例组成的集群中,其中一个实例可用的仲裁盘大于总仲裁盘的1/2,集群就能正常运行。由此条件得知,在背景技术的实现方法中,当仲裁盘的块复制网络中断,就发生了集群的脑裂,此时两个数据中心之间的数据库都能正常运行,被分离成了两个单独的数据库环境,从而导致整个集群的数据不一致。
技术实现要素:
本发明针对现有技术中切换时间较长、效率低的缺点,提供了一种基于一致性算法的双活系统的实现方式。
为了解决上述技术问题,本发明通过下述技术方案得以解决。
一种基于一致性算法的双活系统的实现方式,包括如下步骤:
(1)在第一数据中心部署第一计算服务器、第一存储服务器和第二存储服务器,在第二数据中心部署第二计算服务器、第三存储服务器和第四存储服务器;
(2)将第二存储服务器和第三存储服务器均采用一致性算法程序管理;
(3)在一致性算法程序的配置文件中设置权重值,设置第一数据中心的第二存储服务器权重值为100;第二数据中心的第三存储服务器权重值为50;
(4)当连接第一数据中心和第二数据中心之间的光纤链路发送故障时,双活系统将发生集群脑裂,一致性算法程序根据步骤(3)所配置的权重来决策,权重小的数据中心停止服务。
本发明由于采用了以上技术方案,具有显著的技术效果:本发明通过设置权重值的方式,不仅配置简便,更使得一致性算法的运算简单,权重计算准确精准,从而能在较快的时间内做出决策,解决双活系统的脑裂行为,保障双活系统的数据一致性。
附图说明
图1是本发明一种基于一致性算法的双活系统的实现方式中运行架构图。
具体实施方式
下面结合附图与实施例对本发明作进一步详细描述。
如图1所示,一种基于一致性算法的双活系统的实现方式,包括如下步骤:
(1)在第一数据中心部署第一计算服务器、第一存储服务器和第二存储服务器,在第二数据中心部署第二计算服务器、第三存储服务器和第四存储服务器;
(2)将第二存储服务器和第三存储服务器均采用一致性算法程序管理;
(3)在一致性算法程序的配置文件中设置权重值,设置第一数据中心的第二存储服务器权重值为100;第二数据中心的第三存储服务器权重值为50;
(4)当连接第一数据中心和第二数据中心之间的光纤链路发送故障时,双活系统将发生集群脑裂,一致性算法程序根据步骤(3)所配置的权重来决策,权重小的数据中心停止服务。
本发明通过设置权重值的方式,不仅配置简便,更使得一致性算法的运算简单,权重计算准确精准,从而能在较快的时间内做出决策,解决双活系统的脑裂行为,保障双活系统的数据一致性。
实施例1
(1)同城双活架构中,需要在第一数据中心的第二存储服务器与第二数据中心的第三存储服务器中分别配置,本实施例设置在第一数据中心、第二数据中心。
(2)第二存储服务器配置:在一致性算法管理程序的目录下,将权重为100的值设置在配置文件中,weight=100;
(3)第三存储服务器配置:在一致性算法管理程序的目录下,将权重为50的值设置在配置文件中,weight=50;
(4)正常运行:当连接第一数据中心和第二数据中心之间的光纤链路正常运行,没有发生故障时,一致性算法管理程序不会采取任何决策行为;
(5)决策行为:当连接第一数据中心和第二数据中心之间的光纤链路发生故障时,一致性算法管理程序读取配置文件中设置的权重值来进行决策,权重值大的第二存储服务器继续提供服务,权重值小的第三存储服务器停止服务。
总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。