本申请涉及数据库管理,尤其涉及一种dml语句记录方法、装置、服务器及存储介质。
背景技术:
1、数据库的一种存储数据的方式为:以行和列的形式存储数据。可以理解地,这一系列的行和列被称为表,一组表组成了数据库。当用户需要对数据库进行操作(如添加、删除数据)时,可以记录数据库操作日志。
2、目前,当需要记录每次对数据库的操作对应的dml语句时,需要预先关闭数据库,然后重新配置数据库的日志层级为:能够记录数据库的在操作前的全页数据和操作后的全页数据的等级。然后重新开启数据库,在后续每对数据库操作一次时,会在指定的存储路径记录操作前的全页数据、操作后的全页数据。进而,可以根据记录的操作前的全页数据、操作后的全页数据,生成对应的dml语句。可见,上述的生成dml语句的过程依赖于先关闭数据库并重新配置数据库的日志层级,这样影响数据库的正常运行。
技术实现思路
1、本申请提供一种dml语句记录方法、装置、服务器及存储介质,用于解决现有技术中的生成dml语句的过程依赖于先关闭数据库并重新配置数据库的日志层级,这样影响数据库的正常运行问题。
2、第一方面,本申请提供了一种dml语句记录方法,包括:服务器在第一时刻接收来自用户终端的数据操作dml语句生成指令;服务器从指定的存储路径中,获取第一时长内产生的数据库操作日志。其中,第一时长为上一次对数据库的数据进行备份的第二时刻到第一时刻的间隔时长。数据库操作日志包括在第一时长内第一次对数据库的目标页进行操作前的全页数据、各次操作后被操作的字段对应的数据、各次的操作类型、以及目标页的表结构信息。服务器根据全页数据、各次操作后被操作的字段对应的后像数据、各次的操作类型、以及目标页的表结构信息,生成各次操作对应的dml语句;服务器记录dml语句集合,以执行相应的操作处理。
3、在一种可能的实施方式中,服务器根据全页数据、各次操作后被操作的字段对应的后像数据、各次的操作类型、以及目标页的表结构信息,包括:服务器从第n次操作前的全页数据中,确定第n次操作前的被操作的字段对应的前像数据,其中,n为正整数,当n大于1时,第n次操作前的全页数据是根据第n-1次操作前的全页数据、第n-1次操作对应的dml语句生成的;服务器根据第n次操作前的被操作的字段对应的前像数据、第n次操作后被操作的字段对应的后像数据、第n次的操作类型以及目标页的表结构信息,确定第n次操作对应的dml语句。
4、这样一来,可以快速准确地确定第n次操作对应的dml语句。
5、在一种可能的实施方式中,在服务器在第一时刻接收来自用户终端的数据操作dml语句恢复指令之前,本申请提供的方法还包括:服务器在第一时长内第一次接收到对数据库的目标页的操作指令时,在指定的存储路径记录对数据库的目标页进行第一次操作前的全页数据。
6、在一种可能的实施方式中,在服务器在第一时刻接收来自用户终端的数据操作dml语句恢复指令之前,本申请提供的方法还包括:服务器在第一时长内每次对数据库进行操作时,在指定的存储路径记录被操作后的字段对应的数据、操作类型、以及目标页的表结构信息。
7、在一种可能的实施方式中,dml语句为用于指示数据还原的操作语句,服务器记录dml语句集合之后,本申请提供的方法还包括:服务器在第一时刻之后的第三时刻,接收来自用户终端的数据还原指令;服务器响应于数据还原指令,根据上一次备份的数据库的数据、和dml语句集合,还原处于第一时刻的数据库。
8、可以理解地,根据上一次备份的数据库的数据、和dml语句集合,可以快速准确地还原处于第一时刻的数据库。
9、在一种可能的实施方式中,dml语句为用于指示撤销操作的操作语句,服务器记录dml语句集合之后,本申请提供的方法还包括:服务器在第一时刻之后的第三时刻,接收来自用户终端的撤销指令;服务器响应于撤销指令,根据第三时刻的数据库的数据和dml语句集合,撤销在第一时长内对数据库的操作,以得到处于第二时刻的数据库。
10、可以理解地,根据第三时刻的数据库的数据和dml语句集合,可以快速准确地得到处于第二时刻的数据库。
11、在一种可能的实施方式中,操作类型为删除操作、更新操作、或者添加操作。
12、第二方面,本申请还提供了一种dml语句记录装置,包括:指令接收单元,用于在第一时刻接收来自用户终端的数据操作dml语句生成指令;日志获取单元,用于从指定的存储路径中,获取第一时长内产生的数据库操作日志;其中,第一时长为上一次对数据库的数据进行备份的第二时刻到第一时刻的间隔时长;数据库操作日志包括在第一时长内第一次对数据库的目标页进行操作前的全页数据、各次操作后被操作的字段对应的数据、各次的操作类型、以及目标页的表结构信息;语句生成单元,用于根据全页数据、各次操作后被操作的字段对应的数据、各次的操作类型、以及目标页的表结构信息,生成各次操作对应的dml语句;语句记录单元,用于记录dml语句集合。
13、第三方面,本申请提供了一种服务器,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时,使得服务器执行如第一方面提供的方法。
14、第四方面,本申请还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时,使得计算机执行如第一方面提供的方法。
15、第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,当计算机程序被运行时,使得计算机执行如第一方面提供的方法。
16、本申请提供一种dml语句记录方法、装置、服务器及存储介质,服务器可以从指定的存储路径中,获取第一时长内产生的数据库操作日志。由于数据库操作日志包括在第一时长内第一次对数据库的目标页进行操作前的全页数据、各次操作后被操作的字段对应的后像数据、各次的操作类型、以及目标页的表结构信息。如此,服务器可以直接根据第一次操作前的全页数据、各次操作后被操作的字段对应的后像数据、各次的操作类型、以及目标页的表结构信息,生成各次操作对应的dml语句。相较于现有技术中生成dml语句的过程需要先关闭数据库并重新配置数据库的日志层级而影响数据库正常运行而言,本申请生成dml语句主要依据为第一次操作前的全页数据、各次操作后被操作的字段对应的后像数据,而不是数据库的在操作前的全页数据和操作后的全页数据,从而在生成dml语句时无需关闭数据库,从而使得数据库能够正常运行。
1.一种dml语句记录方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述服务器根据所述全页数据、各次操作后被操作的字段对应的后像数据、各次的操作类型、以及所述目标页的表结构信息,包括:
3.根据权利要求1所述的方法,其特征在于,在所述服务器在第一时刻接收来自用户终端的数据操作dml语句恢复指令之前,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,在所述服务器在第一时刻接收来自用户终端的数据操作dml语句恢复指令之前,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述dml语句为用于指示数据还原的操作语句,所述服务器记录所述dml语句集合之后,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述dml语句为用于指示撤销操作的操作语句,所述服务器记录所述dml语句集合之后,所述方法还包括:
7.根据权利要求1-6任一所述的方法,其特征在于,所述操作类型为删除操作、更新操作、或者添加操作。
8.一种dml语句记录装置,其特征在于,所述装置包括:
9.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,使得所述服务器执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得计算机执行如权利要求1至7任一项所述的方法。