一种还原历史表结构的方法和系统技术方案

技术编号:30886568 阅读:21 留言:0更新日期:2021-11-22 20:35
本发明专利技术涉及数据库数据复制技术,公开了一种还原历史表结构的方法和系统,其应用于数据同步系统中,其方法包括;记录基准数据库表结构信息,获取数据库中所有表结构的信息,该结构信息即为基准数据库表结构信息;记录所有数据库表变更操作信息;还原任意时刻点数据库表结构信息,依据基准数据库表结构信息和数据库表变更操作信息,还原任意时刻点数据库表结构信息。通过本发明专利技术的方法,能够在任意时刻,将该时刻前的所有表变更历史操作DDL(SQL)与数据表结构信息进行应用(apply),还原该指定时刻的完整表结构信息。的完整表结构信息。的完整表结构信息。

【技术实现步骤摘要】
一种还原历史表结构的方法和系统


[0001]本专利技术涉及数据库数据复制技术,尤其涉及了一种还原历史表结构的方法和系统。

技术介绍

[0002]基于日志解析的数据库同步中间件(CDC)技术,是通过接收并解析数据库日志流数据,获取日志流中的表结构事件(TableMap Event),该TableMap Event对象中仅包含对表的基本描述信息,比如列数量,列精度及后续数据的存储格式等,但不包括列名、列编码与列类型等关键信息,故对于后续若要完整解析真正的数据时需要在该步骤中获取完整的表结构信息,现有的解决方案会在此处使用反查数据库等技术方式获取完整表结构信息,但真正的业务使用中,此种处理方式无法解决以下问题:
[0003]在T0~T1的时间内,表结构A发生过增加列的DDL操作,那在处理T0时间段A表的binlog时,拿到的表结构为T1的镜像,就会出现列不匹配的情况;
[0004]在T0~T1发生了增加C1列、删除了C2列,此时拿到的列的总数还是和T0时保持一致,但是对应的列会错位;
[0005]在T0~T1发生了drop table的DDL,此时拿表结构时会出现无法找到表的异常,一直阻塞整个日志解析的处理。
[0006]例如专利名称,数据库DDL变更操作的跟踪方法、装置、系统及介质;专利申请号:CN201910485604.2;申请日为:2019

06

03;专利中:当通过预设的结构化查询语言SQL执行界面接收到SQL语句后,检测所述SQL语句是否符合预设的执行条件;若所述SQL语句符合执行条件,则在所述SQL语句执行成功后获取与所述SQL语句对应的第一DDL变更语句;获取所述SQL语句对应用户的用户信息,将所述用户信息和所述第一DDL变更语句存储至预设数据库中。
[0007]现有技术中是通过binlog解析技术,识别出用户对数据库执行DDL操作,并与原始(第一DDL快照)表结构形成对比,跟踪用户发起的SQL变更与原始表结构异同用于数据库健康监测等场景;现有技术不能快速计算出当前的表结构信息,对历史数据进行回溯或同步数据存在大量时间延迟时。

技术实现思路

[0008]本专利技术针对现有技术中是通过binlog解析技术,识别出用户对数据库执行DDL操作,并与原始(第一DDL快照)表结构形成对比,跟踪用户发起的SQL变更与原始表结构异同用于数据库健康监测等场景;现有技术不能快速计算出当前的表结构信息,对历史数据进行回溯或同步数据存在大量时间延迟时缺点,提供了一种还原历史表结构的方法和系统。
[0009]为了解决上述技术问题,本专利技术通过下述技术方案得以解决:
[0010]一种还原历史表结构的方法,应用于数据同步系统中,其方法包括;
[0011]记录基准数据库表结构信息,获取数据库中所有表结构的信息,所述所有表结构
的信息为所述基准数据库表结构信息;
[0012]记录所有数据库表变更操作信息;
[0013]还原任意时刻点数据库表结构信息,依据所述基准数据库表结构信息和所述数据库表变更操作信息还原任意时刻点数据库表结构信息。
[0014]通过本专利技术的方法,能够在任意时刻,将该时刻前的所有表变更历史操作DDL(SQL)与数据表结构信息进行应用(apply),还原该指定时刻的完整表结构信息
[0015]作为优选,所述数据库表变更操作信息包括对数据库表进行变更的操作语句和操作处于数据库日志中的位点pos。
[0016]作为优选,所述记录所有数据库表变更操作信息的方法包括,捕获数据库表变更操作信息,并记录为D1;解析数据库表变更操作信息,通过SQL解析器解析所述数据库表变更操作信息;应用数据库表变更操作信息,对所述SQL解析器解析后的数据库表变更操作信息与所述基准数据库表结构信息执行DDL操作;输出解析数据库表。
[0017]作为优选,所述还原任意时刻点数据库表结构信息方法为,快照保存,将输出的数据解析表进行快照保存,存储的时间点为checkpoint;任意时刻点数据表结构确定,依据所述快照保存的数据库表结构信息与增量DDL的方式构建任意时间点的数据表结构得到任意时刻点数据表结构。
[0018]作为优选,所述任意时刻点数据表结构确定为快照保存的数据库表结构信息加增量DDL的方式构建任意时间点的数据表结构;回溯位点到任意时间点Tx,对应的表结构为Tx=Cm
(checkpoint)
+Dn,其中,Tx为任意时刻的表结构;Cm为定期checkpoint产生的基准表结构,Dn,为最近的一次Cm以来,数据库表产生的所有DDL记录。
[0019]一种还原历史表结构的系统,应用于数据同步系统中,其包括记录基准数据库表结构信息模块、记录所有数据库表变更操作信息模块和还原任意时刻点数据库表结构信息模块;所述记录基准数据库表结构信息模块通过获取数据库中所有表结构的信息,所有表结构的信息为所述基准数据库表结构信息;
[0020]所述记录所有数据库表变更操作信息模块,所述记录所有数据库表变更操作信息模块用于记录数据库表变更操作信息;
[0021]所述还原任意时刻点数据库表结构信息模块,所述还原任意时刻点数据库表结构信息模块依据所述基准数据库表结构信息和所述数据库表变更操作信息还原任意时刻点数据库表结构信息。
[0022]作为优选,所述数据库表变更操作信息模块包括对数据库表进行变更的操作语句和操作处于数据库日志中的位点pos。
[0023]作为优选,所述记录所有数据库表变更操作信息模块包括捕获模块、解析模块和变更操作信息模块;
[0024]所述捕获模块,所述捕获模块用于获取数据库表变更操作信息,并记录为D1;所述解析模块,所述解析模块用于解析数据库表变更操作信息,通过SQL解析器解析所述数据库表变更操作信息;
[0025]所述变更操作信息模块,所述变更操作信息模块用于应用数据库表变更操作信息,对所述SQL解析器解析后的数据库表变更操作信息与所述基准数据库表结构信息执行DDL操作;输出解析数据库表。
[0026]作为优选,所述还原任意时刻点数据库表结构信息模块包括快照保存模块和结构确定模块;
[0027]所述快照保存模块,所述快照保存模块用于将输出的数据解析表进行快照保存,存储的时间点为checkpoint;
[0028]所述结构确定模块,所述结构确定模块用于对任意时刻点数据表结构确定,依据所述快照保存的数据库表结构信息与增量DDL的方式构建任意时间点的数据表结构得到任意时刻点数据表结构。
[0029]作为优选,所述任意时刻点数据表结构确定模块为所述快照保存的数据库表结构信息加增量DDL的方式构建任意时间点的数据表结构;回溯位点到任意时间点Tx,对应的表结构为Tx=Cm
(checkpoint)
+Dn,其中,Tx为任意时刻的表结构;Cm为定期checkpoint产生的基准表结构,Dn,为最近的一次Cm以本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种还原历史表结构的方法,应用于数据同步系统中,其方法包括;记录基准数据库表结构信息,获取数据库中所有表结构信息,所述表结构信息为基准数据库表结构信息;记录所有数据库表变更操作信息;还原任意时刻点数据库表结构信息,依据所述基准数据库表结构信息和所述数据库表变更操作信息还原任意时刻点数据库表结构信息。2.根据权利要求1所述的一种还原历史表结构的方法,其特征在于,所述数据库表变更操作信息包括对数据库表进行变更的操作语句和操作处于数据库日志中的位点pos。3.根据权利要求1所述的一种还原历史表结构的方法,其特征在于,所述记录所有数据库表变更操作信息的方法包括;捕获数据库表变更操作信息,并记录为D1;解析数据库表变更操作信息,通过SQL解析器解析数据库表变更操作信息;应用数据库表变更操作信息,对所述SQL解析器解析后的数据库表变更操作信息与所述基准数据库表结构信息执行DDL操作;输出解析数据库表。4.根据权利要求1所述的一种还原历史表结构的方法,其特征在于,还原任意时刻点数据库表结构信息方法包括;快照保存,将输出的数据解析表进行快照保存,存储的时间点为checkpoint;任意时刻点数据表结构确定,依据所述快照保存的数据库表结构信息与增量DDL的方式构建任意时间点的数据表结构得到任意时刻点数据表结构。5.根据权利要求4所述的一种还原历史表结构的方法,其特征在于,所述任意时刻点数据表结构确定为所述快照保存的数据库表结构信息加所述增量DDL的方式构建任意时间点的数据表结构;回溯位点到任意时间点Tx,对应的表结构为Tx=Cm
(checkpoint)
+Dn,其中,Tx为任意时刻的表结构;Cm为定期checkpoint产生的基准表结构,Dn,为最近的一次Cm以来,数据库表产生的所有DDL记录。6.一种还原历史表结构的系统,应用于数据同步系统中,其特征在于,包括记录基准数据库表结构信息模块、记录所有数据库表变更操作信息模块和还原任意时刻点数据库表结构信息模块;所述记录基准数据库表结构信息模块通过获取数据库中所有表结构的信息,所述所有表结构的信息为...

【专利技术属性】
技术研发人员:李建辉张文件陈栋罗春李春魏兴华吴炎臧冰凌
申请(专利权)人:杭州沃趣科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1