两数据库主从同步与切换方法、系统、计算机和存储介质技术方案

技术编号:32540984 阅读:18 留言:0更新日期:2022-03-05 11:37
本申请涉及一种两数据库主从同步与切换方法、系统、计算机和存储介质,该方法包括控制两数据库上的同步程序依据两数据库中主数据库以及备数据库的角色启动;获取主数据库写入数据的指令,以使备数据库上的同步程序从变更流中收到变动内容,同步到备数据库;在备数据库上的同步程序同步解析数据时,配置对解析数据进行过滤或者转化,以适应不同角色下的数据场景;获取两数据库的角色切换指令,以使两数据库上的同步程序根据切换后的角色状态重新工作。通过本申请,可以解决目前MongoDB

【技术实现步骤摘要】
两数据库主从同步与切换方法、系统、计算机和存储介质


[0001]本申请涉及数据处理的
,特别是涉及一种两数据库主从同步与切换方法、系统、计算机和存储介质。

技术介绍

[0002]MongoDB的设计目标是高性能、可扩展、易部署、易使用,存储数据非常方便。其主要功能特性如下:1、面向集合存储,容易存储对象类型的数据;在MongoDB中数据被分组存储在集合中,集合类似RDBMS中的表,一个集合中可以存储无限多的文档。2、模式自由,采用无模式结构存储;在MongoDB中集合中存储的数据是无模式的文档,采用无模式存储数据是集合区别于RDBMS中的表的一个重要特征。3、支持完全索引,可以在任意属性上建立索引,包含内部对象;MongoDB的索引和RDBMS的索引基本一样,可以在指定属性、内部对象上创建索引以提高查询的速度;除此之外,MongoDB还提供创建基于地理空间的索引的能力。4、支持查询,MongoDB支持丰富的查询操作,MongoDB几乎支持SQL中的大部分查询。5、强大的聚合工具,如count、group等,支持使用MapReduce完成复杂的聚合任务。6、使用高效的二进制数据存储,包括大型对象(如视频),使用二进制格式存储,可以保存任何类型的数据对象。7、支持Perl、PHP、Java、C#、JavaScript、Ruby、C和C++语言的驱动程序,MongoDB提供了当前所有主流开发语言的数据库驱动包,开发人员使用任何一种主流开发语言都可以轻松编程,实现访问MongoDB数据库。8、文件存储格式为BSON(JSON的一种扩展),BSON是对二进制格式的JSON的简称,BSON支持文档和数组的嵌套。9、可以通过网络访问,可以通过网络远程访问MongoDB数据库。
[0003]目前,MongoDB集群的集群搭建方式主要有三种:主从模式、副本集群模式、sharding模式,三种模式各有优劣,适用于不同的场合;属副本集群模式应用最为广泛,主从模式现在用的较少,sharding模式最为完备,但配置维护较为复杂。然而在MongoDB

4.0版本之后已不再支持主从模式,而是副本集群模式,要求至少部署三个及其以上的数据库实例;当副本集群模式中有一半数据库实例出现问题时,则整个集群变为只读无法写入。所以用户要实现高可用的功能只能通过增加数据库实例实现,这势必导致增加用户使用成本和维护难度。
[0004]因此,针对现有相关技术中的MongoDB

4.0版本之后已不支持主从同步,仅支持组建MongoDB集群内三个及其以上MongoDB数据库实例之间数据同步条件下,而无法实现两个数据库之间的主从数据同步,且无法手动切换同步角色的技术问题,尚未提出有效的解决方案。

技术实现思路

[0005]本申请实施例提供了一种两数据库主从同步与切换方法、系统、计算机和存储介质,以至少解决现有相关技术中的MongoDB

4.0版本之后已不支持主从同步,仅支持组建MongoDB集群内三个及其以上MongoDB数据库实例之间数据同步条件下,而无法实现两个数
据库之间的主从数据同步,且无法手动切换同步角色的技术问题。
[0006]第一方面,本申请实施例提供了一种两数据库主从同步与切换方法,包括:
[0007]根据配置的数据库角色启动主数据库以及备数据库上的同步程序;
[0008]获取所述主数据库写入数据的指令,以使所述备数据库上的同步程序从变更流中收到变动内容,同步到所述备数据库;
[0009]在所述备数据库上的同步程序同步解析数据时,对所述解析数据进行配置;
[0010]获取所述两数据库的角色切换指令,以使所述两数据库上的同步程序根据切换后的角色状态重新工作。
[0011]在其中一些实施例中,所述根据配置的数据库角色启动主数据库以及备数据库上的同步程序的步骤包括:
[0012]获取给予所述两数据库上分别安装同步程序的指令;
[0013]配置所述两数据库的主数据库以及备数据库的角色,以使所述主数据库写入,所述备数据库只读;
[0014]控制所述主数据库上的同步程序阻塞休眠,以及所述备数据库上的同步程序开始同步与开始监听所述主数据库的变更流。
[0015]在其中一些实施例中,所述获取所述主数据库写入数据的指令,以使所述备数据库上的同步程序从变更流中收到变动内容,同步到所述备数据库的步骤之后,还包括:
[0016]若所述备数据库上的同步程序无法增量同步,则停止同步并发送用户需要重新全量同步的提示指令;
[0017]获取全量同步的强制操作指令,控制所述备数据库上的同步程序将全量同步所述主数据库所有数据,保证同步正常进行。
[0018]在其中一些实施例中,所述获取所述主数据库写入数据的指令,以使所述备数据库上的同步程序从变更流中收到变动内容,同步到所述备数据库的步骤之后,还包括:
[0019]若所述备数据库上的同步程序发现所述主数据库出现问题,则自动切换当下两数据库的角色。
[0020]在其中一些实施例中,所述在所述备数据库上的同步程序同步解析数据时,对所述解析数据进行配置,其中,所述配置包括对所述解析数据进行下述中的至少一种操作:过滤、转化。
[0021]第二方面,本申请实施例提供了一种两数据库主从同步与切换系统,包括:
[0022]启动模块:用于根据配置的数据库角色启动主数据库以及备数据库上的同步程序;
[0023]同步模块:用于获取所述主数据库写入数据的指令,以使所述备数据库上的同步程序从变更流中收到变动内容,同步到所述备数据库;
[0024]处理模块:用于在所述备数据库上的同步程序同步解析数据时,对所述解析数据进行配置;
[0025]第一切换模块:用于获取所述两数据库的角色切换指令,以使所述两数据库上的同步程序根据切换后的角色状态重新工作。
[0026]在其中一些实施例中,所述启动模块包括:
[0027]获取单元:用于获取给予所述两数据库上分别安装同步程序的指令;
[0028]配置单元:用于配置所述两数据库的主数据库以及备数据库的角色,以使所述主数据库写入,所述备数据库只读;
[0029]控制单元:控制所述主数据库上的同步程序阻塞休眠,以及所述备数据库上的同步程序开始同步与开始监听所述主数据库的变更流。
[0030]在其中一些实施例中,所述系统还包括:
[0031]停止模块:用于若所述备数据库上的同步程序无法增量同步,则停止同步并发送用户需要重新全量同步的提示指令;
[0032]强制模块:用于获取全量同步的强制操作指令,控制所述备数据库上的同步程序将全量同步所述主数据库所有数据,保证同步正常进行。
[0033]在其中一些实施例中,所述系统还包括:
[0034]第二切换模块:用于若所述备数据库上的同步程序发现所述主数据库出现问题,则自动切换当下两数据库的角色。...

【技术保护点】

【技术特征摘要】
1.一种两数据库主从同步与切换方法,其特征在于,包括:根据配置的数据库角色启动主数据库以及备数据库上的同步程序;获取所述主数据库写入数据的指令,以使所述备数据库上的同步程序从变更流中收到变动内容,同步到所述备数据库;在所述备数据库上的同步程序同步解析数据时,对所述解析数据进行配置;获取所述两数据库的角色切换指令,以使所述两数据库上的同步程序根据切换后的角色状态重新工作。2.根据权利要求1所述的两数据库主从同步与切换方法,其特征在于,所述根据配置的数据库角色启动主数据库以及备数据库上的同步程序的步骤包括:获取给予所述两数据库上分别安装同步程序的指令;配置所述两数据库的主数据库以及备数据库的角色,以使所述主数据库写入,所述备数据库只读;控制所述主数据库上的同步程序阻塞休眠,以及所述备数据库上的同步程序开始同步与开始监听所述主数据库的变更流。3.根据权利要求1所述的两数据库主从同步与切换方法,其特征在于,所述获取所述主数据库写入数据的指令,以使所述备数据库上的同步程序从变更流中收到变动内容,同步到所述备数据库的步骤之后,还包括:若所述备数据库上的同步程序无法增量同步,则停止同步,并发送用户需要重新全量同步的提示指令;获取全量同步的强制操作指令,控制所述备数据库上的同步程序将全量同步所述主数据库所有数据,保证同步正常进行。4.根据权利要求1所述的两数据库主从同步与切换方法,其特征在于,所述获取所述主数据库写入数据的指令,以使所述备数据库上的同步程序从所述变更流中收到变动内容,同步到所述备数据库的步骤之后,还包括:若所述备数据库上的同步程序发现所述主数据库出现问题,则自动切换当下所述两数据库的角色。5.根据权利要求1所述的两数据库主从同步与切换方法,其特征在于,所述在所述备数据库上的同步程序同步解析数据时,对所述解析数...

【专利技术属性】
技术研发人员:葛汉斌范渊
申请(专利权)人:杭州安恒信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1