一种基于分布式数据库的数据回溯方法、装置及介质与流程

文档序号:36395383发布日期:2023-12-15 17:33阅读:16来源:国知局
一种基于分布式数据库的数据回溯方法与流程

本发明涉及数据处理,尤其涉及一种基于分布式数据库的数据回溯方法、装置及介质。


背景技术:

1、在分布式数据库使用中,无论是开发、测试还是dba(database administrator,数据库管理员),都难免会涉及到对数据库的操作,所以会存在人为对数据库操作失误的情况,比如:使用delete删除用户数据时where条件写错了,或者没有带where条件,导致误删了大量用户;使用update更新银行卡余额时,一次性把所有用户的金额都更新了。

2、目前,分布式数据库存在多个dn(data node,数据节点),在对分布式数据库进行操作的时候,会将操作请求落到1个或多个dn中,当出现需要数据回溯的场景时:如图1所示,通过每个dn的物理备份进行回溯,采用全备+增备+应用binlog(二进制日志)的方法,在临时实例集群中回溯到指定的时间点,然后对比误操作后的数据和临时实例中回溯到指定时间点的数据,比对结束后,将正确数据回溯到原分布式数据库集群中。

3、然而,现有分布式集群数据回溯方法有以下缺点:耗费资源较多,成本高且回溯场景单一,只能将全量数据快照回溯到某一时间点,无法针对某一具体事务进行回溯。


技术实现思路

1、本发明所要解决的技术问题是针对现有技术的上述不足,提供一种基于分布式数据库的数据回溯方法、装置及介质,用以解决现有分布式集群数据回溯方法耗费资源较多,成本高且回溯场景单一的问题。

2、第一方面,本发明提供一种基于分布式数据库的数据回溯方法,包括:

3、获取分布式数据库集群配置信息以及误操作的时间点和语句;

4、根据所述分布式数据库集群配置信息以及所述误操作的时间点和语句,得到数据回溯配置表和数据回溯规则表;

5、根据所述数据回溯配置表和所述数据回溯规则表,生成本次数据回溯对应的一个或多个反结构化查询语言sql文件;

6、对所有反sql文件进行事务合并,得到目标反sql文件;

7、将所述目标反sql文件在所述分布式数据库集群中进行执行,以完成数据回溯。

8、进一步地,所述根据所述分布式数据库集群配置信息以及所述误操作的时间点和语句,得到数据回溯配置表和数据回溯规则表,具体包括:

9、将所述分布式数据库集群配置信息写入预先建立的所述数据回溯配置表;

10、将所述误操作的时间点和语句写入预先建立的所述数据回溯规则表。

11、进一步地,所述误操作的语句包括误操作的语句类型和表名,所述根据所述数据回溯配置表和所述数据回溯规则表,生成本次数据回溯对应的一个或多个反结构化查询语言sql文件,具体包括:

12、根据所述数据回溯配置表和所述数据回溯规则表,获取误操作的表结构;

13、根据所述数据回溯规则表中的误操作的时间点、误操作的语句类型、表名以及所述表结构,解析所述分布式数据库集群对应的所有数据节点dn的二进制日志binlog文件;

14、将解析后的每个所述dn的binlog文件进行事务级回溯,得到一个或多个所述反sql文件。

15、进一步地,所述根据所述数据回溯规则表中的误操作的时间点、误操作的语句类型、表名以及所述表结构,解析所述分布式数据库集群对应的所有数据节点dn的二进制日志binlog文件之前,所述方法还包括:

16、针对所述分布式数据库集群对应的每个dn,分别执行以下步骤:

17、根据所述数据回溯配置表中的分布式数据库集群配置信息和所述数据回溯规则表中的误操作的时间点,判断所述dn是否存在所述误操作的时间点对应的binlog文件;

18、如果所述dn存在所述误操作的时间点对应的binlog文件,则拉取所述binlog文件;

19、如果所述dn不存在所述误操作的时间点对应的binlog文件,则从预设的备份机上拉取所述binlog文件。

20、进一步地,如果所述dn存在所述误操作的时间点对应的binlog文件,则拉取所述binlog文件,具体包括:

21、如果所述dn存在所述误操作的时间点对应的binlog文件,进一步判断所述binlog文件是否正在写入;

22、如果所述binlog文件正在写入,则将所述binlog文件进行刷新,并拉取刷新后的所述binlog文件;

23、如果所述binlog文件并非正在写入,则直接拉取所述binlog文件。

24、进一步地,所述将解析后的每个所述dn的binlog文件进行事务级回溯,得到一个或多个所述反sql文件之后,所述方法还包括:

25、将一个或多个所述反sql文件存放到预先设置的系统目录结构中。

26、进一步地,所述对所有反sql文件进行事务合并,得到目标反sql文件,具体包括:

27、对所述系统目录结构中的所有反sql文件按照时间点汇聚,并进行事务合并,得到所述目标反sql文件。

28、第二方面,本发明提供一种基于分布式数据库的数据回溯装置,包括:

29、获取模块,用于获取分布式数据库集群配置信息以及误操作的时间点和语句;

30、第一得到模块,与所述获取模块连接,用于根据所述分布式数据库集群配置信息以及所述误操作的时间点和语句,得到数据回溯配置表和数据回溯规则表;

31、生成模块,与所述第一得到模块连接,用于根据所述数据回溯配置表和所述数据回溯规则表,生成本次数据回溯对应的一个或多个反结构化查询语言sql文件;

32、第二得到模块,与所述生成模块连接,用于对所有反sql文件进行事务合并,得到目标反sql文件;

33、执行模块,与所述第二得到模块连接,用于将所述目标反sql文件在所述分布式数据库集群中进行执行,以完成数据回溯。

34、第三方面,本发明提供一种基于分布式数据库的数据回溯装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现上述第一方面所述的基于分布式数据库的数据回溯方法。

35、第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的基于分布式数据库的数据回溯方法。

36、本发明提供的基于分布式数据库的数据回溯方法、装置及介质,首先获取分布式数据库集群配置信息以及误操作的时间点和语句;然后根据所述分布式数据库集群配置信息以及所述误操作的时间点和语句,得到数据回溯配置表和数据回溯规则表;再根据所述数据回溯配置表和所述数据回溯规则表,生成本次数据回溯对应的一个或多个反结构化查询语言sql文件;并对所有反sql文件进行事务合并,得到目标反sql文件;最后将所述目标反sql文件在所述分布式数据库集群中进行执行,以完成数据回溯。本发明通过生成反sql文件并进行事务合并的方式,保证了分布式数据库数据回溯的一致性,通过目标反sql文件对具体的事务进行自由回溯,从而提高了灵活性,并且不需要新建分布式数据库集群,降低了使用成本,解决了现有分布式集群数据回溯方法耗费资源较多,成本高且回溯场景单一的问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1