CN114443365A - 一种数据库的闪回处理方法、装置和电子设备 - Google Patents
一种数据库的闪回处理方法、装置和电子设备 Download PDFInfo
- Publication number
- CN114443365A CN114443365A CN202111630714.7A CN202111630714A CN114443365A CN 114443365 A CN114443365 A CN 114443365A CN 202111630714 A CN202111630714 A CN 202111630714A CN 114443365 A CN114443365 A CN 114443365A
- Authority
- CN
- China
- Prior art keywords
- database
- operation instruction
- truncation
- statement
- flashback
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据库的闪回处理方法、装置和电子设备,用于解决数据库的闪回处理不准确的技术问题。该方法包括:在第一时刻获取第一操作指令,第一操作指令用于指示用户对数据库的修改操作;其中,第一操作指令包括用于截断数据库中第一表的截断语句;对第一表进行压缩备份,得到第一表的压缩文件;在第二时刻获取第二操作指令,第二操作指令用于指示将数据库闪回到第一时刻之前的状态;根据第一表的压缩文件,将第一表恢复到数据库中。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据库的闪回处理方法、装置和电子设备。
背景技术
闪回数据库指的是将数据库恢复到之前某一时刻的状态,之前某一时刻与执行闪回数据库的时刻之间对于数据库相关的修改操作,会被撤销或称回滚。
目前,通常基于数据库的操作日志进行逆操作,实现对于数据库的闪回处理。但对于截断表这类修改操作来说,由于无法从操作日志中确定该项操作对应的数据库修改内容,一般会默认放弃截断表的恢复。导致数据库的闪回处理并不准确,截断表的丢失也可能会导致数据库相关的运行出错。
发明内容
本申请实施例提供一种闪回处理方法、装置和电子设备,能够提升数据库闪回的准确性。
第一方面,本申请实施例提供一种数据库的闪回处理方法,包括:在第一时刻获取第一操作指令,所述第一操作指令用于指示用户对数据库的修改操作;其中,所述第一操作指令包括用于截断所述数据库中第一表的截断语句;对所述第一表进行压缩备份,得到所述第一表的压缩文件;在第二时刻获取第二操作指令,所述第二操作指令用于指示将所述数据库闪回到所述第一时刻之前的状态;根据所述第一表的压缩文件,将所述第一表恢复到所述数据库中。通过这样的设计,可以撤销截断语句对应的操作,提升数据库闪回的准确性。
在一种可能的设计中,在所述第一时刻之前,所述数据库中至少一个表配置有截断触发器,所述至少一个表包括所述第一表,所述截断触发器用于拦截所述截断语句;所述方法还包括:在获取到所述第一操作指令时,利用所述截断触发器对所述第一表进行压缩备份。通过设计截断触发器对数据库中的相关表进行保护,便于相关表对应的截断操作的撤销。
在一种可能的设计中,所述对所述第一表进行压缩备份,得到所述第一表的压缩文件,包括:对所述第一表进行压缩,将所述第一表的压缩文件保存至设定的备份空间。配置截断表的备份空间,能够避免对其他数据的干扰,便于快速读取截断表的压缩文件。
在一种可能的设计中,所述根据所述第一表的压缩文件,将所述第一表恢复到所述数据库中,包括:从所述备份空间获取所述第一表的压缩文件;对所述第一表的压缩文件进行解压,将解压得到的所述第一表恢复到所述数据库中。
在一种可能的设计中,所述方法还包括:在所述第二时刻之前执行所述第一操作指令,并将所述第一操作指令对应的操作记录保存到所述数据库的日志文件中;在所述第二时刻获取到所述第二操作指令时,根据所述日志文件对所述第一操作指令对应的操作记录进行解析,生成所述第一操作指令对应的逆向操作闪回语句。通过这样的设计,结合操作日志和截断表的备份,能够快速将截断表恢复到数据库中。
在一种可能的设计中,所述将所述第一表恢复到所述数据库中,包括:根据所述第一操作指令对应的逆向操作闪回语句,将所述第一表恢复到所述数据库中。
在一种可能的设计中,所述第一操作指令还包括以下一种或多种语句:删除语句、插入语句或更新语句。
第二方面,本申请实施例提供一种数据库的闪回处理装置,所述装置包括:获取模块,用于在第一时刻获取第一操作指令,所述第一操作指令用于指示用户对数据库的修改操作;其中,所述第一操作指令包括用于截断所述数据库中第一表的截断语句;处理模块,用于对所述第一表进行压缩备份,得到所述第一表的压缩文件;获取模块,用于在第二时刻获取第二操作指令,所述第二操作指令用于指示将所述数据库闪回到所述第一时刻之前的状态;处理模块,用于根据所述第一表的压缩文件,将所述第一表恢复到所述数据库中。通过这样的设计,可以撤销截断语句对应的操作,提升数据库闪回的准确性。
在一种可能的设计中,在所述第一时刻之前,所述数据库中至少一个表配置有截断触发器,所述至少一个表包括所述第一表,所述截断触发器用于拦截所述截断语句;所述处理模块,还用于在通信模块获取到所述第一操作指令时,利用所述截断触发器对所述第一表进行压缩备份。通过设计截断触发器对数据库中的相关表进行保护,便于相关表对应的截断操作的撤销。
在一种可能的设计中,所述处理模块,还用于对所述第一表进行压缩,将所述第一表的压缩文件保存至设定的备份空间。配置截断表的备份空间,能够避免对其他数据的干扰,便于快速读取截断表的压缩文件。
在一种可能的设计中,获取模块,还用于从所述备份空间获取所述第一表的压缩文件;处理模块,还用于对所述第一表的压缩文件进行解压,将解压得到的所述第一表恢复到所述数据库中。
在一种可能的设计中,处理模块,还用于在所述第二时刻之前执行所述第一操作指令,并将所述第一操作指令对应的操作记录保存到所述数据库的日志文件中;在所述第二时刻获取到所述第二操作指令时,根据所述日志文件对所述第一操作指令对应的操作记录进行解析,生成所述第一操作指令对应的逆向操作闪回语句。通过这样的设计,结合操作日志和截断表的备份,能够快速将截断表恢复到数据库中。
在一种可能的设计中,处理模块,还用于根据所述第一操作指令对应的逆向操作闪回语句,将所述第一表恢复到所述数据库中。
在一种可能的设计中,所述第一操作指令还包括以下一种或多种语句:删除语句、插入语句或更新语句。
第三方面,本申请实施例提供一种电子设备,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时执行第一方面中的任一种可选实施方式包括的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行第一方面中的任一种实施方式包括的步骤。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例。
图1为本申请实施例提供的一种数据库的闪回处理方法的流程示意图;
图2为本申请实施例提供的一种数据库的数据回收流程示意图;
图3为本申请实施例提供的另一种数据库的闪回处理方法的流程示意图;
图4为本申请实施例提供的一种数据库的闪回处理装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
本申请实施例中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例中,“至少一个”可以表示至少两个,例如可以是两个、三个或者更多个,本申请实施例不做限制。
另外,本申请实施例中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,在不做特别说明的情况下,一般表示前后关联对象是一种“或”的关系。
目前,通常基于数据库的操作日志进行逆操作,实现对于数据库的闪回处理。对于截断表的操作,由于从操作日志中无法确定该项操作对应的数据库修改内容,一般会默认放弃截断表的恢复。这样的方式导致数据库的闪回处理并不准确,且截断表的丢失可能会导致数据库相关的运行出错。
基于此,本申请实施例提供一种数据库的闪回处理方法、装置和电子设备,可以对截断表进行备份保存,并数据库需要闪回处理时,基于备份将截断表恢复到数据库中,能够提升数据库闪回的准确性。本申请实施例可应用于数据库故障恢复、数据库的误操作数据恢复等场景。
为了更好的理解,下面通过说明书附图以及具体实施例对本申请技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
实施例1
参见图1示意一种数据库的闪回处理方法,该方法包括如下步骤:
S101,在第一时刻获取第一操作指令。
其中,所述第一操作指令用于指示用户对数据库的修改操作;所述第一操作指令包括用于截断所述数据库中第一表的截断(truncate)语句。该截断语句还可以描述为截断表语句,截断表语句为一种结构化查询语言(structured query language,SQL)语句,可以记作TRUNCATE TABLE XX;其中,“XX”表示相关表的名称,截断表语句可以删除相关表的所有行。在步骤中S101截断表语句作用于第一表,可以删除第一表中的所有行。第一表可以指的是数据库中的任意一个表文件。
示例性的,数据库(database,DB)可以为关系型数据库管理系统(relationaldatabase management system,RDBMS),例如MySQL、或者PostgreSQL等。本申请实施例中的用户可以是数据库管理员(database administrator,DBA)或者可以操作数据库的普通用户。
S102,对所述第一表进行压缩备份,得到所述第一表的压缩文件。
具体地,可以对所述第一表(即第一表的数据或称第一表的文件信息)进行压缩,并将所述第一表的压缩文件保存至设定的备份空间。其中,该备份空间可以为针对数据库配置的回收站。例如可以通过拷贝(COPY)命令将第一表的压缩文件拷贝到备份空间。并记录截断表操作的事务信息,如记录用于指示对第一表执行截断语句的事务ID。
一种可选的实施方式,可以在所述第一时刻之前,针对所述数据库中至少一个表配置截断触发器,所述至少一个表包括所述第一表。该截断触发器的作用是拦截(或称识别)第一表对应的截断语句。则在获取到所述第一操作指令时,利用所述截断触发器对所述第一表进行压缩备份。基于截断触发器能够方便快捷的对表进行压缩备份,且对用户透明。配置有截断触发器的表可以理解为截断保护的表。另外可以理解的是,实际应用时可以由用户配置数据库中的前述至少一个表,在被执行截断语句后,可以通过备份的方式进行后续恢复。基于用户配置实现对至少一个表的截断保护,更为灵活。
另一种可选的实施方式,可以针对数据库配置定时清理策略,该定时清理策略可以包括:周期性地或者按照设定时刻对数据库中的至少一个表执行清理操作,也即执行如S101中描述的截断表语句。示例性的,周期性可以是每隔一定时间如5天对至少一个表执行清理操作;设定时段可以是每天晚上的6:30,或者每个周一的中午12:00等,对至少一个表执行清理操作。对于该情况,可以理解S101的第一操作指令中的截断语句是由定时清理策略自动触发的,第一时刻满足定时清理策略中某一周期或者设定时刻。
进一步可选的,对于备份空间中保存的表的压缩文件,也可以配置定时清理策略。这样的设计可以节省磁盘空间。具体地针对备份空间的定时清理策略可以由实际情况设定,本申请实施例对此不进行限制。
S103,在第二时刻获取第二操作指令,所述第二操作指令用于指示将所述数据库闪回到所述第一时刻之前的状态。
可以理解的是,第一时刻提前于第二时刻,且第一时刻和第二时刻之间包括执行第一操作指令的时间。
S104,根据所述第一表的压缩文件,将所述第一表恢复到所述数据库中。
具体地,对应S102中描述的备份空间保存有第一表的压缩文件。该S104可以具体由如下方式实现:从所述备份空间获取所述第一表的压缩文件;对所述第一表的压缩文件进行解压,将解压得到的所述第一表恢复到所述数据库中。
具体地,将解压得到的所述第一表恢复到所述数据库中可以参照如下方式实施:生成第一表对应的截断语句的逆向操作闪回语句,进而根据第一表对应的截断语句的逆向操作闪回语句,将解压得到的所述第一表导入到所述数据库中。可选的,对应S102中描述的事务ID,可以根据该事务ID生成第一表对应的截断语句的逆向操作闪回语句。截断语句的逆向操作闪回语句还可以描述为导入语句。
示例性的,以第一表为例,参见图2示意一种数据库的数据回收流程示意图。S211,数据库所在的计算机系统接收用户的配置,来确定用户选择在数据库中进行截断保护的第一表;S212,数据库所在的计算机系统针对该第一表创建截断触发器。S221,数据库所在的计算机系统接收来自前述第一操作指令,确定前述第一表对应的截断语句,即确定对第一表进行截断操作;S222,利用第一表的截断触发器执行备份,保存第一表的压缩文件到备份空间。S231,数据库所在的计算机系统接收来自前述第二操作指令,确定恢复第一表;S232,从备份空间中获取第一表的压缩文件,进行第一表的恢复。
本申请实施例,通过引入透明数据回收站的方式,将截断保护的表数据压缩保存到备份空间,在需要回滚截断操作时,再通过解压向数据库导入备份的表文件。解决了现有技术无法闪回截断语句的问题,提升了数据库闪回处理的准确性,完整性。能够帮助数据库管理员快速的恢复误操作的数据,缩短数据库的故障时间,降低对数据库相关应用的影响。
实施例2
本实施例中,针对数据库闪回对应需要恢复截断表之外,还需恢复其他诸如删除、更新、插入对应的操作的情况,介绍另一种数据库的闪回处理方法。
示例性的,参见图3示意另一种数据库的闪回处理方法,该方法包括如下步骤。
S301,在第一时刻获取第一操作指令。
所述第一操作指令用于指示用户对数据库的修改操作;其中,所述第一操作指令包括用于截断所述数据库中第一表的截断语句。关于截断语句的定义可以参照S101理解,本申请实施例对此不再进行赘述。
此外,所述第一操作指令还包括数据库操纵语言(data manipulation language,DML)类型的语句,DLM类型的语句包括删除(delete)语句、插入(insert)语句、更新(update)语句。也即第一操作指令还可以包括如下一种或多种语句:删除(delete)语句、插入(insert)语句或更新(update)语句。
S302,执行所述第一操作指令,并将所述第一操作指令对应的操作记录保存到所述数据库的日志文件中。
具体地,该日志文件可以是预写日志系统(write-ahead logging,WAL)。预写日志系统是一种数据库中高效的日志算法,采用追加写的方式,可以高效的将用户的修改操作记录到日志文件。预写日志系统被广泛应用到数据库的流复制,逻辑复制,数据库故障恢复等场景。此外,数据库的日志文件还可以描述为数据库的操作日志。
具体地,对于截断语句对应的操作,前述日志文件中记录的是用于表示用户执行了截断语句这个事务,但不记录被执行截断语句的表中的原有数据。例如,日志文件记录的是截断语句对应的事务ID。对于DML类型的语句所对应的操作,日志文件可以具体记录执行DML类型的语句所对应的表、表中的行列位置或者表的数据等。
可选的,执行第一操作指令时,可以同时或者按照每次一个逐个执行第一操作指令中包括的语句。此外需要说明的是,逐个执行语句的顺序可以根据实际的用户操作确定,本申请实施例对于逐个执行语句的顺序并不进行限制。下面通过示例1和示例2对于逐个执行语句进行举例说明。
示例1,第一操作指令包括第一表对应的截断语句、插入语句、更新语句和删除语句。以tb1表示第一表,逐个执行语句为例,第一操作指令可以分为如下步骤T1~T4来执行。
T1,截断tb1:truncate tb1;
T2,向tb1插入数据:insert into tb2(id,name)values(3,‘test3’);
T3,对tb1中的数据进行更新:update tb1 set name=‘test33’where id=1;
T4,删除tb1中的部分数据:delete from tb1where id=3and name=‘test33’。
示例2,在示例1的基础上,第一操作指令还包括在对第一表进行截断之前的DML类型语句。如向第一表插入数据。以tb1表示第一表,逐个执行语句为例,第一操作指令可以分为如下步骤T0~T4来执行。
T0,向tb1插入数据:insert into tb1(id,name)values(1,‘test1’),(1,‘test2’);
T1,截断tb1:truncate tb1;
T2,向tb1插入数据:insert into tb2(id,name)values(3,‘test3’);
T3,对tb1中的数据进行更新:update tb1 set name=‘test33’where id=1;
T4,删除tb1中的部分数据:delete from tb1where id=3and name=‘test33’。
S303,对所述第一表进行压缩备份,得到所述第一表的压缩文件。
该步骤可参照S102实施,本申请实施例对此不再进行赘述。
此外需要说明的是,本申请实施例对S302和S303的执行顺序不进行限制,可以同时执行S302和S303;或者先执行S302后执行S303;或者先执行S303后执行S302。
S304,在第二时刻获取第二操作指令,所述第二操作指令用于指示将所述数据库闪回到所述第一时刻之前的状态。
可以理解的是,第一时刻提前于第二时刻,且第一时刻和第二时刻之间包括执行第一操作指令的时间。
例如,对应S302中的示例1,将数据库闪回到第一时刻之前的状态,可以表示撤销或称回滚了T1~T4所对应的操作;对应S302中的示例2,将数据库闪回到第一时刻之前的状态,可以表示撤销或称回滚了T0~T4所对应的操作。
S305,根据所述日志文件对所述第一操作指令对应的操作记录进行解析,生成所述第一操作指令对应的逆向操作闪回语句。
以日志文件是WAL日志为例,WAL日志文件保存所述第一操作指令对应的操作记录。可以通过日志解析插件,读取与前述操作记录相关的WAL日志流,对该WAL日志流进行解析得到具体的操作事务语句,从而快速生成与所述第一操作指令对应的逆向操作闪回语句。
具体地,根据操作事务语句,可以确定第一操作指令中包括的语句的类型,即截断语句以及其他DML类型的语句。此外,根据操作事务语句,还可以获取截断语句对应的事务ID。进而根据该事务ID,可以确定从备份空间获取事务ID对应的表的压缩文件,如前述第一表的压缩文件。
S306,根据第一操作指令对应的逆向操作闪回语句以及第一表的压缩文件,回滚第一操作指令对应的修改操作。
其中,第一操作指令对应的逆向操作闪回语句包括第一操作指令中各个SQL语句对应的逆向操作闪回语句。例如,截断语句对应的逆向操作闪回语句为导入语句,表示为COPY。其他DNL类型语句:诸如删除语句对应的逆向操作闪回语句为插入语句,表示为insert;插入语句对应的逆向操作闪回语句为删除语句,表示为delete;更新语句对应的逆向操作闪回语句仍为更新语句,但是更新的数据不同,表示为update。
对于回滚截断语句对应的修改操作而言,可以对从备份空间获取的所述第一表的压缩文件进行解压,并根据导入语句,将解压得到的所述第一表恢复到所述数据库中。对于回滚其他DML类型语句对应的修改操作而言,可以根据其他DML类型语句对应的逆向操作闪回语句,对数据库中的相关数据进行恢复。
示例性的,对应S302中描述的示例1,该步骤中的回滚操作可以通过如下步骤T4’~T1’实施。
T4’(对应前述示例1的T4),向tb1中插入数据:insert into tb2(id,name)values(3,‘test33’);
T3’(对应前述示例1的T3),对tb1中的数据进行更新:update tb1 set name=‘test3’where id=1and name=“test33”;
T2’(对应前述示例1的T2),删除tb1中的部分数据:delete from tb1where id=3and name=‘test3’;
T1’(对应前述示例1的T1),导入tb1:COPY tb1 FROM PROGARM‘gunzip<data/apps/pg/backup/1121_tb1.gz>’;其中,<>中的内容为一个示例目录地址,表示备份空间中tb1的压缩文件的存储位置。
本申请实施例中,在执行语句中包含截断语句时,将截断保护的表数据压缩保存到备份空间,在需要回滚截断执行语句相关的操作时,结合操作日志和备份的截断表文件,能够保证数据闪回处理的准确性,完整性。能够帮助数据库管理员快速的恢复误操作的数据,缩短数据库的故障时间,降低对数据库相关应用的影响。
基于同一构思,本申请实施例提供一种数据库的闪回处理装置,该数据库的闪回处理装置可以实现前述的数据库的闪回处理方法对应的功能。该数据库的闪回处理装置可以是硬件结构、软件模块、或硬件结构加软件模块。该数据库的闪回处理装置以由芯片系统实现,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。请参见图4,为本申请实施例提供的一种数据库的闪回处理装置的结构示意图,该数据库的闪回处理装置包括获取模块401以及处理模块402。
获取模块401,用于在第一时刻获取第一操作指令,所述第一操作指令用于指示用户对数据库的修改操作;其中,所述第一操作指令包括用于截断所述数据库中第一表的截断语句;
处理模块402,用于对所述第一表进行压缩备份,得到所述第一表的压缩文件;
获取模块401,用于在第二时刻获取第二操作指令,所述第二操作指令用于指示将所述数据库闪回到所述第一时刻之前的状态;处理模块402,用于根据所述第一表的压缩文件,将所述第一表恢复到所述数据库中。
通过这样的设计,可以撤销截断语句对应的操作,提升数据库闪回的准确性。
在一种可选的实施方式中,在所述第一时刻之前,所述数据库中至少一个表配置有截断触发器,所述至少一个表包括所述第一表,所述截断触发器用于拦截所述截断语句;所述处理模块402,还用于在通信模块获取到所述第一操作指令时,利用所述截断触发器对所述第一表进行压缩备份。通过设计截断触发器对数据库中的相关表进行保护,便于相关表对应的截断操作的撤销。
在一种可选的实施方式中,所述处理模块402,还用于对所述第一表进行压缩,将所述第一表的压缩文件保存至设定的备份空间。配置截断表的备份空间,能够避免对其他数据的干扰,便于快速读取截断表的压缩文件。
在一种可选的实施方式中,获取模块401,还用于从所述备份空间获取所述第一表的压缩文件;处理模块402,还用于对所述第一表的压缩文件进行解压,将解压得到的所述第一表恢复到所述数据库中。
在一种可选的实施方式中,处理模块402,还用于在所述第二时刻之前执行所述第一操作指令,并将所述第一操作指令对应的操作记录保存到所述数据库的日志文件中;在所述第二时刻获取到所述第二操作指令时,根据所述日志文件对所述第一操作指令对应的操作记录进行解析,生成所述第一操作指令对应的逆向操作闪回语句。通过这样的设计,结合操作日志和截断表的备份,能够快速将截断表恢复到数据库中。
在一种可选的实施方式中,处理模块402,还用于根据所述第一操作指令对应的逆向操作闪回语句,将所述第一表恢复到所述数据库中。
在一种可选的实施方式中,所述第一操作指令还包括以下一种或多种语句:删除语句、插入语句或更新语句。
基于同一发明构思,本申请实施例还提供一种电子设备,请参见图5,为本申请实施例提供的一种电子设备的结构示意图,该电子设备包括至少一个处理器502,以及与至少一个处理器502连接或称耦合的存储器501,此外,电子设备还可以包括通信接口503。电子设备可以通过通信接口503和其它设备进行信息交互。示例性的,所述通信接口503可以是收发器、电路、总线、模块、管脚或其它类型的通信接口。当该电子设备为芯片类的装置或者电路时,该电子设备中的通信接口503也可以是输入输出电路,可以输入信息(或称,接收信息)和输出信息(或称,发送信息),处理器为集成的处理器或者微处理器或者集成电路或则逻辑电路,处理器可以根据输入信息确定输出信息。
本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器502可能和存储器501、通信接口503协同操作。本公开中不限定上述处理器502、存储器501以及通信接口503之间的具体连接介质。
可选的,参见图5,所述处理器502、所述存储器501以及所述通信接口503之间通过总线500相互连接。所述总线500可以是外设部件互连标准(peripheral componentinterconnect,PCI)总线或扩展工业标准结构(extended industry standardarchitecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,存储器501作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器501可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(ReadOnly Memory,ROM)、带电可擦除可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器501是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器501还可以是电路或者其它任意能够实现存储功能的装置,用于存储指令、计算机程序和/或数据。
在本申请实施例中,处理器502可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的数据库的闪回处理方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
通过对处理器502进行设计编程,可以将前述实施例中介绍的数据库的闪回处理方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述的数据库的闪回处理方法的步骤,如何对处理器502进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
具体地,在本申请实施例中,存储器501存储有可被至少一个处理器502执行的指令,至少一个处理器502通过调用存储器501存储的指令或者计算机程序,可以执行前述的数据库的闪回处理方法中所包括的步骤。
示例性的,处理器502,用于利用通信接口503在第一时刻获取第一操作指令,所述第一操作指令用于指示用户对数据库的修改操作;其中,所述第一操作指令包括用于截断所述数据库中第一表的截断语句;处理器502,还用于对所述第一表进行压缩备份,得到所述第一表的压缩文件;处理器502,还用于利用通信接口503在第二时刻获取第二操作指令,所述第二操作指令用于指示将所述数据库闪回到所述第一时刻之前的状态;处理器502,还用于根据所述第一表的压缩文件,将所述第一表恢复到所述数据库中。
基于同一发明构思,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行如前述的数据库的闪回处理方法的步骤。
在一些可能的实施方式中,本申请提供的数据库的闪回处理方法的各个方面还可以实现为一种计算机程序产品的形式,其包括程序代码,当计算机程序产品在电子设备上运行时,程序代码用于使该电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的数据库的闪回处理方法中的步骤。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请实施例权利要求及其等同技术的范围之内,则本申请实施例也意图包含这些改动和变型在内。
Claims (10)
1.一种数据库的闪回处理方法,其特征在于,包括:
在第一时刻获取第一操作指令,所述第一操作指令用于指示用户对数据库的修改操作;其中,所述第一操作指令包括用于截断所述数据库中第一表的截断语句;
对所述第一表进行压缩备份,得到所述第一表的压缩文件;
在第二时刻获取第二操作指令,所述第二操作指令用于指示将所述数据库闪回到所述第一时刻之前的状态;
根据所述第一表的压缩文件,将所述第一表恢复到所述数据库中。
2.根据权利要求1所述的方法,其特征在于,在所述第一时刻之前,所述数据库中至少一个表配置有截断触发器,所述至少一个表包括所述第一表,所述截断触发器用于拦截所述截断语句;所述方法还包括:
在获取到所述第一操作指令时,利用所述截断触发器对所述第一表进行压缩备份。
3.根据权利要求1或2所述的方法,其特征在于,所述对所述第一表进行压缩备份,得到所述第一表的压缩文件,包括:
对所述第一表进行压缩,将所述第一表的压缩文件保存至设定的备份空间。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一表的压缩文件,将所述第一表恢复到所述数据库中,包括:
从所述备份空间获取所述第一表的压缩文件;
对所述第一表的压缩文件进行解压,将解压得到的所述第一表恢复到所述数据库中。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在所述第二时刻之前执行所述第一操作指令,并将所述第一操作指令对应的操作记录保存到所述数据库的日志文件中;
在所述第二时刻获取到所述第二操作指令时,根据所述日志文件对所述第一操作指令对应的操作记录进行解析,生成所述第一操作指令对应的逆向操作闪回语句。
6.根据权利要求5所述的方法,其特征在于,所述将所述第一表恢复到所述数据库中,包括:
根据所述第一操作指令对应的逆向操作闪回语句,将所述第一表恢复到所述数据库中。
7.根据权利要求1所述的方法,其特征在于,所述第一操作指令还包括以下一种或多种语句:删除语句、插入语句或更新语句。
8.一种数据库的闪回处理装置,其特征在于,所述装置包括:
获取模块,用于在第一时刻获取第一操作指令,所述第一操作指令用于指示用户对数据库的修改操作;其中,所述第一操作指令包括用于截断所述数据库中第一表的截断语句;
处理模块,用于对所述第一表进行压缩备份,得到所述第一表的压缩文件;
获取模块,用于在第二时刻获取第二操作指令,所述第二操作指令用于指示将所述数据库闪回到所述第一时刻之前的状态;
处理模块,用于根据所述第一表的压缩文件,将所述第一表恢复到所述数据库中。
9.一种电子设备,其特征在于,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时执行权利要求1-7中任一所述数据库的闪回处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行权利要求1-7任一项所述的方法包括的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111630714.7A CN114443365A (zh) | 2021-12-28 | 2021-12-28 | 一种数据库的闪回处理方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111630714.7A CN114443365A (zh) | 2021-12-28 | 2021-12-28 | 一种数据库的闪回处理方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114443365A true CN114443365A (zh) | 2022-05-06 |
Family
ID=81366030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111630714.7A Pending CN114443365A (zh) | 2021-12-28 | 2021-12-28 | 一种数据库的闪回处理方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114443365A (zh) |
-
2021
- 2021-12-28 CN CN202111630714.7A patent/CN114443365A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271450B (zh) | 数据库同步方法、装置、服务器和存储介质 | |
CN110096476B (zh) | 数据备份方法、装置及计算机可读存储介质 | |
US9811549B2 (en) | Applying a database transaction log record directly to a database table container | |
CN107391628B (zh) | 数据同步方法及装置 | |
US10671594B2 (en) | Statement based migration for adaptively building and updating a column store database from a row store database based on query demands using disparate database systems | |
CN110209735B (zh) | 数据库备份方法、数据库备份装置、计算设备和存储介质 | |
US9400733B2 (en) | Pattern matching framework for log analysis | |
KR100515890B1 (ko) | 효율적인 데이터베이스 복구방법 | |
US8874519B1 (en) | Method and apparatus for restoring a table in a database | |
CN112182010B (zh) | 脏页刷新方法和装置、存储介质和电子设备 | |
CN110609860A (zh) | 数据etl处理方法、装置、设备及存储介质 | |
CN108121774B (zh) | 一种数据表备份方法及终端设备 | |
CN114896641A (zh) | 数据校验方法、装置、电子设备及计算机可读存储介质 | |
CN111753141B (zh) | 一种数据管理方法及相关设备 | |
CN109101368B (zh) | 一种数据处理方法及装置 | |
CN108287772B (zh) | 数据备份系统及方法、计算机可读存储介质及电子设备 | |
CN114443365A (zh) | 一种数据库的闪回处理方法、装置和电子设备 | |
CN115061858B (zh) | 数据持久化方法、装置、计算机设备及存储介质 | |
US11048664B2 (en) | Log destaging from fixed-size log portion | |
CN108090128B (zh) | 一种合并存储空间回收方法、装置及电子设备 | |
CN116089394A (zh) | 数据库的数据回滚方法、存储介质与设备 | |
CN113419896B (zh) | 数据恢复方法、装置、电子设备及计算机可读介质 | |
US7516144B2 (en) | Method and system for re-population of data in a database | |
CN114896276A (zh) | 数据存储方法、装置、电子设备及分布式存储系统 | |
CN114675995A (zh) | 数据备份方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |