本发明涉及数据库,尤其涉及一种数据库日志时间还原方法、装置、电子设备及存储介质。
背景技术:
1、在数据库系统的运行过程中,日志记录着数据库的所有操作信息,包括数据的增删改查、事务的开始和提交等,是数据库恢复、性能分析等的重要依据。然而,在实际应用中,数据库日志中的数据存储多种多样,这给数据库日志分析带来了诸多挑战。现有技术中,在使用数据库时,对于数据库的日志中的数据存储形式无法分析得到,进而分析工具无法准确解析日志中的数据,导致无法还原出日志中数据的实际值。
技术实现思路
1、为了解决现有技术中存在的上述问题,本发明提供了一种数据库日志时间还原方法、装置、电子设备及存储介质。本发明要解决的技术问题通过以下技术方案实现:
2、本发明实施例第一方面提供一种数据库日志时间还原方法,包括以下步骤:
3、根据多个第一预设时间在数据库日志中对应的第一原始日志值中数字0的个数,确定0的个数最多的第一原始日志值对应的第一预设时间为基准预设时间;其中,所述第一预设时间中的时、分、秒均为0,年、月、日的数字中0的个数大于2;
4、根据预设秒数、所述基准预设时间的第一原始日志值和所述基准预设时间增加预设秒数后的第二预设时间在数据库日志中对应的第二原始日志值的最后一位倒数至第一个非零值之间的0的个数,确定所述预设秒数与十进制数值的倍数关系;
5、根据所述预设秒数与十进制数值的倍数关系以及所述第二预设时间增加24小时后的第三预设时间在数据库日志中对应的第三原始日志值,确定数据库日志中时间的存储方式为十六进制;
6、将待还原时间在数据库日志中以十六进制形式存储的原始日志值转换为十进制形式的待还原中间值;
7、根据所述待还原中间值、所述基准预设时间以及所述预设秒数与十进制数值的倍数关系,确定待还原中间值的实际时间。
8、在本发明的一个实施例中,所述根据所述预设秒数与十进制数值的倍数关系以及所述第二预设时间增加24小时后的第三预设时间在数据库日志中对应的第三原始日志值,确定数据库日志中时间的存储方式为十六进制,包括:
9、根据所述预设秒数与十进制数值的倍数关系,确定所述第二预设时间增加24小时后的第三预设时间的十进制数值;
10、将所述第三预设时间输入数据库中,获取数据库日志中对应的第三原始日志值;
11、判断所述第三原始日志值中是否存在多个字母;
12、若是,判断所述第三原始日志值的最后一位倒数至第一个非零值之间的0的个数是否大于或等于所述第三预设时间的十进制数值的最后一位倒数至第一个非零值之间的0的个数;
13、当所述第三原始日志值的最后一位倒数至第一个非零值之间的0的个数大于或等于所述第三预设时间的十进制数值的最后一位倒数至第一个非零值之间的0的个数时,确定数据库日志中时间的存储方式为十六进制。
14、在本发明的一个实施例中,所述方法还包括:
15、将多个第一预设时间输入数据库中,获取数据库日志中对应的第一原始日志值。
16、在本发明的一个实施例中,所述预设秒数与十进制数值的倍数关系为1秒等于1000000。
17、本发明实施例第二方面提供一种导数据库日志时间还原装置,包括:
18、第一确定模块,用于根据多个第一预设时间在数据库日志中对应的第一原始日志值中数字0的个数,确定0的个数最多的第一原始日志值对应的第一预设时间为基准预设时间;其中,所述第一预设时间中的时、分、秒均为0,年、月、日的数字中0的个数大于2;
19、第二确定模块,用于根据预设秒数、所述基准预设时间的第一原始日志值和所述基准预设时间增加预设秒数后的第二预设时间在数据库日志中对应的第二原始日志值的最后一位倒数至第一个非零值之间的0的个数,确定所述预设秒数与十进制数值的倍数关系;
20、第三确定模块,用于根据所述预设秒数与十进制数值的倍数关系以及所述第二预设时间增加24小时后的第三预设时间在数据库日志中对应的第三原始日志值,确定数据库日志中时间的存储方式为十六进制;
21、转换模块,用于将待还原时间在数据库日志中以十六进制形式存储的原始日志值转换为十进制形式的待还原中间值;
22、第四确定模块,用于根据所述待还原中间值、所述基准预设时间以及所述预设秒数与十进制数值的倍数关系,确定待还原中间值的实际时间。
23、在本发明的一个实施例中,所述根据所述预设秒数与十进制数值的倍数关系以及所述第二预设时间增加24小时后的第三预设时间在数据库日志中对应的第三原始日志值,确定数据库日志中时间的存储方式为十六进制,包括:
24、根据所述预设秒数与十进制数值的倍数关系,确定所述第二预设时间增加24小时后的第三预设时间的十进制数值;
25、将所述第三预设时间输入数据库中,获取数据库日志中对应的第三原始日志值;
26、判断所述第三原始日志值中是否存在多个字母;
27、若是,判断所述第三原始日志值的最后一位倒数至第一个非零值之间的0的个数是否大于或等于所述第三预设时间的十进制数值的最后一位倒数至第一个非零值之间的0的个数;
28、当所述第三原始日志值的最后一位倒数至第一个非零值之间的0的个数大于或等于所述第三预设时间的十进制数值的最后一位倒数至第一个非零值之间的0的个数时,确定数据库日志中时间的存储方式为十六进制。
29、在本发明的一个实施例中,还包括:
30、获取模块,用于将多个第一预设时间输入数据库中,获取数据库日志中对应的第一原始日志值。
31、在本发明的一个实施例中,所述预设秒数与十进制数值的倍数关系为1秒等于1000000。
32、本发明实施例的第三方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明实施例的第一方面提供的一种数据库日志时间还原方法。
33、本发明实施例的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例的第一方面提供的一种数据库日志时间还原方法。
34、本发明的有益效果:
35、本发明通过确定基准时间与十进制数据形式的关系,将时间换算成秒,通过秒数与十进制数据形式的关系以及十六进制形式的关系,可以得到数据库日志的时间数据存储形式,进而能够还原出日志中时间的实际值,从而能够准确高效地分析数据库的日志数据,进而便于对数据库进行性能监控和故障诊断。
36、本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
37、下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
1.一种数据库日志时间还原方法,其特征在于,包括以下步骤:
2.如权利要求1所述的方法,其特征在于,所述根据所述预设秒数与十进制数值的倍数关系以及所述第二预设时间增加24小时后的第三预设时间在数据库日志中对应的第三原始日志值,确定数据库日志中时间的存储方式为十六进制,包括:
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
4.如权利要求2所述的方法,其特征在于,所述预设秒数与十进制数值的倍数关系为1秒等于1000000。
5.一种导数据库日志时间还原装置,其特征在于,包括:
6.如权利要求5所述的装置,其特征在于,所述根据所述预设秒数与十进制数值的倍数关系以及所述第二预设时间增加24小时后的第三预设时间在数据库日志中对应的第三原始日志值,确定数据库日志中时间的存储方式为十六进制,包括:
7.如权利要求6所述的装置,其特征在于,还包括:
8.如权利要求6所述的装置,其特征在于,所述预设秒数与十进制数值的倍数关系为1秒等于1000000。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述的数据库日志时间还原方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的数据库日志时间还原方法。