一种提高时间自由度的数据库回放方法、装置、系统及介质与流程
未命名
09-22
阅读:89
评论:0

1.本发明涉及数据库技术领域,尤其涉及一种提高时间自由度的数据库回放方法、装置、系统及介质。
背景技术:
2.数据库的负载回放是数据库领域兼容性、测试、提高时间自由度的数据库回放、实时同步的一种有效实现方式。虽然目前各大数据库基本都会设计和研发适合自身数据库回放的框架和工具,以实现数据库回放功能。
3.但是目前大多主流数据库回放手段主要基于语句先后或者顺序本身,这种方式仅简单地在数据中加入时间信息或是按照时间顺序排布,想要兼顾时间顺序和事务完整性就需要先将所有时间信息统一读取再进行处理。当数据量大的时候处理的时间和空间成本会迅速提升,导致数据库回放效率降低。
技术实现要素:
4.鉴于上述现有技术的不足,本发明的目的在于提供可应用于金融科技或其它相关领域的一种提高时间自由度的数据库回放方法、装置、系统及介质,旨在实现时间自由度高的数据库回放,提高数据库回放效率。
5.本发明的技术方案如下:一种提高时间自由度的数据库回放方法,包括:对源端数据库的数据操作日志进行录制,生成录制信息;根据所述录制信息中的时间信息对所述录制信息进行数据结构处理,生成具有预设时间索引结构的回放信息;对所述回放信息进行持久化处理,将所述回放信息以固定格式存储于指定位置;从所述指定位置读取所述回放信息并对所述回放信息进行数据结构解析,根据解析结果与接收到的时间操作,按所述预设时间索引结构读取所述回放信息中指定时间的目标回放信息;根据所述目标回放信息生成相应的回放任务,并对目标端数据库执行所述回放任务,以使得所述指定时间下对所述源端数据库中的数据做出的变更被回放到所述目标端数据库。
6.在一个实施例中,所述根据所述录制信息中的时间信息对所述录制信息进行数据结构处理,生成具有预设时间索引结构的回放信息,包括:获取所述录制信息中的时间信息、事务信息和操作语句信息;以所述时间信息为索引,按时间层级关系生成相应的预设时间索引结构;将所述预设时间索引结构中每个层级的时间子索引与对应的事务信息和操作语句信息进行索引关联,生成所述回放信息。
7.在一个实施例中,所述从所述指定位置读取所述回放信息并对所述回放信息进行
数据结构解析,根据解析结果与接收到的时间操作,按所述预设时间索引结构读取所述回放信息中指定时间的目标回放信息,包括:从所述指定位置读取所述回放信息并按所述预设时间索引结构对所述回放信息进行解析,读取回放必要元素;根据接收到的时间操作,确定回放起始时间、时间区间以及回放方式;控制时间索引指针从所述回放起始时间开始在所述时间区间内以所述回放方式进行移动;根据每次移动后所述时间索引指针位置处的指定时间,实时读取所述回放信息中与所述指定时间具有索引关联的事务信息和操作语句信息,结合所述回放必要元素生成所述目标回放信息。
8.在一个实施例中,所述必要元素包括时间索引起始信息、时间索引结束信息、环境信息和统计信息。
9.在一个实施例中,所述时间区间为网格状时间或筛状时间;所述回放方式包括顺序回放、逆序回放、开始回放、暂停回放以及回放速度中的至少一项。
10.在一个实施例中,所述根据接收到的时间操作,确定回放起始时间、时间区间以及回放方式,包括:根据所述回放信息中的时间信息生成并展示若干个可视化时间控件;接收对所述可视化时间控件输入的控件操作,确定回放起始时间、时间区间以及回放方式。
11.在一个实施例中,所述可视化时间控件包括滑块控件、开始按钮、暂停按钮和/或倍速按钮。
12.一种提高时间自由度的数据库回放装置,包括:录制模块,用于对源端数据库的数据操作日志进行录制,生成录制信息;数据结构处理模块,用于根据所述录制信息中的时间信息对所述录制信息进行数据结构处理,生成具有预设时间索引结构的回放信息;持久化模块,用于对所述回放信息进行持久化处理,将所述回放信息以固定格式存储于指定位置;解析读取模块,用于从所述指定位置读取所述回放信息并对所述回放信息进行数据结构解析,根据解析结果与接收到的时间操作,按所述预设时间索引结构读取所述回放信息中指定时间的目标回放信息;回放执行模块,用于根据所述目标回放信息生成相应的回放任务,并对目标端数据库执行所述回放任务,以使得所述指定时间下对所述源端数据库中的数据做出的变更被回放到所述目标端数据库。
13.一种提高时间自由度的数据库回放系统,所述系统包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述提高时间自由度的数据库回放方法。
14.一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的提高时间自由度的数据库回放方法。
15.有益效果:本发明公开了一种提高时间自由度的数据库回放方法、装置、系统及介质,相比于现有技术,本发明实施例通过将从源端数据库获得的录制信息处理为具有预设时间索引结构的回放信息,使得在回放时可基于接收到的时间操作灵活读取指定时间的目标回放信息对目标端数据库执行回放,提高回放时间自由度和效率。
附图说明
16.下面将结合附图及实施例对本发明作进一步说明,附图中:图1为本发明实施例提供的提高时间自由度的数据库回放方法的一个应用环境图;图2为本发明实施例提供的提高时间自由度的数据库回放方法的一个流程图;图3为本发明实施例提供的提高时间自由度的数据库回放方法中步骤s200的流程图;图4为本发明实施例提供的提高时间自由度的数据库回放方法中基于预设时间索引结构的数据分布示意图;图5为本发明实施例提供的提高时间自由度的数据库回放方法中步骤s400的一个流程图;图6为本发明实施例提供的提高时间自由度的数据库回放方法中步骤s402的一个流程图;图7为本发明实施例提供的提高时间自由度的数据库回放装置的功能模块示意图;图8为本发明实施例提供的提高时间自由度的数据库回放系统的硬件结构示意图。
具体实施方式
17.为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。以下结合附图对本发明实施例进行介绍。
18.图1为本发明提供的提高时间自由度的数据库回放方法的一个应用环境图。本实施例提供的提高时间自由度的数据库回放方法应用于包括源端数据库、目标端数据库、服务端和网络构成的系统。其中网络为用于在源端数据库、目标端数据库以及服务端之间提供通信链路的介质,其可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。源端数据库和目标端数据为不同的数据库,例如源端数据库为主数据库集,目标端数据库为备数据库。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现,其中包括若干个功能组件以实现本实施例提供的提高时间自由度的数据库回放方法。
19.请参阅图2,图2为本发明提供的提高时间自由度的数据库回放方法一个实施例的流程图,本实施例中以该方法应用于上述图1中的服务端来举例说明。如图2所示,该方法具
体包括如下步骤:s100、对源端数据库的数据操作日志进行录制,生成录制信息。
20.本实施例中,基于源端数据库中接收到的数据操作会生成相应的数据操作日志,其中包括了对源端数据库中的数据做出变更的操作记录,通过对该数据操作日志进行录制以生成相应的录制信息,该录制信息中包括了时间信息、事务信息以及操作语句信息,当然还可以包含其他信息,比如环境信息、统计信息、版本信息、字符集信息等等,以作为后续具有数据库回放需求时的准确回放依据。
21.s200、根据所述录制信息中的时间信息对所述录制信息进行数据结构处理,生成具有预设时间索引结构的回放信息。
22.基于采集到的录制信息中的时间信息,对该录制信息进行数据结构处理,以时间为索引基础,将录制信息处理为具有预设时间索引结构的回放信息,由于数据库在发送数据变化时最直接的反映数据即为时间,因此以时间排布为基础生成的回放信息,可以通过其中的预设时间索引结构,灵活进行以时间为依据的操作,以提高后续回放过程中的时间自由度。
23.s300、对所述回放信息进行持久化处理,将所述回放信息以固定格式存储于指定位置。
24.生成了具有预设时间索引结构的回放信息后,进一步对该回放信息进行持久化处理,将其以固定的格式进行持久化保存在指定位置,在需要数据重新入库时,则可随时将这部分数据从本地读取后重新入库,以实现灵活的数据库回放。
25.s400、从所述指定位置读取所述回放信息并对所述回放信息进行数据结构解析,根据解析结果与接收到的时间操作,按所述预设时间索引结构读取所述回放信息中指定时间的目标回放信息。
26.在具有数据库回放需求时,例如主备库之间的互相同步、或者数据库发生故障时的数据回滚、或者需将持久化的数据重新入库等等情形时,本实施例以持久化的数据重新入库进行说明,即从持久化处理时保存数据的指定位置读取相应的回放信息并进行数据结构解析,以获取回放信息中按预设时间索引结构排布的各项信息,同时用户还可根据回放需求输入相应的时间操作,例如选择时间节点执行回放、回放持续时间、中断回放、继续回放等等,以灵活控制回放时的指定时间。基于数据结构的解析结果以及接收到的时间操作,通过预设时间索引结构读取回放信息中与指定时间相对应的目标回放信息。
27.即本实施例中通过以时间粒度为基础将回放信息中不同时间下的事务信息以及操作语句信息作为回放元信息,使得可以依据时间操作所得到的指定时间作为索引,找到对应的回放元信息即目标回放信息,从而实现时间自由度的提高。
28.s500、根据所述目标回放信息生成相应的回放任务,并对目标端数据库执行所述回放任务,以使得所述指定时间下对所述源端数据库中的数据做出的变更被回放到所述目标端数据库。
29.通过时间操作确定的指定时间在回放信息中找到相应的目标回放信息后,该目标回放信息中具有指定时间的事务与操作语句详情。根据目标回放信息生成相应的回放任务并进行任务分发,对目标端数据库执行回放任务,使得指定时间下对源端数据库中的数据做出的变更被回放到所述目标端数据库,实现时间自由度搞的数据库回放,无需将所有时
间信息统一读取再进行回放,大大减少数据库回放处理的时间和空间成本。
30.进一步的,在具有多个回放任务时则可以依照多线程策略分发回放任务并执行并发回放,进一步提高回放效率 。
31.在一个实施例中,如图3所示,步骤s200包括:s201、获取所述录制信息中的时间信息、事务信息和操作语句信息;s202、以所述时间信息为索引,按时间层级关系生成相应的预设时间索引结构;s203、将所述预设时间索引结构中每个层级的时间子索引与对应的事务信息和操作语句信息进行索引关联,生成所述回放信息。
32.本实施例中,在对录制信息进行数据结构处理时,获取录制得到的时间信息、事务信息和操作语句信息,对这三类信息以时间信息为索引,按时间层级关系生成相应的预设时间索引结构,基于预设时间索引结构中每个层级的时间子索引与对应的事务信息和操作语句信息进行索引关联,即以时间为基础,对事务信息和操作语句信息进行关联,使得在生成的回放信息中可以通过不同层级的时间所有找到对应的事务和操作语句信息,提高数据库回放的时间操作自由度。
33.具体实施时,如图4所示,图4为一种基于预设时间索引结构的数据分布示意图,即可将录制信息按如图4所示的结构,以时间为索引基础进行数据重新排布,从而生成具有预设时间索引结构的回放信息。该预设时间索引结构包括时间索引层、事务层以及sql层。
34.其中,时间索引层以确切的时间点或时间段为索引的数据,其形式可以是文件内部的排列,也可以是不同文件之间,或者是以其他形式,比如优化后的树结构实现。最顶部的时间索引可以对应时间滑块一类的实现,网格子索引对应的是网格状时间,筛状子索引对应筛状时间。这样设计在以时间点回放的过程中只需要关注时间这一信息就可以通过不同层级索引找到对应的事务和sql信息,从而实现时间自由度的提高,同时降低回放所需的时空复杂度事务层是可选择的结构,即不是必须存在的。事务层存在的意义是确保事务内sql的原子性。而事务本身通常是由复数条sql组成的,且会持续一段时间。该结构所采用的策略是将持续时间段内所有的时间索引都指向该事务,倘若在执行事务的过程中切换了时间点或是发生了异常,恢复执行的时候仍然能根据时间节点找到该事务重新执行。而如果是普通暂停,也可以有记录事务中执行节点或是重新执行提交事务两种策略可选,实现灵活的数据回放。
35.sql层则是具体记录执行sql详细信息的层级,也可以记录其他必要的信息。
36.通过以时间为数据基底将录制信息的数据结构处理为预设时间索引结构,使得以时间为粒度对事务信息与操作语句信息进行划分,在保证事务原子性的同时,使得sql执行的时间点变得更加精确,使得回放过程更加仿真。
37.在一个实施例中,如图5所示,步骤s400包括:s401、从所述指定位置读取所述回放信息并按所述预设时间索引结构对所述回放信息进行解析,读取回放必要元素;s402、根据接收到的时间操作,确定回放起始时间、时间区间以及回放方式;s403、控制时间索引指针从所述回放起始时间开始在所述时间区间内以所述回放方式进行移动;
s404、根据每次移动后所述时间索引指针位置处的指定时间,实时读取所述回放信息中与所述指定时间具有索引关联的事务信息和操作语句信息,结合所述回放必要元素生成所述目标回放信息。
38.本实施例中,从存储于本地的指定位置读取了回放信息后,则按预设时间索引结构对所述回放信息进行解析,读取回放必要元素,即此时读取数据结构并不需要读取完整的所有回放信息,只需要读取时间索引起始信息、时间索引结束信息、环境信息,统计信息等总体性的回放必要元素,其余详细信息则在后续确定了指定时间后在进行读取,以此来进一步缩减时空复杂度。
39.并且在按时间索引的起始和结束信息进行回放的基础上,用户可灵活根据需求输入时间操作,从而确定回放起始时间、时间区间以及回放方式。具体的时间区间为网格状时间或筛状时间,其中网格状时间指的是对时间进行分段后以一个网格为基本单位,即连续的时间分段作为时间区间,筛状时间指的是筛选个别时间节点,即离散的时间节点集合作为时间区间。回放方式包括顺序回放、逆序回放、开始回放、暂停回放以及回放速度中的至少一项,从而在时间上灵活控制数据库回放的执行状态。
40.通过灵活输入的时间操作,控制时间索引指针从回放起始时间开始在时间区间内以回放方式进行移动,随着指针移动位置的不同,则对应为不同的指定时间,根据每次移动后时间索引指针位置处的指定时间,从回放信息中实时读取与指定时间具有索引关联的事务信息和操作语句信息,进而结合回放必要元素生成目标回放信息以用于数据库回放,实现不同时间点的回放信息灵活高效获取,降低数据库回放的时间成本。
41.例如回放起始时间为a时刻,时间区间为网格状的连续区间[a,b],回放方式为顺序回放,则时间索引指针的初始位置为a时刻,此时将a时刻作为指定时间,读取a时刻对应的事务信息和操作语句信息,之后随着时间索引指针按顺序移动至下一位置即a+1时刻,此时将a+1时刻作为指定时间,读取a+1时刻对应的事务信息和操作语句信息,依此类推,直到读取到b时刻对应的事务信息和操作语句信息后则结束该时间区间的回放信息读取。
[0042]
在一个实施例中,如图6所示,步骤s402包括:s4021、根据所述回放信息中的时间信息生成并展示若干个可视化时间控件;s4022、接收对所述可视化时间控件输入的控件操作,确定回放起始时间、时间区间以及回放方式。
[0043]
本实施例中,可以通过与ui设计结合,实现可视化的时间操作,令回放过程在时间维度更加仿真。具体根据回放信息中的时间信息(包括起始时间和结束时间)生成并展示若干个可视化时间控件,包括滑块控件、开始按钮、暂停按钮和/或倍速按钮等,用户可以通过在可视化时间控件上输入点击操作、选择操作、拖拽操作等等控件操作,实现例如开始回放、中断回放、继续回放、倍速回放、选择回放起始时间、选择时间区间、选择回放顺序等等时间操作的输入,进而确定回放起始时间、时间区间以及回放方式。通过简便直观的控件操作,提高了数据库回放过程中的时间操作的可视化程度,使得时间控制更加灵活便捷。
[0044]
本发明另一实施例提供一种提高时间自由度的数据库回放装置,如图7所示,装置1包括:录制模块11,用于对源端数据库的数据操作日志进行录制,生成录制信息;数据结构处理模块12,用于根据所述录制信息中的时间信息对所述录制信息进行
数据结构处理,生成具有预设时间索引结构的回放信息;持久化模块13,用于对所述回放信息进行持久化处理,将所述回放信息以固定格式存储于指定位置;解析读取模块14,用于从所述指定位置读取所述回放信息并对所述回放信息进行数据结构解析,根据解析结果与接收到的时间操作,按所述预设时间索引结构读取所述回放信息中指定时间的目标回放信息;回放执行模块15,用于根据所述目标回放信息生成相应的回放任务,并对目标端数据库执行所述回放任务,以使得所述指定时间下对所述源端数据库中的数据做出的变更被回放到所述目标端数据库。
[0045]
本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述提高时间自由度的数据库回放的执行过程,各模块的具体实施方式请参考上述对应的方法实施例,此处不再赘述。
[0046]
在一个实施例中,所述数据结构处理模块12,包括:获取单元,用于获取所述录制信息中的时间信息、事务信息和操作语句信息;索引结构生成单元,用于以所述时间信息为索引,按时间层级关系生成相应的预设时间索引结构;回放信息生成单元,用于将所述预设时间索引结构中每个层级的时间子索引与对应的事务信息和操作语句信息进行索引关联,生成所述回放信息。
[0047]
在一个实施例中,所述解析读取模块14,包括:解析单元,用于从所述指定位置读取所述回放信息并按所述预设时间索引结构对所述回放信息进行解析,读取回放必要元素;时间操作单元,用于根据接收到的时间操作,确定回放起始时间、时间区间以及回放方式;索引指针移动单元,用于控制时间索引指针从所述回放起始时间开始在所述时间区间内以所述回放方式进行移动;信息读取单元,用于根据每次移动后所述时间索引指针位置处的指定时间,实时读取所述回放信息中与所述指定时间具有索引关联的事务信息和操作语句信息,结合所述回放必要元素生成所述目标回放信息。
[0048]
在一个实施例中,所述必要元素包括时间索引起始信息、时间索引结束信息、环境信息和统计信息。
[0049]
在一个实施例中,所述时间区间为网格状时间或筛状时间;所述回放方式包括顺序回放、逆序回放、开始回放、暂停回放以及回放速度中的至少一项。
[0050]
在一个实施例中,所述时间操作单元,包括:可视化单元,用于根据所述回放信息中的时间信息生成并展示若干个可视化时间控件;操作接收单元,用于接收对所述可视化时间控件输入的控件操作,确定回放起始时间、时间区间以及回放方式。
[0051]
在一个实施例中,所述可视化时间控件包括滑块控件、开始按钮、暂停按钮和/或
倍速按钮。
[0052]
本发明另一实施例提供一种提高时间自由度的数据库回放系统,如图8所示,系统10包括:一个或多个处理器110以及存储器120,图8中以一个处理器110为例进行介绍,处理器110和存储器120可以通过总线或者其他方式连接,图8中以通过总线连接为例。
[0053]
处理器110用于完成系统10的各种控制逻辑,其可以为通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、单片机、arm(acorn risc machine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp和/或任何其它这种配置。
[0054]
存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的提高时间自由度的数据库回放方法对应的程序指令。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行系统10的各种功能应用以及数据处理,即实现上述方法实施例中的提高时间自由度的数据库回放方法。
[0055]
存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据系统10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至系统10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0056]
一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,实现以下步骤:对源端数据库的数据操作日志进行录制,生成录制信息;根据所述录制信息中的时间信息对所述录制信息进行数据结构处理,生成具有预设时间索引结构的回放信息;对所述回放信息进行持久化处理,将所述回放信息以固定格式存储于指定位置;从所述指定位置读取所述回放信息并对所述回放信息进行数据结构解析,根据解析结果与接收到的时间操作,按所述预设时间索引结构读取所述回放信息中指定时间的目标回放信息;根据所述目标回放信息生成相应的回放任务,并对目标端数据库执行所述回放任务,以使得所述指定时间下对所述源端数据库中的数据做出的变更被回放到所述目标端数据库。
[0057]
在一个实施例中,所述根据所述录制信息中的时间信息对所述录制信息进行数据结构处理,生成具有预设时间索引结构的回放信息,包括:获取所述录制信息中的时间信息、事务信息和操作语句信息;以所述时间信息为索引,按时间层级关系生成相应的预设时间索引结构;将所述预设时间索引结构中每个层级的时间子索引与对应的事务信息和操作语
句信息进行索引关联,生成所述回放信息。
[0058]
在一个实施例中,所述从所述指定位置读取所述回放信息并对所述回放信息进行数据结构解析,根据解析结果与接收到的时间操作,按所述预设时间索引结构读取所述回放信息中指定时间的目标回放信息,包括:从所述指定位置读取所述回放信息并按所述预设时间索引结构对所述回放信息进行解析,读取回放必要元素;根据接收到的时间操作,确定回放起始时间、时间区间以及回放方式;控制时间索引指针从所述回放起始时间开始在所述时间区间内以所述回放方式进行移动;根据每次移动后所述时间索引指针位置处的指定时间,实时读取所述回放信息中与所述指定时间具有索引关联的事务信息和操作语句信息,结合所述回放必要元素生成所述目标回放信息。
[0059]
在一个实施例中,所述必要元素包括时间索引起始信息、时间索引结束信息、环境信息和统计信息。
[0060]
在一个实施例中,所述时间区间为网格状时间或筛状时间;所述回放方式包括顺序回放、逆序回放、开始回放、暂停回放以及回放速度中的至少一项。
[0061]
在一个实施例中,所述根据接收到的时间操作,确定回放起始时间、时间区间以及回放方式,包括:根据所述回放信息中的时间信息生成并展示若干个可视化时间控件;接收对所述可视化时间控件输入的控件操作,确定回放起始时间、时间区间以及回放方式。
[0062]
在一个实施例中,所述可视化时间控件包括滑块控件、开始按钮、暂停按钮和/或倍速按钮。
[0063]
本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图2中的方法步骤s100至步骤s500。
[0064]
作为示例,非易失性存储介质能够包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦rom(eeprom)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(ram)。通过说明而非限制,ram可以以诸如同步ram(sram)、动态ram、(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强型sdram(esdram)、synchlink dram(sldram)以及直接rambus(兰巴斯)ram(drram)之类的许多形式得到。本文中所描述的操作环境的所公开的存储器组件或存储器旨在包括这些和/或任何其他适合类型的存储器中的一个或多个。
[0065]
综上,本发明公开的一种提高时间自由度的数据库回放方法、装置、系统及介质中,方法通过对源端数据库的数据操作日志进行录制,生成录制信息;根据录制信息中的时间信息对录制信息进行数据结构处理,生成具有预设时间索引结构的回放信息;对所述回放信息进行持久化处理,将所述回放信息以固定格式存储于指定位置;从所述指定位置读取所述回放信息并对回放信息进行数据结构解析,根据解析结果与接收到的时间操作,按
预设时间索引结构读取回放信息中指定时间的目标回放信息;根据目标回放信息生成相应的回放任务,并对目标端数据库执行回放任务。通过将从源端数据库获得的录制信息处理为具有预设时间索引结构的回放信息,使得在回放时可基于接收到的时间操作灵活读取指定时间的目标回放信息对目标端数据库执行回放,提高回放时间自由度和效率。
[0066]
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的计算机程序可存储于一非易失性计算机可读取的存储介质中,该计算机程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、软盘、闪存、光存储器等。
[0067]
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
技术特征:
1.一种提高时间自由度的数据库回放方法,其特征在于,包括:对源端数据库的数据操作日志进行录制,生成录制信息;根据所述录制信息中的时间信息对所述录制信息进行数据结构处理,生成具有预设时间索引结构的回放信息;对所述回放信息进行持久化处理,将所述回放信息以固定格式存储于指定位置;从所述指定位置读取所述回放信息并对所述回放信息进行数据结构解析,根据解析结果与接收到的时间操作,按所述预设时间索引结构读取所述回放信息中指定时间的目标回放信息;根据所述目标回放信息生成相应的回放任务,并对目标端数据库执行所述回放任务,以使得所述指定时间下对所述源端数据库中的数据做出的变更被回放到所述目标端数据库。2.根据权利要求1所述的提高时间自由度的数据库回放方法,其特征在于,所述根据所述录制信息中的时间信息对所述录制信息进行数据结构处理,生成具有预设时间索引结构的回放信息,包括:获取所述录制信息中的时间信息、事务信息和操作语句信息;以所述时间信息为索引,按时间层级关系生成相应的预设时间索引结构;将所述预设时间索引结构中每个层级的时间子索引与对应的事务信息和操作语句信息进行索引关联,生成所述回放信息。3.根据权利要求2所述的提高时间自由度的数据库回放方法,其特征在于,所述从所述指定位置读取所述回放信息并对所述回放信息进行数据结构解析,根据解析结果与接收到的时间操作,按所述预设时间索引结构读取所述回放信息中指定时间的目标回放信息,包括:从所述指定位置读取所述回放信息并按所述预设时间索引结构对所述回放信息进行解析,读取回放必要元素;根据接收到的时间操作,确定回放起始时间、时间区间以及回放方式;控制时间索引指针从所述回放起始时间开始在所述时间区间内以所述回放方式进行移动;根据每次移动后所述时间索引指针位置处的指定时间,实时读取所述回放信息中与所述指定时间具有索引关联的事务信息和操作语句信息,结合所述回放必要元素生成所述目标回放信息。4.根据权利要求3所述的提高时间自由度的数据库回放方法,其特征在于,所述必要元素包括时间索引起始信息、时间索引结束信息、环境信息和统计信息。5.根据权利要求3所述的提高时间自由度的数据库回放方法,其特征在于,所述回放方式包括顺序回放、逆序回放、开始回放、暂停回放以及回放速度中的至少一项。6.根据权利要求3所述的提高时间自由度的数据库回放方法,其特征在于,所述根据接收到的时间操作,确定回放起始时间、时间区间以及回放方式,包括:根据所述回放信息中的时间信息生成并展示若干个可视化时间控件;接收对所述可视化时间控件输入的控件操作,确定回放起始时间、时间区间以及回放方式。
7.根据权利要求6所述的提高时间自由度的数据库回放方法,其特征在于,所述可视化时间控件包括滑块控件、开始按钮、暂停按钮和/或倍速按钮。8.一种提高时间自由度的数据库回放装置,其特征在于,包括:录制模块,用于对源端数据库的数据操作日志进行录制,生成录制信息;数据结构处理模块,用于根据所述录制信息中的时间信息对所述录制信息进行数据结构处理,生成具有预设时间索引结构的回放信息;持久化模块,用于对所述回放信息进行持久化处理,将所述回放信息以固定格式存储于指定位置;解析读取模块,用于从所述指定位置读取所述回放信息并对所述回放信息进行数据结构解析,根据解析结果与接收到的时间操作,按所述预设时间索引结构读取所述回放信息中指定时间的目标回放信息;回放执行模块,用于根据所述目标回放信息生成相应的回放任务,并对目标端数据库执行所述回放任务,以使得所述指定时间下对所述源端数据库中的数据做出的变更被回放到所述目标端数据库。9.一种提高时间自由度的数据库回放系统,其特征在于,所述系统包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7任一项所述的提高时间自由度的数据库回放方法。10.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行权利要求1-7任一项所述的提高时间自由度的数据库回放方法。
技术总结
本发明公开了一种提高时间自由度的数据库回放方法、装置、系统及介质,包括:对源端数据库的数据操作日志进行录制,生成录制信息;根据录制信息的时间信息对录制信息进行数据结构处理,生成具有预设时间索引结构的回放信息;对回放信息进行持久化处理,将回放信息以固定格式存储于指定位置;从指定位置读取回放信息并对回放信息进行数据结构解析,根据解析结果与接收到的时间操作,按预设时间索引结构读取回放信息中指定时间的目标回放信息;根据目标回放信息生成相应的回放任务,并对目标端数据库执行回放任务。通过具有预设时间索引结构的回放信息,在回放时可基于时间操作灵活读取指定时间的目标回放信息执行回放,提高回放时间自由度和效率。时间自由度和效率。时间自由度和效率。
技术研发人员:孙正一
受保护的技术使用者:金篆信科有限责任公司
技术研发日:2023.08.17
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/