System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,尤其涉及一种基于wal日志的ddl解析方法、装置、设备及存储介质。
技术介绍
1、日志数据是系统、应用程序或网络设备上发生的所有事件的记录。启用日志记录后,系统可以自动生成日志并带有时间戳。日志数据提供详细信息,例如谁是事件的一部分、发生的时间、发生的位置和方式等。但是,日志数据是一种无法直接获悉其具体执行内容的记录。因此,需要对日志数据进行解析。
2、数据定义语言(data definition language,ddl)用来定义数据库对象,如库、表、列等。ddl日志记录是由数据定义语句生成的元数据操作。对日志进行ddl解析,可以加深ddl事务操作的理解,获取事务在日志中的具体操作记录信息,可用于数据库事务操作的分析和数据的恢复。
3、但是,现有技术中一些数据库不支持基于wal日志的ddl解析。因此,亟待提供一种基于wal日志的ddl解析方法。
技术实现思路
1、本专利技术提供了一种基于wal日志的ddl解析方法、装置、设备及存储介质,以通过判断ddl类型的结束,实现对wal日志的ddl精准解析。
2、根据本专利技术的一方面,提供了一种基于wal日志的ddl解析方法,该方法包括:
3、获取待解析日志;
4、获取所述待解析日志中的标志位信息,并根据所述标志位信息,确定与所述待解析日志对应的资源类型、处理类型以及作用对象;
5、根据所述资源类型、处理类型、以及所述作用对象,确定对应的执行处理
6、在根据所述执行处理函数对待解析日志进行处理时,确定当前所解析的待解析日志所属的ddl类型,并判断当前所解析的待解析日志是否满足预设ddl结束条件;
7、如果当前所解析的待解析日志满足预设ddl结束条件,则根据所述执行结果和所述ddl类型进行拼装,得到ddl解析结果。
8、可选的,获取待解析日志,包括:
9、通过postgres数据库的流复制功能,获取源数据库产生的wal日志;
10、对所述wal日志进行格式转换,并通过拉链法进行日志存储,得到待解析日志。
11、可选的,判断当前所解析的待解析日志是否满足预设ddl结束条件,包括:
12、判断当前所解析的待解析日志是否符合ddl结束特征;或者,判断当前所解析的待解析日志是否出现非预期记录。
13、可选的,判断当前所解析的待解析日志是否符合ddl结束特征,包括:
14、如果当前所解析的待解析日志符合ddl结束特征,且至少两种ddl类型对应所述ddl结束特征时,则根据所述至少两种ddl类型所对应的缓存区进行数据查询;
15、如果在目标ddl类型所对应的目标缓存区中查询到数据,则确定所述目标ddl类型结束。
16、可选的,判断当前所解析的待解析日志是否符合ddl结束特征,包括:
17、如果所述ddl结束特征包括至少两项结束子特征,则通过标志信息对所述待解析日志是否满足各结束子特征进行标注;
18、根据各所述标志信息,判断当前所解析的待解析日志是否符合ddl结束特征。
19、可选的,在确定当前所解析的待解析日志所属的ddl类型之前,还包括:
20、获取源数据库的头文件,并将所述头文件与标准文件进行比对,确定ddl数据结构是否发生变化;
21、当检测到ddl数据结构发生变化时,将所述待解析日志和头文件发送至预设调整平台,并获取所述预设调整平台确定的目标ddl类型所对应的结束条件。
22、可选的,该方法,还包括:
23、当检测到ddl数据结构未发生变化时,获取源数据库的版本号;
24、根据所述版本号,确定源数据库类型,并根据所述源数据库类型对应的特征信息,确定各ddl类型所对应的结束条件。
25、根据本专利技术的另一方面,提供了一种基于wal日志的ddl解析装置,该装置包括:
26、日志获取模块,用于获取待解析日志;
27、记录种类确定模块,用于获取所述待解析日志中的标志位信息,并根据所述标志位信息,确定与所述待解析日志对应的资源类型、处理类型以及作用对象;
28、执行处理函数确定模块,用于根据所述资源类型、处理类型、以及所述作用对象,确定对应的执行处理函数对所述待解析日志进行处理得到执行结果;
29、ddl结束确定模块,用于在根据所述执行处理函数对待解析日志进行处理时,确定当前所解析的待解析日志所属的ddl类型,并判断当前所解析的待解析日志是否满足预设ddl结束条件;
30、ddl解析结果确定模块,用于如果当前所解析的待解析日志满足预设ddl结束条件,则根据所述执行结果和所述ddl类型进行拼装,得到ddl解析结果。
31、根据本专利技术的另一方面,提供了一种电子设备,所述电子设备包括:
32、至少一个处理器;以及
33、与所述至少一个处理器通信连接的存储器;其中,
34、所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本专利技术任一实施例所述的基于wal日志的ddl解析方法。
35、根据本专利技术的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本专利技术任一实施例所述的基于wal日志的ddl解析方法。
36、本专利技术实施例的技术方案,通过获取待解析日志;获取待解析日志中的标志位信息,并根据标志位信息,确定与待解析日志对应的资源类型、处理类型以及作用对象;根据资源类型、处理类型、以及作用对象,确定对应的执行处理函数对待解析日志进行处理得到执行结果;在根据执行处理函数对待解析日志进行处理时,确定当前所解析的待解析日志所属的ddl类型,并判断当前所解析的待解析日志是否满足预设ddl结束条件;如果当前所解析的待解析日志满足预设ddl结束条件,则根据执行结果和ddl类型进行拼装,得到ddl解析结果,解决了基于wal日志的ddl解析问题,可以通过判断ddl类型的结束,实现对日志的ddl精准解析。
37、应当理解,本部分所描述的内容并非旨在标识本专利技术的实施例的关键或重要特征,也不用于限制本专利技术的范围。本专利技术的其它特征将通过以下的说明书而变得容易理解。
本文档来自技高网...【技术保护点】
1.一种基于WAL日志的DDL解析方法,其特征在于,所述方法,包括:
2.根据权利要求1所述的方法,其特征在于,获取待解析日志,包括:
3.根据权利要求1所述的方法,其特征在于,判断当前所解析的待解析日志是否满足预设DDL结束条件,包括:
4.根据权利要求3所述的方法,其特征在于,判断当前所解析的待解析日志是否符合DDL结束特征,包括:
5.根据权利要求3所述的方法,其特征在于,判断当前所解析的待解析日志是否符合DDL结束特征,包括:
6.根据权利要求1所述的方法,其特征在于,在确定当前所解析的待解析日志所属的DDL类型之前,还包括:
7.根据权利要求6所述的方法,其特征在于,还包括:
8.一种基于WAL日志的DDL解析装置,其特征在于,包括:
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的基于WAL日志的DDL解析方法。
...【技术特征摘要】
1.一种基于wal日志的ddl解析方法,其特征在于,所述方法,包括:
2.根据权利要求1所述的方法,其特征在于,获取待解析日志,包括:
3.根据权利要求1所述的方法,其特征在于,判断当前所解析的待解析日志是否满足预设ddl结束条件,包括:
4.根据权利要求3所述的方法,其特征在于,判断当前所解析的待解析日志是否符合ddl结束特征,包括:
5.根据权利要求3所述的方法,其特征在于,判断当前所解析的待解析日志是否符合ddl结束特征,包括:
<...【专利技术属性】
技术研发人员:陶醉,金永顺,杨彬,陈勇铨,胡军擎,
申请(专利权)人:上海英方软件股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。