CN115374126B - 一种用于MySQL数据表的数据恢复方法 - Google Patents
一种用于MySQL数据表的数据恢复方法 Download PDFInfo
- Publication number
- CN115374126B CN115374126B CN202211124435.8A CN202211124435A CN115374126B CN 115374126 B CN115374126 B CN 115374126B CN 202211124435 A CN202211124435 A CN 202211124435A CN 115374126 B CN115374126 B CN 115374126B
- Authority
- CN
- China
- Prior art keywords
- data table
- time
- target
- data
- mysql
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种用于MySQL数据表的数据恢复方法,该方法包括:获取目标时间Tm和第一更新时间Tnew;若Tnew‑Tm>Tc,则获取第一镜像数据表的生成时间Ta;若Ta<Tm,则获取第二处理时长ΔT2=Tm‑Ta;若Ta>Tm,则确定第三处理时长ΔT3=Tp‑Tm和第四处理时长ΔT4=Tm‑Tq;若ΔT3>ΔT4,则对第三镜像数据表进行正向数据处理,得到目标数据表;若ΔT3<ΔT4,则对第二镜像数据表进行反向数据处理,得到目标数据表。本发明通过在不同判断标准情况下,选择正向数据处理或反向数据处理,可以减少MySQL数据表的回溯操作,缩短数据执行时间。
Description
技术领域
本发明涉及数据恢复领域,特别是涉及一种用于MySQL数据表的数据恢复方法。
背景技术
MySQL数据表是通过SQL语句生成的数据表,当用户在对MySQL数据表执行操作时,若在某一时间段内执行了误操作,则现在的处理方法为对最新的MySQL数据表一步步进行反操作,如误操作为数据删除,则需要对最新的MySQL数据表从最后一步操作开始,进行反操作回溯到误操作的步骤处,将数据删除改为数据增加。此种处理方法适用于回溯数据较少或回溯时间较短的MySQL数据表,但对于需要回溯的操作较多或回溯时间较长的MySQL数据表而言,则此种处理方法较为繁杂,数据执行时间也较长。
发明内容
针对上述技术问题,本发明采用的技术方案为:
一种用于MySQL数据表的数据恢复方法,所述方法包括如下步骤:
S100、获取目标时间Tm;目标时间Tm为MySQL数据表执行目标误操作指令的时间;
S200、获取第一更新时间Tnew;第一更新时间Tnew为MySQL数据表最后一次更新的时间;
S300、若第一处理时长ΔT1>Tc,则执行步骤S410;否则,则执行步骤S500;其中,ΔT1=Tnew-Tm;Tc为预设的时间间隔;
MySQL数据表进行镜像处理的时间间隔Tc通过以下方法确定:
S310、获取每一满容量binlog文件对应的满容量时长,得到满容量时长集F=(F1,F2,...,Fz);其中,满容量binlog文件为数据大小达到设定阈值G的binlog文件;满容量时长为满容量binlog文件的数据大小由零到G所用的时间差值;Fj为第j个满容量binlog文件的满容量时长;j=1,2,...,z;z为满容量binlog文件的数量;Fj=Yj-Wj;Yj为对应的第j个满容量binlog文件的尾条数据信息的生成时间;Wj为对应的第j个满容量binlog文件的首条数据信息的生成时间;
S320、确定Tc=(g/G)*(∑z j=1Fj/z);其中,g为预设的目标容量值,g<G;
S410、获取MySQL数据表的第一镜像数据表的生成时间Ta;第一镜像数据表为MySQL数据表最新的镜像数据表;
S420、若Ta<Tm,则执行步骤S430;若Ta>Tm,则执行步骤S440;
步骤S420,还包括:
若Ta=Tm,将第四镜像数据表作为待处理数据表,以Tm为第一目标时间TL、Tb为第二目标时间TM,对待处理数据表进行正向数据处理,得到目标数据表,其中,Tb为MySQL数据表的第四镜像数据表的生成时间;第四镜像数据表为生成时间早于Ta且距离Ta的时间间隔最小的镜像数据表;
S430、获取第二处理时长ΔT2=Tm-Ta;若ΔT1>ΔT2,则执行步骤S600;若ΔT1<ΔT2,则执行步骤S500;
步骤S430,还包括:
若ΔT1=ΔT2,则执行步骤S432;其中,步骤S432包括以下步骤:
S4321、获取Tm至Tnew时间段内MySQL数据表的binlog文件的记录数据的数量H;
S4322、获取Ta至Tm时间段内MySQL数据表的binlog文件的记录数据的数量I;
S4323、若H>I,则执行步骤S600;否则,则执行步骤S500;
S440、确定第三处理时长ΔT3=Tp-Tm;其中,Tp为第二镜像数据表的生成时间,第二镜像数据表为生成时间晚于目标时间Tm且距离目标时间Tm的时间间隔最小的镜像数据表;
S450、确定第四处理时长ΔT4=Tm-Tq;其中,Tq为第三镜像数据表的生成时间,第三镜像数据表为生成时间早于目标时间Tm且距离目标时间Tm的时间间隔最小的镜像数据表;
S460、若ΔT3>ΔT4,则执行步骤S700;若ΔT3<ΔT4,则执行步骤S800;
步骤S460,还包括:
若ΔT3=ΔT4,则执行步骤S462;其中,步骤S462包括以下步骤:
S4621、获取Tm至Tp时间段内MySQL数据表的binlog文件的记录数据的数量K;
S4622、获取Tq至Tm时间段内MySQL数据表的binlog文件的记录数据的数量L;
S4623、若K>L,则执行步骤S700;否则,则执行步骤S800;
S500、将MySQL数据表作为待处理数据表,以Tm为第一目标时间TL、Tnew为第二目标时间TM,对待处理数据表进行反向数据处理,得到目标数据表;
S600、将第一镜像数据表作为待处理数据表,以Tm为第一目标时间TL、Ta为第二目标时间TM,对待处理数据表进行正向数据处理,得到目标数据表;
S700、将第三镜像数据表作为待处理数据表,以Tm为第一目标时间TL、Tq为第二目标时间TM,对待处理数据表进行正向数据处理,得到目标数据表;
S800、将第二镜像数据表作为待处理数据表,以Tm为第一目标时间TL、Tp为第二目标时间TM,对待处理数据表进行反向数据处理,得到目标数据表。
本发明至少具有以下有益效果:
本发明通过比较第一镜像数据表的生成时间与目标时间,若目标时间晚于第一镜像数据表的生成时间,且第二处理时长大于第一处理时长,则以目标时间作为第一目标时间、第一更新时间作为第二目标时间,对待处理数据表进行反向数据处理,若第二处理时长小于第一处理时长,则以目标时间作为第一目标时间、第一镜像数据表的生成时间作为第二目标时间,对待处理数据表进行正向数据处理;若目标时间早于第一镜像数据表的生成时间,且第三处理时长大于第四处理时长,则以目标时间作为第一目标时间、第三镜像数据表的生成时间作为第二目标时间,对待处理数据表进行正向数据处理,若第三处理时长小于第四处理时长,则以目标时间作为第一目标时间、第二镜像数据表的生成时间作为第二目标时间,对待处理数据表进行反向数据处理。以每个时间间隔作为判断标准,选择时间间隔小的两个时间节点作为数据处理节点,选择正向数据处理或反向数据处理,减少了待处理数据表的数据处理步骤,缩短了数据执行时间。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的用于MySQL数据表的数据恢复方法的步骤S430的时间轴示意图;
图2为本发明实施例提供的用于MySQL数据表的数据恢复方法的步骤S440的时间轴示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的一实施例提供了一种用于MySQL数据表的数据恢复方法,用于使MySQL数据表的数据恢复至目标时间时的数据,目标时间为用户欲要将MySQL数据表的数据回溯到的时间。其中,MySQL数据表中包括若干binlog文件,MySQL数据表的binlog文件被配置为每当当前的binlog文件的数据大小达到设定阈值G时,生成新的binlog文件,设定阈值G为用户预设的binlog文件在满容量时的数据阈值,可以为512M,也可为其他容量。
所述的用于MySQL数据表的数据恢复方法包括如下步骤:
S100、获取目标时间Tm;目标时间Tm为MySQL数据表执行目标误操作指令的时间;目标误操作指令可以为用户对MySQL数据表做的数据增加、删除等执行操作;
S200、获取第一更新时间Tnew;第一更新时间Tnew为MySQL数据表最后一次更新的时间;最后一次更新的时间为用户对MySQL数据表做的最后一次执行操作的时间;
示例性的,如用户在α时刻对MySQL数据表做了数据删除操作,在β时刻对MySQL数据表做了最后一次操纵,则α为目标时间Tm,β为第一更新时间Tnew。
S300、若第一处理时长ΔT1>Tc,则执行步骤S410;否则,则执行步骤S500;其中,ΔT1=Tnew-Tm;Tc为预设的时间间隔,即对MySQL数据表进行镜像处理的时间间隔;
MySQL数据表进行镜像处理的时间间隔Tc通过以下方法确定:
S310、获取每一满容量binlog文件对应的满容量时长,得到满容量时长集F=(F1,F2,...,Fz);其中,满容量binlog文件为数据大小达到设定阈值G的binlog文件;满容量时长为满容量binlog文件的数据大小由零到G所用的时间差值;Fj为第j个满容量binlog文件的满容量时长;j=1,2,...,z;z为满容量binlog文件的数量;Fj=Yj-Wj;Yj为对应的第j个满容量binlog文件的尾条数据信息的生成时间;Wj为对应的第j个满容量binlog文件的首条数据信息的生成时间;
S320、确定Tc=(g/G)*(∑z j=1Fj/z);其中,g为预设的目标容量值,g<G;
通过预设的目标容量值g与binlog文件的满容量阈值G的比值,和所有满容量时长的平均值做乘积,得到对MySQL数据表进行镜像处理的时间间隔Tc,Tc为确定MySQL数据表是否直接执行反向数据处理的时间阈值,若ΔT1大于Tc,则表示目标时间Tm和第一更新时间Tnew的时间差值要大于Tc,初步说明,目标时间Tm至第一更新时间Tnew的时间段内需要执行的操作较多,如果进行反向数据处理,则计算时间或执行操作要较为繁琐;而若ΔT1小于Tc,则表示目标时间Tm和第一更新时间Tnew的时间差值要小于Tc,说明目标时间Tm至第一更新时间Tnew的时间段内需要执行的操作较少,可以直接进行反向数据处理,计算时间或执行操作要较正向数据处理来说更为简便。
S410、获取MySQL数据表的第一镜像数据表的生成时间Ta;第一镜像数据表为MySQL数据表最新的镜像数据表;镜像数据表为MySQL数据表定时自动进行镜像操作而产生的数据表,如用户设定每隔十分钟自动进行镜像操作,则在十分钟内,无论用户对当前的MySQL数据表是否执行操作,也会在到达十分钟时,自动对当前的MySQL数据表执行镜像操作,进行复制,生成一个新的复制后的MySQL数据表,此数据表即镜像数据表,镜像操作的执行间隔时间由用户确定;
S420、若Ta<Tm,则执行步骤S430;若Ta>Tm,则执行步骤S440;
步骤S420,还包括:
若Ta=Tm,将第四镜像数据表作为待处理数据表,以Tm为第一目标时间TL、Tb为第二目标时间TM,对待处理数据表进行正向数据处理,得到目标数据表,其中,Tb为MySQL数据表的第四镜像数据表的生成时间;第四镜像数据表为生成时间早于Ta且距离Ta的时间间隔最小的镜像数据表;
若Ta和Tm相等,则表示目标误操作指令的执行时间与第四镜像数据表的生成时间相同,则直接以第四镜像数据表为待处理数据表,进行正向数据处理即可。
S430、获取第二处理时长ΔT2=Tm-Ta;若ΔT1>ΔT2,则执行步骤S600;若ΔT1<ΔT2,则执行步骤S500;
步骤S430,还包括:
若ΔT1=ΔT2,则执行步骤S432;其中,步骤S432包括以下步骤:
S4321、获取Tm至Tnew时间段内MySQL数据表的binlog文件的记录数据的数量H;
S4322、获取Ta至Tm时间段内MySQL数据表的binlog文件的记录数据的数量I;
S4323、若H>I,则执行步骤S600;否则,则执行步骤S500;
如图1所示,Ta小于Tm,则表示第一镜像数据表的生成时间要早于目标误操作指令的执行时间,即目标误操作指令的执行时间位于第一镜像数据表的生成时间与第一更新时间之间的时间段内,若目标误操作指令的执行时间至第一镜像数据表的生成时间与目标误操作指令的执行时间至第一更新时间的时长相同,则以此时间段内生成的数据数量为判断依据,若目标误操作指令的执行时间至第一更新时间时间段内对应的数据数量比第一镜像数据表的生成时间至目标误操作指令的执行时间时间段内对应的数据数量多,则说明进行正向数据处理所执行的操作要较进行反向数据处理所执行的操作更少,反之,则说明进行反向数据处理所执行的操作要较进行正向数据处理所执行的操作更少。
S440、确定第三处理时长ΔT3=Tp-Tm;其中,Tp为第二镜像数据表的生成时间,第二镜像数据表为生成时间晚于目标时间Tm且距离目标时间Tm的时间间隔最小的镜像数据表,即第二镜像数据表的生成时间为距离目标时间Tm最近且晚于目标时间Tm的时间,如图2所示;
S450、确定第四处理时长ΔT4=Tm-Tq;其中,Tq为第三镜像数据表的生成时间,第三镜像数据表为生成时间早于目标时间Tm且距离目标时间Tm的时间间隔最小的镜像数据表,即第三镜像数据表的生成时间为距离目标时间Tm最近且早于目标时间Tm的时间;
S460、若ΔT3>ΔT4,则执行步骤S700;若ΔT3<ΔT4,则执行步骤S800;
步骤S460,还包括:
若ΔT3=ΔT4,则执行步骤S462;其中,步骤S462包括以下步骤:
S4621、获取Tm至Tp时间段内MySQL数据表的binlog文件的记录数据的数量K;
S4622、获取Tq至Tm时间段内MySQL数据表的binlog文件的记录数据的数量L;
S4623、若K>L,则执行步骤S700;否则,则执行步骤S800;
Ta大于Tm,则表示第一镜像数据表的生成时间要晚于目标误操作指令的执行时间,若第三镜像数据表的生成时间至目标误操作指令的执行时间与第二镜像数据表的生成时间至目标误操作指令的执行时间相同,则以此时间段内生成的数据数量为判断依据,若第三镜像数据表的生成时间至目标误操作指令的执行时间时间段内对应的数据数量比第二镜像数据表的生成时间至目标误操作指令的执行时间时间段内对应的数据数量多,则说明进行反向数据处理所执行的操作要较进行正向数据处理所执行的操作更少,反之,则说明进行正向数据处理所执行的操作要较进行反向数据处理所执行的操作更少。
S500、将MySQL数据表作为待处理数据表,以Tm为第一目标时间TL、Tnew为第二目标时间TM,对待处理数据表进行反向数据处理,得到目标数据表;
S600、将第一镜像数据表作为待处理数据表,以Tm为第一目标时间TL、Ta为第二目标时间TM,对待处理数据表进行正向数据处理,得到目标数据表;
S700、将第三镜像数据表作为待处理数据表,以Tm为第一目标时间TL、Tq为第二目标时间TM,对待处理数据表进行正向数据处理,得到目标数据表;
S800、将第二镜像数据表作为待处理数据表,以Tm为第一目标时间TL、Tp为第二目标时间TM,对待处理数据表进行反向数据处理,得到目标数据表。
在不同情况下将不同的数据表作为待处理数据表,并根据每个数据表的生成时间与MySQL数据表执行目标误操作指令的时间的时间段的对比,进行正向数据处理或反向数据处理,得到目标数据表,目标数据表即为最后得到的将原MySQL数据表恢复至目标时间Tm时的数据表,回溯至用户执行目标误操作指令时的数据表。
进一步,所述正向数据处理包括:
S811、对binlog文件中生成时间在目标时间段[TL,TM]内的数据进行提取,得到第一待处理数据;其中,binlog文件与MySQL数据表对应;
S812、对第一待处理数据进行转换处理,得到若干第一SQL指令;第一SQL指令具有对应的执行时间;
S813、控制待处理数据表,按执行时间正序依次执行若干第一SQL指令,以得到目标数据表。
正向数据处理为对待处理数据表执行正向的第一SQL指令,用户得到的镜像数据表为没有执行目标误操作指令的数据表,如用户的误操作指令为数据删除指令,则在待处理数据表上的原目标误操作指令处重新执行数据增加指令,正向数据处理为按照时序由先到后的处理方法。
进一步,所述反向数据处理包括:
S821、对binlog文件中生成时间在目标时间段[TL,TM]内的数据进行提取,得到第二待处理数据;其中,binlog文件与MySQL数据表对应;
S822、对第二待处理数据进行转换处理,得到若干第二SQL指令;第二SQL指令具有对应的执行时间;
S823、对每一第二SQL指令进行逆向转换处理,得到每一第二SQL指令对应的第三SQL指令;第三SQL指令为第二SQL指令的逆向指令;
S824、控制待处理数据表,按执行时间倒序依次执行若干第三SQL指令,以得到目标数据表。
反向数据处理为对待处理数据表按照时序由后到先的处理方法,可以通过binlog2sql进行操作,如用户在十点十分执行了误删除指令,在第一更新时间Tnew为十一点时想要回溯到误删除指令的MySQL数据表,则通过binlog2sql从十一点时的最后一步操作往回执行反操作,直至十点十分的误删除指令的操作,将误删除指令改为数据增加指令,即可实现反向数据处理方法。
将MySQL数据表作为待处理数据表,包括:
对MySQL数据表在原保存路径下进行复制并命名为A+Tm,得到待处理数据表;其中,A为MySQL数据表的原文件名称。
第一镜像数据表、第二镜像数据表、第三镜像数据表和第四镜像数据表的名称为A+Tm;其中,A为第一镜像数据表、第二镜像数据表、第三镜像数据表和第四镜像数据表对应的原文件名称,便于用户进行查看,通过查看镜像数据表的名称,即可得知其对应的原文件的名称以及执行目标误操作指令的时间。
第一镜像数据表、第二镜像数据表、第三镜像数据表和第四镜像数据表的保存路径与其对应的原文件的保存路径相同,将镜像数据表与其对应的原文件置于同一路径下,节省了用户的查找时间。
本发明通过比较第一处理时长ΔT1与预设的镜像处理的时间间隔Tc,确定是否对MySQL数据表直接进行反向数据处理,若ΔT1≤Tc,则直接对MySQL数据表进行反向数据处理,若ΔT1>Tc,则比较第一镜像数据表的生成时间Ta与目标时间Tm;若目标时间Tm晚于第一镜像数据表的生成时间Ta,则确定第二处理时长ΔT2;比较第一处理时长ΔT1与第二处理时长ΔT2,若ΔT1>ΔT2,则对MySQL数据表进行正向数据处理,若ΔT1<ΔT2,则对MySQL数据表进行反向数据处理;若目标时间Tm早于第一镜像数据表的生成时间Ta,则确定第三处理时长ΔT3和第四处理时长ΔT4;比较第三处理时长ΔT3和第四处理时长ΔT4,若ΔT3>ΔT4,则对MySQL数据表进行正向数据处理,若ΔT3<ΔT4,则对MySQL数据表进行反向数据处理;得到目标数据表。通过在不同判断标准情况下,选择正向数据处理或反向数据处理,可以减少MySQL数据表的回溯操作,缩短数据执行时间。
本发明的实施例还提供了一种非瞬时性计算机可读存储介质,该存储介质可设置于电子设备之中以保存用于实现方法实施例中一种方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述实施例提供的方法。
本发明的实施例还提供了一种电子设备,包括处理器和前述的非瞬时性计算机可读存储介质。
本发明的实施例还提供一种计算机程序产品,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使该电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的方法中的步骤。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明开的范围由所附权利要求来限定。
Claims (8)
1.一种用于MySQL数据表的数据恢复方法,其特征在于,所述方法包括如下步骤:
S100、获取目标时间Tm;所述目标时间Tm为MySQL数据表执行目标误操作指令的时间;
S200、获取第一更新时间Tnew;所述第一更新时间Tnew为MySQL数据表最后一次更新的时间;
S300、若第一处理时长ΔT1>Tc,则执行步骤S410;否则,则执行步骤S500;其中,ΔT1=Tnew-Tm;Tc为预设的时间间隔;
S410、获取所述MySQL数据表的第一镜像数据表的生成时间Ta;所述第一镜像数据表为所述MySQL数据表最新的镜像数据表;
S420、若Ta<Tm,则执行步骤S430;若Ta>Tm,则执行步骤S440;
S430、获取第二处理时长ΔT2=Tm-Ta;若ΔT1>ΔT2,则执行步骤S600;若ΔT1<ΔT2,则执行步骤S500;
S440、确定第三处理时长ΔT3=Tp-Tm;其中,Tp为第二镜像数据表的生成时间,所述第二镜像数据表为生成时间晚于目标时间Tm且距离目标时间Tm的时间间隔最小的镜像数据表;
S450、确定第四处理时长ΔT4=Tm-Tq;其中,Tq为第三镜像数据表的生成时间,所述第三镜像数据表为生成时间早于目标时间Tm且距离目标时间Tm的时间间隔最小的镜像数据表;
S460、若ΔT3>ΔT4,则执行步骤S700;若ΔT3<ΔT4,则执行步骤S800;
S500、将所述MySQL数据表作为待处理数据表,以Tm为第一目标时间TL、Tnew为第二目标时间TM,对待处理数据表进行反向数据处理,得到目标数据表;
S600、将所述第一镜像数据表作为待处理数据表,以Tm为第一目标时间TL、Ta为第二目标时间TM,对待处理数据表进行正向数据处理,得到目标数据表;
S700、将所述第三镜像数据表作为待处理数据表,以Tm为第一目标时间TL、Tq为第二目标时间TM,对待处理数据表进行正向数据处理,得到目标数据表;
S800、将所述第二镜像数据表作为待处理数据表,以Tm为第一目标时间TL、Tp为第二目标时间TM,对待处理数据表进行反向数据处理,得到目标数据表;
其中,所述正向数据处理包括:
S811、对binlog文件中生成时间在目标时间段[TL,TM]内的数据进行提取,得到第一待处理数据;其中,binlog文件与所述MySQL数据表对应;
S812、对所述第一待处理数据进行转换处理,得到若干第一SQL指令;所述第一SQL指令具有对应的执行时间;
S813、控制所述待处理数据表,按执行时间正序依次执行若干所述第一SQL指令,以得到所述目标数据表;
其中,所述反向数据处理包括:
S821、对binlog文件中生成时间在目标时间段[TL,TM]内的数据进行提取,得到第二待处理数据;其中,binlog文件与所述MySQL数据表对应;
S822、对所述第二待处理数据进行转换处理,得到若干第二SQL指令;所述第二SQL指令具有对应的执行时间;
S823、对每一所述第二SQL指令进行逆向转换处理,得到每一所述第二SQL指令对应的第三SQL指令;所述第三SQL指令为所述第二SQL指令的逆向指令;
S824、控制所述待处理数据表,按执行时间倒序依次执行若干所述第三SQL指令,以得到所述目标数据表。
2.根据权利要求1所述的方法,其特征在于,所述MySQL数据表的binlog文件被配置为每当当前的binlog文件的数据大小达到设定阈值G时,生成新的binlog文件;
所述MySQL数据表进行镜像处理的时间间隔Tc通过以下方法确定:
S310、获取每一满容量binlog文件对应的满容量时长,得到满容量时长集F=(F1,F2,...,Fz);其中,满容量binlog文件为数据大小达到设定阈值G的binlog文件;满容量时长为所述满容量binlog文件的数据大小由零到G所用的时间差值;Fj为第j个满容量binlog文件的满容量时长;j=1,2,...,z;z为所述满容量binlog文件的数量;Fj=Yj-Wj;Yj为对应的第j个满容量binlog文件的尾条数据信息的生成时间;Wj为对应的第j个满容量binlog文件的首条数据信息的生成时间;
S320、确定Tc=(g/G)*(∑z j=1Fj/z);其中,g为预设的目标容量值,g<G。
3.根据权利要求1所述的方法,其特征在于,所述步骤S420,还包括:
若Ta=Tm,将第四镜像数据表作为待处理数据表,以Tm为第一目标时间TL、Tb为第二目标时间TM,对待处理数据表进行正向数据处理,得到目标数据表,其中,Tb为所述MySQL数据表的第四镜像数据表的生成时间;所述第四镜像数据表为生成时间早于Ta且距离Ta的时间间隔最小的镜像数据表。
4.根据权利要求1所述的方法,其特征在于,所述步骤S430,还包括:
若ΔT1=ΔT2,则执行步骤S432;其中,步骤S432包括以下步骤:
S4321、获取Tm至Tnew时间段内MySQL数据表的binlog文件的记录数据的数量H;
S4322、获取Ta至Tm时间段内MySQL数据表的binlog文件的记录数据的数量I;
S4323、若H>I,则执行步骤S600;否则,则执行步骤S500。
5.根据权利要求1所述的方法,其特征在于,所述步骤S460,还包括:
若ΔT3=ΔT4,则执行步骤S462;其中,步骤S462包括以下步骤:
S4621、获取Tm至Tp时间段内MySQL数据表的binlog文件的记录数据的数量K;
S4622、获取Tq至Tm时间段内MySQL数据表的binlog文件的记录数据的数量L;
S4623、若K>L,则执行步骤S700;否则,则执行步骤S800。
6.根据权利要求1所述的方法,其特征在于,将所述MySQL数据表作为待处理数据表,包括:
对所述MySQL数据表在原保存路径下进行复制并命名为A+Tm,得到所述待处理数据表;其中,A为所述MySQL数据表的原文件名称。
7.一种非瞬时性计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-6中任意一项的所述方法。
8.一种电子设备,其特征在于,包括处理器和权利要求7中所述的非瞬时性计算机可读存储介质。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211124435.8A CN115374126B (zh) | 2022-09-15 | 2022-09-15 | 一种用于MySQL数据表的数据恢复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211124435.8A CN115374126B (zh) | 2022-09-15 | 2022-09-15 | 一种用于MySQL数据表的数据恢复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115374126A CN115374126A (zh) | 2022-11-22 |
CN115374126B true CN115374126B (zh) | 2023-04-14 |
Family
ID=84071615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211124435.8A Active CN115374126B (zh) | 2022-09-15 | 2022-09-15 | 一种用于MySQL数据表的数据恢复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115374126B (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10713124B2 (en) * | 2017-11-21 | 2020-07-14 | Rubrik, Inc. | Database snapshot and backup management with recoverable chains |
CN113918658A (zh) * | 2020-07-08 | 2022-01-11 | 北京罗克维尔斯科技有限公司 | 恢复数据的方法及装置 |
-
2022
- 2022-09-15 CN CN202211124435.8A patent/CN115374126B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115374126A (zh) | 2022-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110516971B (zh) | 异常检测的方法、装置、介质和计算设备 | |
JP5463964B2 (ja) | 作業内容推定装置及び作業内容推定方法 | |
CN107145403B (zh) | 面向Web开发环境的关系型数据库数据回溯方法 | |
CN113918385B (zh) | 虚拟机在线增量备份恢复的方法、装置、电子设备及介质 | |
CN115374126B (zh) | 一种用于MySQL数据表的数据恢复方法 | |
CN110011853B (zh) | 一种面向多平台和集群的交叉故障排查方法及装置 | |
CN111382198A (zh) | 数据还原方法、装置、设备及存储介质 | |
CN111488339A (zh) | 基于Node.JS的NoSQL数据库、建立及处理方法 | |
JP3761238B2 (ja) | 判断規則修正装置と判断規則修正方法 | |
CN111459720B (zh) | 一种基于事务日志的Mysql数据恢复方法 | |
CN113297009A (zh) | 一种信息备份方法、设备、平台及存储介质 | |
US7882334B2 (en) | Processor pipeline architecture logic state retention systems and methods | |
CN113434264B (zh) | 一种任务组件的智能处理方法、装置、设备和存储介质 | |
CN114962631A (zh) | 缓速器电磁阀控制方法、装置、设备和介质 | |
CN114241346A (zh) | 一种图像去重超参数优化方法、装置、设备及存储介质 | |
CN115511620A (zh) | 故障处理方法、装置、存储介质及计算机设备 | |
CN112765766A (zh) | 一种动态交互的细粒度离散事件系统时序推进方法 | |
CN103853754A (zh) | 在备份时计算散列值以删除重复数据的系统及其方法 | |
CN117332543B (zh) | 电网异构数据源的分布处理方法 | |
CN114399830B (zh) | 目标类别识别方法、装置及可读存储介质 | |
CN111858387B (zh) | 数据准备方法和装置 | |
CN112650447B (zh) | 一种ceph分布式块存储的备份方法、系统及装置 | |
CN109992701B (zh) | 一种链表实现方法、装置、设备及可读存储介质 | |
CN117633321A (zh) | 一种基于Bbolt扩展容器云元数据管理的方法 | |
CN116701319A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |