一种基于记录标记的数据库同步方法

文档序号:6542523阅读:447来源:国知局
一种基于记录标记的数据库同步方法
【专利摘要】一种基于记录标记的数据库同步方法,可有效解决不同数据库间的数据同步问题,不依赖具体的数据库产品,在实现上更灵活、可控程度高,可适用在不同的数据库产品间同步数据;数据库A、数据库B在同个业务数据表中添加相应的同步标记,数据库操作模块通过所述同步标记同步操作数据库A、数据库B中的记录数据。
【专利说明】一种基于记录标记的数据库同步方法
【技术领域】
[0001]本发明涉及数据库【技术领域】,具体为一种基于记录标记的数据库同步方法。
【背景技术】
[0002]数据库存储关系型数据,是数据保存与利用的重要基础设施,其重要数据需要多点保存,以降低单点故障造成数据丢失的风险;很多企业将信息系统部署在多个云计算服务商提供的IT基础设施之上,互为备份,降低信息系统停止运行的风险,这种部署,需要在异源数据库间进行数据同步,同一数据库产品的规格、技术规范、接口等特征相同,并提供了相应的数据同步方法和工具,数据同步的部署实施较为容易;但不同数据库产品之间特性不同,尤其是云计算的发展,出现了很多基于云的数据库,需要普遍适用的数据同步方法,在异构数据库间进行可靠的数据同步,以满足信息系统数据热备的需求。

【发明内容】

[0003]针对上述问题,本发明提供了一种基于记录标记的数据库同步方法,可有效解决不同数据库间的数据同步问题,不依赖具体的数据库产品,在实现上更灵活、可控程度高,可适用在不同的数据库产品间同步数据。
[0004]一种基于记录标记的数据库同步方法,其技术方案是这样的:其特征在于:数据库A、数据库B在同个业务数据表中添加相应的同步标记,数据库操作模块通过所述同步标记同步操作数据库A、数据库B中的记录数据,所述数据库A、数据库B的数据同步方法步骤为:
第一,所述数据库A、B均正常运行:
(1)、所述数据库操作模块实行两个数据库正常运行态的操作模式,准备好记录数据,将所述记录的标记作为同步标记,将所述同步标记置为“已同步”状态,在所述数据库A中修改所述记录,如果成功修改则执行步骤(2),否则执行步骤(3);
(2)、在所述数据库B中修改所述记录,将所述数据库B中对应记录的同步标记仍置为“已同步”状态,如果成功修改则执行所述步骤(1),否则执行步骤(4);
(3)、将所述记录的同步标记设置为“需同步”状态,在所述数据库B中修改所述记录和对应的同步标记,如果成功修改则执行步骤(5),否则执行步骤(6);
(4)、设置所述数据库A中所述记录的同步标记为“需同步”状态,执行步骤(5);
(5)、记下所述数据库A、B的运行状态,所述数据库操作模块变迁到单个数据库正常运行态模式;
(6)、所述数据库A、B均不能进行修改,则所述数据库A、B都发生故障,排除所述数据库A、B故障后,执行所述步骤(I);
第二,单个数据库正常运行,假定所述数据库A正常运行,所述数据库B故障:
(1)、所述数据库操作模块实行单个数据库正常运行态的操作模式;
(2)、准备好记录数据,将所述记录的标记作为同步标记,将所述同步标记置为“需同步”状态,在所述数据库A中修改所述记录,如果成功修改则执行步骤(3),否则执行步骤
(4);
(3)、检查所述数据库B是否恢复正常,如果恢复正常则执行步骤(5),否则执行所述步骤(I);
(4)、所述数据库A、B均不能进行修改,则所述数据库A、B都发生故障,排除所述数据库A、B故障后,执行步骤(5);
(5)、所述数据库操作模块变迁到数据库同步态模式;
第三,所述数据库同步态模式,即为假定的所述数据库A正常运行,所述数据库B从故障恢复正常运行,所述数据库A中有最新的记录需要同步至所述数据库B中:
(1)、所述数据库操作模块实行数据库同步态的操作模式,则对外仅提供查询数据服
务;
(2)、所述数据库A正常运行,以所述数据库A为基准,扫描所述数据库A中的同步标记为“需同步”状态的记录,并同步修改所述数据库B对应的记录,将所述数据库A、B中相应记录的同步标记设置为“已同步”状态,如果成功则执行步骤(3);否则执行步骤(4);
(3)、所述数据库操作模块跃迁至两个数据库正常运行态的操作模式;
(4)、对非正常运行的数据库进行排除故障,执行所述步骤(2)。
[0005]其进一步特征在于:所述数据库A、B的修改记录操作是对记录的新增、删除、更新操作,在所述数据库A、B均正常运行时,将所述数据库A、B中对应记录的同步标记置为“已同步”状态;
只有一个数据库正常运行时的修改记录操作:
(1)、为新增记录操作时,设置正常运行的数据库的同步标记为“需同步”状态,类型为“新增”,并添加记录到正常运行的数据库中;
(2)、为删除记录操作时,如果正常运行的数据库的同步标记为“需同步”状态,且类型为“新增”,则所述删除记录操作直接删除记录,否则所述删除记录操作仅将正常运行的数据库的同步标记设置为“需同步”状态,类型为“删除”;
(3)、为更新记录操作时,如果正常运行的数据库的同步标记为“需同步”状态,且类型为“新增”,则所述更新记录操作更新记录后保持正常运行的数据库的同步标记不变,否则所述更新记录操作更新记录并将正常运行的数据库的同步标记设置为“需同步”状态,类型为“更新”;
所述数据库操作模块对所述数据库A、B的记录查询操作:
(1)、收到记录查询操作请求时,判断所述数据库A、B是否都正常运行并且已同步完成,如果是执行步骤(2),否则执行步骤(3);
(2)、同步标记的过滤条件设置为“已同步”状态,任选一个数据库,查询记录;
(3)、所述数据库A、B是否在同步中,如果是,执行步骤(5);否则执行步骤(4);
(4)、是否有一个数据库可以正常运行,如果是,执行步骤(5);否则执行步骤(6);
(5)、假定所述数据库A是正常运行的同步参考数据库,要删除的记录无需再查询,故将查询过滤条件设置为:不查询同步标记为“需同步”且类型为“删除”的记录,从所述数据库A中查询记录;
(6)、所述数据库A、B都故障,返回查询失败。[0006]本发明的有益效果是,其将同步标记与记录进行绑定,由数据库操作模块在记录层面控制不同数据库的同步操作,数据库的同步操作处理不影响数据库系统自身的管理和运行,非常适合基于不同云计算数据库平台的数据同步应用开发。
【专利附图】

【附图说明】
[0007]图1是数据库操作模块同时操作数据库A、B的架构示意图;
图2是数据库A、B均正常运行时的操作流程及状态变迁示意图;
图3是单个数据库正常运行时的操作流程及状态变迁示意图;
图4是数据库同步态模式的操作流程及状态变迁示意图;
图5是只有一个数据库正常运行时的修改记录操作流程示意图;
图6是记录查询数据库的操作流程示意图。
【具体实施方式】
[0008]如图1所示,本发明的一种基于记录标记的数据库同步方法,数据库A、数据库B在同个业务数据表中添加相应的同步标记,同步标记为用来标记每行记录做过的添加、更新和删除操作,数据库操作模块在修改业务数据表中内容时,对同步标记进行设置,当数据库A、数据库B修改失败时,数据库操作模块通过同步标记同步操作数据库A、数据库B中的记录数据,数据库A、数据库B的数据同步方法步骤为:
第一,如图2所示,数据库A、B均正常运行,直接对数据库A、B进行操作,并在相应数据记录的标记字段置正常标记:
(I )、数据库操作模块实行两个数据库正常运行态的操作模式,准备好记录数据,将记录的标记作为同步标记,将同步标记置为“已同步”状态,在数据库A中修改记录,如果成功修改则执行步骤(2),否则执行步骤(3);
(2)、在数据库B中修改记录,将数据库B中对应记录的同步标记仍置为“已同步”状态,如果成功修改则执行步骤(1),否则执行步骤(4);
(3)、将记录的同步标记设置为“需同步”状态,在数据库B中修改记录和对应的同步标记,如果成功修改则执行步骤(5),否则执行步骤(6);
(4)、设置数据库A中记录的同步标记为“需同步”状态,执行步骤(5);
(5)、记下数据库A、B的运行状态,数据库操作模块变迁到单个数据库正常运行态模
式;
(6)、数据库A、B均不能进行修改,则数据库A、B都发生故障,排除数据库A、B故障后,执行步骤(I);
第二,如图3所示,单个数据库正常运行,假定数据库A正常运行,数据库B故障:
(1)、数据库操作模块实行单个数据库正常运行态的操作模式;
(2)、准备好记录数据,将记录的标记作为同步标记,将同步标记置为“需同步”状态,在数据库A中修改记录,如果成功修改则执行步骤(3),否则执行步骤(4);
(3)、检查数据库B是否恢复正常,如果恢复正常则执行步骤(5),否则执行步骤(I);
(4)、数据库A、B均不能进行修改,则数据库A、B都发生故障,排除数据库A、B故障后,执行步骤(5); (5)、数据库操作模块变迁到数据库同步态模式;
第三,如图4所示,数据库同步态模式,即为假定的数据库A正常运行,数据库B从故障恢复正常运行,数据库A中有最新的记录需要同步至数据库B中:
(1)、数据库操作模块实行数据库同步态的操作模式,则对外仅提供查询数据服务;
(2)、数据库A正常运行,以数据库A为基准,扫描数据库A中的同步标记为“需同步”状态的记录,并同步修改数据库B对应的记录,将数据库A、B中相应记录的同步标记设置为“已同步”状态,如果成功则执行步骤(3);否则执行步骤(4);
(3)、数据库操作模块跃迁至两个数据库正常运行态的操作模式;
(4)、对非正常运行的数据库进行排除故障,执行步骤(2)。
[0009]数据库A、B的修改记录操作是对记录的新增、删除、更新操作,在数据库A、B均正常运行时,将数据库A、B中对应记录的同步标记置为“已同步”状态;
如图5所示,只有一个数据库正常运行时的修改记录操作,在该正常运行的数据库中修改记录操作,并对其相应的同步标记进行设置:
(1)、为新增记录操作时,设置正常运行的数据库的同步标记为“需同步”状态,类型为“新增”,并添加记录到正常运行的数据库中;
(2)、为删除记录操作时,如果正常运行的数据库的同步标记为“需同步”状态,且类型为“新增”,则删除记录操作直接删除记录,否则删除记录操作仅将正常运行的数据库的同步标记设置为“需同步”状态,类型为“删除”,并不实际删除记录;
(3)、为更新记录操作时,如果正常运行的数据库的同步标记为“需同步”状态,且类型为“新增”,则更新记录操作更新记录后保持正常运行的数据库的同步标记不变,否则更新记录操作更新记录并将正常运行的数据库的同步标记设置为“需同步”状态,类型为“更新”;
如图6所示,数据库操作模块对数据库A、B的记录查询操作:
(1)、收到记录查询操作请求时,判断数据库A、B是否都正常运行并且已同步完成,如果是执行步骤(2),否则执行步骤(3);
(2)、同步标记的过滤条件设置为“已同步”状态,任选一个数据库,查询记录;
(3)、数据库A、B是否在同步中,如果是,执行步骤(5);否则执行步骤(4);
(4)、是否有一个数据库可以正常运行,如果是,执行步骤(5);否则执行步骤(6);
(5)、假定数据库A是正常运行的同步参考数据库,要删除的记录无需再查询,故将查询过滤条件设置为:不查询同步标记为“需同步”且类型为“删除”的记录,从数据库A中查询记录;
(6)、数据库A、B都故障,返回查询失败。
【权利要求】
1.一种基于记录标记的数据库同步方法,其特征在于:数据库A、数据库B在同个业务数据表中添加相应的同步标记,数据库操作模块通过所述同步标记同步操作数据库A、数据库B中的记录数据,所述数据库A、数据库B的数据同步方法步骤为: 第一,所述数据库A、B均正常运行: (1)、所述数据库操作模块实行两个数据库正常运行态的操作模式,准备好记录数据,将所述记录的标记作为同步标记,将所述同步标记置为“已同步”状态,在所述数据库A中修改所述记录,如果成功修改则执行步骤(2),否则执行步骤(3); (2)、在所述数据库B中修改所述记录,将所述数据库B中对应记录的同步标记仍置为“已同步”状态,如果成功修改则执行所述步骤(1),否则执行步骤(4); (3)、将所述记录的同步标记设置为“需同步”状态,在所述数据库B中修改所述记录和对应的同步标记,如果成功修改则执行步骤(5),否则执行步骤(6); (4)、设置所述数据库A中所述记录的同步标记为“需同步”状态,执行步骤(5); (5)、记下所述数据库A、B的运行状态,所述数据库操作模块变迁到单个数据库正常运行态模式; (6)、所述数据库A、B均不能进行修改,则所述数据库A、B都发生故障,排除所述数据库A、B故障后,执行所述步骤(1); 第二,单个数据库正常运行,假定所述数据库A正常运行,所述数据库B故障: (1)、所述数据库操作模块实行单个数据库正常运行态的操作模式; (2)、准备好记录数据,将所述记录的标记作为同步标记,将所述同步标记置为“需同步”状态,在所述数据库A中修改所述记录,如果成功修改则执行步骤(3),否则执行步骤(4); (3)、检查所述数据库B是否恢复正常,如果恢复正常则执行步骤(5),否则执行所述步骤(I); (4)、所述数据库A、B均不能进行修改,则所述数据库A、B都发生故障,排除所述数据库A、B故障后,执行步骤(5); (5)、所述数据库操作模块变迁到数据库同步态模式; 第三,所述数据库同步态模式,即为假定的所述数据库A正常运行,所述数据库B从故障恢复正常运行,所述数据库A中有最新的记录需要同步至所述数据库B中: (1)、所述数据库操作模块实行数据库同步态的操作模式,则对外仅提供查询数据服务; (2)、所述数据库A正常运行,以所述数据库A为基准,扫描所述数据库A中的同步标记为“需同步”状态的记录,并同步修改所述数据库B对应的记录,将所述数据库A、B中相应记录的同步标记设置为“已同步”状态,如果成功则执行步骤(3);否则执行步骤(4); (3)、所述数据库操作模块跃迁至两个数据库正常运行态的操作模式; (4)、对非正常运行的 数据库进行排除故障,执行所述步骤(2)。
2.根据权利要求1所述的一种基于记录标记的数据库同步方法,其特征在于:所述数据库A、B的修改记录操作是对记录的新增、删除、更新操作,在所述数据库A、B均正常运行时,将所述数据库A、B中对应记录的同步标记置为“已同步”状态; 只有一个数据库正常运行时的修改记录操作:(1)、为新增记录操作时,设置正常运行的数据库的同步标记为“需同步”状态,类型为“新增”,并添加记录到正常运行的数据库中; (2)、为删除记录操作时,如果正常运行的数据库的同步标记为“需同步”状态,且类型为“新增”,则所述删除记录操作直接删除记录,否则所述删除记录操作仅将正常运行的数据库的同步标记设置为“需同步”状态,类型为“删除”; (3)、为更新记录操作时,如果正常运行的数据库的同步标记为“需同步”状态,且类型为“新增”,则所述更新记录操作更新记录后保持正常运行的数据库的同步标记不变,否则所述更新记录操作更新记录并将正常运行的数据库的同步标记设置为“需同步”状态,类型为“更新”。
3.根据权利要求1所述的一种基于记录标记的数据库同步方法,其特征在于:所述数据库操作模块对所述数据库A、B的记录查询操作: (1)、收到记录查询操作请求时,判断所述数据库A、B是否都正常运行并且已同步完成,如果是执行步骤(2),否则执行步骤(3); (2)、同步标记的过滤条件设置为“已同步”状态,任选一个数据库,查询记录; (3)、所述数据库A、B是否在同步中,如果是,执行步骤(5);否则执行步骤(4); (4)、是否有一个数据库可以正常运行,如果是,执行步骤(5);否则执行步骤(6); (5)、假定所述数据库A是正常运行的同步参考数据库,要删除的记录无需再查询,故将查询过滤条件设置为: 不查询同步标记为“需同步”且类型为“删除”的记录,从所述数据库A中查询记录; (6)、所述数据库A、B都故障,返回查询失败。
【文档编号】G06F17/30GK103886091SQ201410127885
【公开日】2014年6月25日 申请日期:2014年4月1日 优先权日:2014年4月1日
【发明者】李立亚, 李亚洲 申请人:无锡科技职业学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1