一种用于数据同步中的异常检测的方法与设备的制造方法_2

文档序号:9579331阅读:来源:国知局
会将该写操作记录在binlog(二进制日志)中,备份数据库30检测binlog的变化并解析binlog以还原该写操作以获得实时写入备份数据30的数据流,因此,第一装置100通过获取解析binlog后还原的写操作即可抓取到实时写入备份数据库30的数据流,也就是待检测的同步数据所对应的目标范围。
[0029]本领域技术人员应能理解上述在主数据库与备份数据库的同步过程中根据对所述备份数据库的数据写操作确定所述备份数据库中待检测的同步数据所对应的目标范围的方式仅为举例,其他现有的或今后可能出现的在主数据库与备份数据库的同步过程中确定所述备份数据库中待检测的同步数据所对应的目标范围的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
[0030]第一装置100在确定了备份数据库30中待检测的同步数据所对应的目标范围之后,第二装置110获取与该目标范围相对应的基准数据。其中,所述基准数据包括备份数据库30中与所述目标范围所对应的一条或者多条数据库记录。
[0031]在一个优选实施例中,第二装置110获取与该目标范围相对应的基准数据,包括:第二装置110首先通过解析所述备份数据库30的预写日志(WAL, Write Ahead Logging)实现所述备份数据库30中数据变化的回放。例如,若所述备份数据库30是MySQL数据库,第二装置110则通过该MySQL数据库中的数据复制中心(DRC,Data Replicat1n Center)解析binlog来实现数据变化的回放;又例如,若所述备份数据库30是HBase数据库,第二装置110则通过该HBase数据库中的iback解析Hlog来实现数据变化的回放。其中,通过解析数据库的预写日志实现该数据库中数据变化的回放是本领域技术人员所熟悉的技术手段,为了简明起见,在此不再对所有解析数据库的预写日志的方式进行一一列举。接着,第二装置110根据所述目标范围从该回放数据中获取相对应的基准数据。
[0032]本领域技术人员应能理解上述通过解析所述备份数据库的预写日志实现所述备份数据库中数据变化的回放以从中获取与所述目标范围相对应的基准数据的方式仅为举例,其他现有的或今后可能出现的获取与该目标范围相对应的基准数据的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
[0033]第二装置110获取与所述目标范围相对应的基准数据之后,第三装置120根据该基准数据检测所述待检测的同步数据是否与所述主数据库20中的对应数据相一致。第二装置110获得的基准数据是备份数据库30中与所述目标范围所对应的一条或者多条数据库记录,因此,在一个优选实施例中,第三装置120可以通过比较所述基准数据所对应的数据库主键在所述备份数据库30与所述主数据库20中的赋值,来检测所述备份数据库30中待检测的同步数据是否与所述主数据库20中的对应数据相一致。具体地,第三装置120首先获取所述基准数据的关键字段,在本实施例中也就是获取所述基准数据的数据库主键。然后第三装置120利用所述数据库主键分别在主数据库20和备份数据库30中进行查询,相应获得该数据库主键在主数据库20和备份数据库30中的赋值,下文中分别用第一数据和第二数据表示。例如,主数据库20和备份数据库30均是SQL数据库,可以采用SQL语句(例如select*from table where key =数据库主键)进行查询;又例如,主数据库20和备份数据库30均是列存数据库,可以采用Rowkey的方式进行查询。为了简明起见,在此不再针对于不同数据库的不同查询方法进行一一列举。接着,第三装置120对该第一数据和第二数据进行对比。如果对比结果显示第一数据与第二数据相同,第三装置120则判断主数据库20和备份数据库30之间的同步数据是一致的;如果对比结果显示第一数据与第二数据不同,第三装置120则判断主数据库20和备份数据库30之间的同步数据不一致,也就是说,主数据库20和备份数据库30之间的数据同步过程存在问题。
[0034]在主数据库20和备份数据库30进行数据同步的过程中,由于数据复制延迟、数据频繁变更等现象的影响,第三装置120针对于主数据库20和备份数据库30之间每一次数据同步过程的首次检测中可能出现同步数据不一致的检测结果,但实际上,在数据复制延迟、数据频繁变更等现象发生的一段时间之后,主数据库20和备份数据库30最终的同步数据是一致的。因此,为了避免上述误检的发生,在另一优选实施例中,当第三装置120检测得所述备份数据库30中待检测的同步数据与所述主数据库20中的对应数据不一致时,第三装置120将延时后再检测所述待检测的同步数据是否与所述主数据库20中的对应数据相一致。其中,延时后第三装置120再次检测所述待检测的同步数据是否与所述主数据库20中的对应数据相一致所采用的方法,和第三装置120针对所述待检测的同步数据的首次检测所采用的方法是相同的,为了简明起见,在此不再赘述。需要说明的是,数据一致性的检测实时性和检测误检率之间是存在负相关的关系,即,检测实时性越高则检测误检率越低,而检测实时性越低则检测误检率越高。因此,在设定两次检测之间延时的具体延迟时长时需要根据实际情况在检测实时性和检测误检率两者之间做出平衡。此外,在设定两次检测之间延时的具体延迟时长时也需要考虑主数据库20中数据变化的频度。因此,综上所述,两次检测之间延时的具体延迟时长可以根据检测同步数据的实时性指标信息(用于反映检测实时性)、检测同步数据的误检指标信息(用于反映检测误检率)、所述主数据库的数据操作频度信息(用于反映主数据库中数据变化的频度)中的一项或者多项进行确定。
[0035]设备10的各步骤之间是持续不断工作的。具体地,第一装置100持续在主数据库20与备份数据库30的同步过程中确定所述备份数据库30中待检测的同步数据所对应的目标范围;第二装置110持续获取与所述目标范围相对应的基准数据;第三装置120持续根据所述基准数据检测所述待检测的同步数据是否与所述主数据库20中的对应数据相一致。在此,本领域技术人员应能理解“持续”是指设备10的各装置之间分别不断地根据所述基准数据检测所述待检测的同步数据是否与所述主数据库20中的对应数据相一致,直至设备10在较长时间内停止在主数据库20与备份数据库30的同步过程中确定所述备份数据库30中待检测的同步数据所对应的目标范围。
[0036]图2示出根据本申请一个优选实施例的一种用于数据同步中的异常检测的设备10,其中,该设备10包括第一装置100’、第二装置110’、第三装置120’和第四装置130’。具体地,第一装置100’在主数据库20与备份数据库30的同步过程中确定所述备份数据库30中待检测的同步数据所对应的目标范围;第二装置110’获取与所述目标范围相对应的基准数据;第三装置120’根据所述基准数据检测所述待检测的同步数据是否与所述主数据库20中的对应数据相一致;第四装置130’存储经检测与所述主数据库20中的对应数据不一致的同步数据。在此,第一装置100’、第二装置110’和第三装置120’分别与图1中第一装置100、第二装置110和第三装置120的内容相同或基本相同,为简明起见,故在此不再赘述,并以引用的方式包含于此。
[0037]具体地,如果第三装置120’检测到备份数据库30中的待检测的同步数据与主数据库20中的对应数据不一致,则第四装置130’对经检测与所述主数据库20中的对应数据不一致的同步数据的进行存储,形成同步数据检测历史记录。其中,第四装置130’可以通过WEB页面的方式将该不一致的同步数据提供给数据库管理人员进行查询,数据库管理人员可以根据该不一致的同步数据对同步过程中所产生问题进行定位以及对备份数据库30中的同步数据进行修复等后续操作。
[0038]本领域技术人员应能理解上述通过WEB页面的方式将该不一致的同步数据提供给数据库管理人员进行查询的方式仅为举例,其他现有的或今后可能出现的将该不一致的同步数据提供给数据库管理人员进行查询的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
[0039]基于同步数据检测历史记录,第一装置100’除了根据对所述备份数据库30的数据写操作,还可以结合对应的同
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1