一种针对数据库的表结构变更监测方法、设备及介质与流程

专利2026-06-09  6


本申请涉及计算机,尤其涉及一种针对数据库的表结构变更监测方法、设备及介质。


背景技术:

1、在项目开发过程中,数据库实例是一对多的,一是指开发环境,多是指测试环境及多种生产环境,不同环境的数据库因业务不同和更新程度不同而存在差异,研发人员往往很难记录数据库的变更情况以及每个数据库目前的情况,这就容易导致更新数据库表结构时出现表遗漏、字段遗漏以及字段设置不符等情况,使得程序报错。

2、目前,在记录并查看表结构变更历史时,一般需要借助数据库日志及开发工具,数据库有mysql、oracle等,其中,mysql数据库查看表结构变更历史依赖于日志文件,需要用mysqlbinlog或其它开发工具来分析日志,这基于默认情况下的mysql设置,不同版本的mysql可能存在些微差异。而oracle数据库也是通过日志文件分析获取操作历史记录。内置的审计功能和flashback功能,可以查看数据库中包括登录、ddl语句、dml语句等各种操作和某个时间点的操作历史记录。

3、但是,数据库日志中dml语句及ddl语句是一起被记录的,不够直观,一段时间内的表结构变更,需要研发人员自己辨别并生成更新语句,此外,开发工具对于同一个数据库不同时间点的情况对比也需要依赖两个时间点的数据库历史记录,导致针对数据库的表结构变更监测效率和准确率低下。


技术实现思路

1、本申请实施例提供一种针对数据库的表结构变更监测方法、设备及介质,用于解决针对数据库的表结构变更监测效率低下的问题。

2、本申请实施例采用下述技术方案:

3、一方面,本申请实施例提供了一种针对数据库的表结构变更监测方法,该方法包括:在预设周期内,获取数据库的多个表结构,将所述多个表结构存储至指定仓库;接收目的表结构的对比请求,所述对比请求包括第一时间点的目的表结构与第二时间点的源表结构;所述第一时间点晚于所述第二时间点;对所述目的表结构进行解析,获取目的表结构信息,以及对所述源表结构进行解析,得到源表结构信息;将所述目的表结构信息与所述源表结构信息进行对比,生成表结构差异信息;通过预先设定的语句模型与所述表结构差异信息,生成针对所述源表结构的同步语句。

4、一个示例中,所述获取数据库的多个表结构,将所述多个表结构存储至指定仓库,具体包括:确定预先构建的控制参数;根据所述控制参数,确定导出对象为表结构,从所述数据库获取多个表结构;为每个表结构分别生成一个文件,基于文件的形式,将每个表结构分别存储至指定仓库。

5、一个示例中,所述对所述目的表结构进行解析,获取目的表结构信息,具体包括:确定目的表结构在文件中的显示方式为创建语句形式;根据所述创建语句形式的格式,将所述目的表结构解析为语法树对象;基于设定的语法树对象遍历模型,对所述语法树对象进行遍历,得到所述目的表结构信息。

6、一个示例中,所述将所述目的表结构信息与所述源表结构信息进行对比,生成表结构差异信息,具体包括:确定所述目的表结构信息包括目的表名和目的字段信息,所述源表结构信息包括源表名和源字段信息;通过正则表达式对所述目的字段信息进行提取,得到目的字段名称和目的字段类型,以生成所述目的表结构的目的字段对象;通过正则表达式对所述源字段信息进行提取,得到源字段名称和源字段类型,以生成所述源表结构的源字段对象;根据所述目的字段对象与所述源字段对象,生成表结构差异信息。

7、一个示例中,所述根据所述目的字段对象与所述源字段对象,生成表结构差异信息,具体包括:将源字段名称确定为源表结构的唯一标识,将目的字段名称确定为目的表结构的唯一标识;基于唯一标识,将所述源字段对象的字段内容和字段类型,与所述目的字段对象的字段内容和字段类型进行对比,生成表结构差异信息。

8、一个示例中,所述通过预先设定的语句模型与所述表结构差异信息,生成针对所述源表结构的同步语句,具体包括:确定字段增删改查的固定格式语句;将所述表结构差异信息输入所述固定格式语句,生成针对所述源表结构的同步语句。

9、一个示例中,所述通过预先设定的语句模型与所述表结构差异信息,生成针对所述源表结构的同步语句,具体包括:基于运维人员的操作,将所述同步语句部署至源数据表所处于的客户服务端,以在所述客户服务端,基于所述同步语句,对源数据表进行更新,得到所述目的数据表。

10、一个示例中,所述在预设周期内,获取数据库的多个表结构,将所述多个表结构存储至指定仓库之前,所述方法还包括:确定对所述数据库进行操作的低峰期;基于所述低峰期,生成所述数据库的定时任务,以在启动所述定时任务时,获取数据库的多个表结构。

11、另一方面,本申请实施例提供了一种针对数据库的表结构变更监测设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:在预设周期内,获取数据库的多个表结构,将所述多个表结构存储至指定仓库;接收目的表结构的对比请求,所述对比请求包括第一时间点的目的表结构与第二时间点的源表结构;所述第一时间点晚于所述第二时间点;对所述目的表结构进行解析,获取目的表结构信息,以及对所述源表结构进行解析,得到源表结构信息;将所述目的表结构信息与所述源表结构信息进行对比,生成表结构差异信息;通过预先设定的语句模型与所述表结构差异信息,生成针对所述源表结构的同步语句。

12、另一方面,本申请实施例提供了一种针对数据库的表结构变更监测非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:在预设周期内,获取数据库的多个表结构,将所述多个表结构存储至指定仓库;接收目的表结构的对比请求,所述对比请求包括第一时间点的目的表结构与第二时间点的源表结构;所述第一时间点晚于所述第二时间点;对所述目的表结构进行解析,获取目的表结构信息,以及对所述源表结构进行解析,得到源表结构信息;将所述目的表结构信息与所述源表结构信息进行对比,生成表结构差异信息;通过预先设定的语句模型与所述表结构差异信息,生成针对所述源表结构的同步语句。

13、本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:

14、能够通过获取数据表结构,并且将数据表结构存储至指定仓库,实现在利用数据库表结构与数据分开的特性的同时,定期导出数据库的表结构将其存储在仓库中,通过不同时间点的表结构之间的对比,生成数据库结构变更记录,并支持通过选择时间点和数据库来展示对比情况并自动生成更新语句,也能够易于研发人员和数据库运维人员直观查看数据库表结构变更历史情况,高效获取数据库表结构的同步语句,最终提高针对数据库的表结构变更监测效率和准确率。



技术特征:

1.一种针对数据库的表结构变更监测方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述获取数据库的多个表结构,将所述多个表结构存储至指定仓库,具体包括:

3.根据权利要求2所述的方法,其特征在于,所述对所述目的表结构进行解析,获取目的表结构信息,具体包括:

4.根据权利要求1所述的方法,其特征在于,所述将所述目的表结构信息与所述源表结构信息进行对比,生成表结构差异信息,具体包括:

5.根据权利要求4所述的方法,其特征在于,所述根据所述目的字段对象与所述源字段对象,生成表结构差异信息,具体包括:

6.根据权利要求1所述的方法,其特征在于,所述通过预先设定的语句模型与所述表结构差异信息,生成针对所述源表结构的同步语句,具体包括:

7.根据权利要求1所述的方法,其特征在于,所述通过预先设定的语句模型与所述表结构差异信息,生成针对所述源表结构的同步语句,具体包括:

8.根据权利要求1所述的方法,其特征在于,所述在预设周期内,获取数据库的多个表结构,将所述多个表结构存储至指定仓库之前,所述方法还包括:

9.一种针对数据库的表结构变更监测设备,其特征在于,包括:

10.一种针对数据库的表结构变更监测非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:


技术总结
本申请公开了一种针对数据库的表结构变更监测方法、设备及介质,方法包括:在预设周期内,获取数据库的多个表结构,将多个表结构存储至指定仓库;接收目的表结构的对比请求,对比请求包括第一时间点的目的表结构与第二时间点的源表结构;第一时间点晚于第二时间点;对目的表结构进行解析,获取目的表结构信息,以及对源表结构进行解析,得到源表结构信息;将目的表结构信息与源表结构信息进行对比,生成表结构差异信息;通过预先设定的语句模型与表结构差异信息,生成针对源表结构的同步语句。能够易于研发人员和数据库运维人员直观查看数据库表结构变更历史情况,高效获取数据库表结构的同步语句。

技术研发人员:秦聪聪,赵子墨,郭亚琨
受保护的技术使用者:浪潮卓数大数据产业发展有限公司
技术研发日:
技术公布日:2024/7/25
转载请注明原文地址: https://bbs.8miu.com/read-440818.html

最新回复(0)