[发明专利]一种保持数据一致性的方法、装置、系统和应用服务器有效
申请号: | 201510555567.X | 申请日: | 2015-09-01 |
公开(公告)号: | CN105159991B | 公开(公告)日: | 2019-08-02 |
发明(设计)人: | 李林 | 申请(专利权)人: | 北京皮尔布莱尼软件有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27 |
代理公司: | 北京思睿峰知识产权代理有限公司 11396 | 代理人: | 赵爱军;谢建云 |
地址: | 100080 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 保持 数据一致性 方法 装置 系统 应用 服务器 | ||
本发明公开了一种保持数据一致性的方法,在应用服务器中执行,适于将业务数据同时写入到第一数据库和第二数据库,所述方法包括:创建与第一数据库的第一数据库连接,并在第一数据库连接下启动第一数据库事务,执行对第一数据库的第一读写操作,以便将业务数据写入到第一数据库;创建与第二数据库的第二数据库连接,并在第二数据库连接下启动第二数据库事务,执行对第二数据库的第二读写操作,以便将业务数据写入到第二数据库;当第一读写操作对应的第一操作结果以及第二读写操作对应的第二操作结果均为成功时,分别执行对第一数据库事务和第二数据库事务的提交操作。本发明还公开了与上述方法相对应的保持数据一致性的装置、系统和应用服务器。
技术领域
本发明涉及数据库技术领域,具体涉及一种保持数据一致性的方法、装置、系统和应用服务器。
背景技术
由于单台数据库服务器的性能及容量限制,当业务发展到一定程度时,不得不对业务数据进行切分,使业务数据分别存储到多台数据库服务器的多个数据库中。
当业务需要同时向多个数据库写入数据时,若部分数据库提交失败,而另外的数据库提交成功,则会出现业务数据不一致的问题,导致最终存储的数据无法保证一致性而出现错误,给业务造成损失。
图1为现有技术中对两个数据库同时进行操作的流程图。如图1所示,Web服务器需要进行跨库操作,将业务数据同时写入到数据库A和数据库B,其流程如下:
步骤S101、创建与数据库A的数据库连接;
步骤S102、启动数据库事务A;
步骤S103、对数据库A执行一系列读写操作,以便将业务数据写入到数据库A;
步骤S104、如果对数据库A的操作成功,提交数据库事务A(Commit),对数据库A的操作完成;
步骤S105、创建与数据库B的数据库连接;
步骤S106、启动数据库事务B;
步骤S107、对数据库B执行一系列读写操作,以便将业务数据写入到数据库B;
步骤S108、如果对数据库B的操作成功,提交数据库事务B(Commit),对数据库B的操作完成;
至此,对数据库A、B的全部操作执行完毕,操作结果为:对数据库A的操作执行成功,对数据库B的操作执行成功。
在步骤S109中,如果对数据库B的操作失败,则回滚(Rollback)数据库事务B。全部操作执行完毕,执行结果为:对数据库A的操作执行成功,对数据库B的操作执行失败,此时,数据库A和数据库B出现数据不一致。
在步骤S110中,如果对数据库A操作失败,回滚数据库事务A。全部操作执行完毕,执行结果为:对数据库A的操作执行失败,对数据库B的操作未执行。
可以看出,根据步骤S109的执行结果,对数据库A的操作执行成功,对数据库B的操作执行失败,因为对数据库A的操作已提交到数据库A,无法回退,会导致数据库A数据与数据库B数据在逻辑上不一致。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种保持数据一致性的方法、装置、系统和应用服务器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京皮尔布莱尼软件有限公司,未经北京皮尔布莱尼软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510555567.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于B/S架构的异构系统的数据映射方法
- 下一篇:图片推送方法和装置