一种消费端数据流复制方法及系统的制作方法

文档序号:8361534阅读:338来源:国知局
一种消费端数据流复制方法及系统的制作方法
【技术领域】
[0001]本发明涉及数据库相关技术领域,特别是一种消费端数据流复制方法及系统。
【背景技术】
[0002]在电子商务发展日趋规模化的今天,大的电商公司积累了大量的商家用户,同时,有许多独立软件开发商(ISV)为这些商家生产软件,这些ISV需要电商公司的数据为商家提供服务,于是电商公司将数据开放给ISV使用变成了必然的趋势。
[0003]数据开放有许多形式:应用程序接口调用(API)、数据仓库解决方案(历史数据分析)、商家用户数据库服务等,其中数据库服务是指直接将使用ISV软件的商家数据推送到数据库。这种方式的服务具有实时、准确、稳定等特点。
[0004]数据库的流复制是指,通过收集、分析、存储数据库运行日志得到源数据库的变更事件,提供给消费端(目标端),消费端将运行日志或事件还原,以达到复制的目的。这种方式具有配置灵活,支持异构数据库和对网络要求低等特点,在数据库复制和容灾等场景下应用广泛应用,尤其适合数据库的实时增量同步的场景。
[0005]1.2.1现有技术的技术方案:
[0006]目前比较成熟的复制产品有Mysql的Replicat1ruAlibaba的Canal&Otter等。
[0007]Mysql Replicat1n是基于二进制日志文件的(binlog)主从复制,二进制日志文件记录了主数据库的数据变化。有三个线程协同工作完成复制,主库上的Dump线程负责抽取日志文件,从库上的1线程负责将主库的日志文件同步到本地,从库上的SQL线程负责将1线程同步的日志文件应用的从库。
[0008]Canal&Otter是分布式数据库同步系统。Canal模拟Mysql Slave交互协议,伪装自己为Slave,向Master发送Dump协议,Master推送日志文件Canal。Otter基于Canal,解析Canal接收的日志文件,使用分布式的思想,多个节点协同工作将主库的变化应用到目标库。
[0009]现有技术均是基于日志文件的流式复制技术,都是数据库的高可用、实时复制、容灾等重要应用的解决方案。Mysql Replicat1n技术在生产系统中应用功能和稳定性稍弱,数据库的主从不一致等异常情况时有发生,一旦异常后从库的恢复较为困难;Canal&0tter相对与Mysql Replicat1n功能强大,在消费端使用了分布式的思想,实现方式较为复杂,将其灵活应用到自己的业务中并非易事。
[0010]在流复制的消费端,不同的消费端对数据的需求不同,需要有灵活的配置,现有技术无法对不断变化的消费端作统一管理和配置,在还原源数据库的事件时往往会遇到:延时时间长、性能低下,一致性难以保障,异常恢复困难等问题。在数据开放服务场景下,需要对订阅的源数据库事件过滤,转换等复杂操作,现有技术无法灵活应对。

【发明内容】

[0011]基于此,有必要针对现有技术在消费端数据流复制时所存在的数据库一致性难以保障、异常恢复困难的技术问题,提供一种消费端数据流复制方法及系统。
[0012]一种消费端数据流复制方法,包括:
[0013]复制步骤,包括:从分布式消息系统中拉取源数据库的事件日志作为源事件日志,将每个所述源事件日志解析成相应的数据库语句作为复制语句,执行持久化步骤;
[0014]回溯步骤,包括:当消费端异常出现时,回溯到健康点之前的位置作为回溯位置,重新从分布式消息系统中拉取源数据库的事件日志,将所述事件日志解析成相应的数据库语句作为复制语句,执行持久化步骤;
[0015]持久化步骤,包括:在所述消费端对应的目标数据库中依次执行每个所述复制语句。
[0016]一种消费端数据流复制系统,包括:
[0017]复制模块,用于:从分布式消息系统中拉取源数据库的事件日志作为源事件日志,将每个所述源事件日志解析成相应的数据库语句作为复制语句,执行持久化模块;
[0018]回溯模块,用于:当消费端异常出现时,回溯到健康点之前的位置作为回溯位置,重新从分布式消息系统中拉取源数据库的事件日志,将所述事件日志解析成相应的数据库语句作为复制语句,执行持久化模块;
[0019]持久化模块,用于:在所述消费端对应的目标数据库中依次执行每个所述复制语句。
[0020]本发明将源数据库的事件日志解析成数据库语句,并在目标数据库执行,则当发生异常并利用分布式系统的位置回溯功能实现数据库回溯时,使用数据库语句能灵活地进行数据插入,适应各种冲突情况。因此,本发明非常灵活且可靠。
【附图说明】
[0021]图1为本发明一种数据库管理方法的工作流程图;
[0022]图2为本发明最佳实施例的系统架构图;
[0023]图3为本发明最佳实施例的工作流程图;
[0024]图4为本发明最佳实施例的持久化操作的工作流程图;
[0025]图5为本发明一种消费端数据流复制系统的结构模块图。
【具体实施方式】
[0026]下面结合附图和具体实施例对本发明做进一步详细的说明。
[0027]如图1所示为本发明一种数据库管理方法的工作流程图,包括:
[0028]步骤S101,包括:从分布式消息系统中拉取源数据库的事件日志作为源事件日志,将每个所述源事件日志解析成相应的数据库语句作为复制语句,执行步骤S103 ;
[0029]步骤S102,包括:当消费端异常出现时,回溯到健康点之前的位置作为回溯位置,重新从分布式消息系统中拉取源数据库的事件日志,将所述事件日志解析成相应的数据库语句作为复制语句,执行步骤S103 ;
[0030]步骤S103,包括:在所述消费端对应的目标数据库中依次执行每个所述复制语句。
[0031]本发明在步骤SlOl中,将源事件解析为相应的数据库语句(优选为标准的结构化查询语言,即Structured Query Language,SQL)。然后在步骤S103中在目标数据库中执行复制语句。消费端异常指的是消费端出现宕机等故障,当出现消费端异常时,对源数据库进行回溯。进行回溯时会选择异常发生时间点前的一个时间节点作为健康点,数据库的曰志文件中,该健康点所对应的位置即回溯位置。将源数据库在该回溯位置之后的所有日志重新解析为相应的数据库语句并执行步骤S103进行复制。
[0032]本发明采用的是数据库语句复制,相比现有技术所采用的简单的日志文件二进制复制,本发明的数据库语句复制更加灵活,且能适应更多不同的数据库。对于不同的数据库,其日志文件的格式会有不同,如果采用现有技术的日志文件二进制复制,则仅能在相同格式的数据库间进行复制,而无法适应源数据库和目标数据库不同格式的情况。本发明采用了数据库语句翻译源数据库,然后在目标数据库中执行经过翻译的数据库语句,使得数据库间的复制更为灵活,能适应各种不同的数据库格式。
[0033]在其中一个实施例中,所述步骤S103,
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1