(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211124435.8
(22)申请日 2022.09.15
(71)申请人 中航信移动科技有限公司
地址 100041 北京市石景山区田顺庄北路1
号院1号楼12层1201室
(72)发明人 高栋 刘春磊 黄光龙 上官茜茜
(74)专利代理 机构 北京锺维联合知识产权代理
有限公司 1 1579
专利代理师 安娜
(51)Int.Cl.
G06F 16/22(2019.01)
G06F 16/242(2019.01)
G06F 16/2458(2019.01)
G06F 16/28(2019.01)
(54)发明名称
一种用于 MySQL数据表的数据恢复方法
(57)摘要
本发明提供了一种用于M ySQL数据表的数据
恢复方法, 该方法包括: 获取目标时间Tm和第一
更新时间Tnew; 若Tnew‑Tm>Tc, 则获取第一镜像数
据表的生成时间Ta; 若Ta<Tm, 则获取第二处理时
长ΔT2=Tm‑Ta; 若Ta>Tm, 则确定第三处理时长
ΔT3=Tp‑Tm和第四处理时长ΔT4=Tm‑Tq; 若ΔT3
>ΔT4, 则对第三镜像数据表进行正向数据处
理, 得到目标数据表; 若ΔT3<ΔT4, 则对第二镜
像数据表进行反向数据处理, 得到目标数据表。
本发明通过在不同判断标准情况下, 选择正向数
据处理或反向数据处理, 可以减少MySQL数据表
的回溯操作, 缩短数据执 行时间。
权利要求书2页 说明书7页 附图2页
CN 115374126 A
2022.11.22
CN 115374126 A
1.一种用于 MySQL数据表的数据恢复方法, 其特 征在于, 所述方法包括如下步骤:
S100、 获取目标时间Tm; 所述目标时间Tm为MySQL数据表执 行目标误操作指令的时间;
S200、 获取第一更新时间Tnew; 所述第一更新时间Tnew为MySQL数据表最后一次更新的时
间;
S300、 若第一处理时长ΔT1>Tc, 则执行步骤S410; 否则, 则执行步骤S500; 其中, ΔT1=
Tnew‑Tm; Tc为预设的时间 间隔;
S410、 获取所述MySQL数据表的第一镜像数据表的生成时间Ta; 所述第一镜像数据表为
所述MySQ L数据表最 新的镜像数据表;
S420、 若Ta<Tm, 则执行步骤S43 0; 若Ta>Tm, 则执行步骤S4 40;
S430、 获取第二处理时长ΔT2=Tm‑Ta; 若ΔT1>ΔT2, 则执行步骤S600; 若ΔT1<ΔT2, 则
执行步骤S5 00;
S440、 确定第三处理时长ΔT3=Tp‑Tm; 其中, Tp为第二镜像 数据表的生成时间, 所述第二
镜像数据表为 生成时间晚于目标时间Tm且距离目标时间Tm的时间间隔最小的镜像数据表;
S450、 确定第四处理时长ΔT4=Tm‑Tq; 其中, Tq为第三镜像 数据表的生成时间, 所述第三
镜像数据表为 生成时间早于目标时间Tm且距离目标时间Tm的时间间隔最小的镜像数据表;
S460、 若ΔT3>ΔT4, 则执行步骤S70 0; 若ΔT3<ΔT4, 则执行步骤S800;
S500、 将所述MySQL数据表作为待处理数据表, 以Tm为第一目标时间TL、 Tnew为第二目标
时间TM, 对待处 理数据表进行反向数据处 理, 得到目标 数据表;
S600、 将所述第一镜像数据表作为待处理数据表, 以Tm为第一目标时间TL、 Ta为第二目
标时间TM, 对待处 理数据表进行正向数据处 理, 得到目标 数据表;
S700、 将所述第三镜像数据表作为待处理数据表, 以Tm为第一目标时间TL、 Tq为第二目
标时间TM, 对待处 理数据表进行正向数据处 理, 得到目标 数据表;
S800、 将所述第二镜像数据表作为待处理数据表, 以Tm为第一目标时间TL、 Tp为第二目
标时间TM, 对待处 理数据表进行反向数据处 理, 得到目标 数据表。
2.根据权利要求1所述的方法, 其特 征在于, 所述 正向数据处 理包括:
S811、 对binlog文件中生成时间在目标时间段[TL,TM]内的数据进行提取, 得到第一待
处理数据; 其中, bi nlog文件与所述MySQ L数据表对应;
S812、 对所述第一待 处理数据进行转换处理, 得到若干第一SQL指令; 所述第一SQL指令
具有对应的执 行时间;
S813、 控制所述待处理数据表, 按执行时间正序依次执行若干所述第一SQL指令, 以得
到所述目标 数据表。
3.根据权利要求1所述的方法, 其特 征在于, 所述反向数据处 理包括:
S821、 对binlog文件中生成时间在目标时间段[TL,TM]内的数据进行提取, 得到第二待
处理数据; 其中, bi nlog文件与所述MySQ L数据表对应;
S822、 对所述第二待 处理数据进行转换处理, 得到若干第二SQL指令; 所述第二SQL指令
具有对应的执 行时间;
S823、 对每一所述第二SQL指令进行逆向转换处理, 得到每一所述第二SQL指令对应的
第三SQL指令; 所述第三SQ L指令为所述第二SQ L指令的逆向指令;
S824、 控制所述待处理数据表, 按执行时间倒序依次执行若干所述第三SQL指令, 以得权 利 要 求 书 1/2 页
2
CN 115374126 A
2到所述目标 数据表。
4.根据权利要求1所述的方法, 其特征在于, 所述MySQL数据表的binlog文件被配置为
每当当前的bi nlog文件的数据大小达 到设定阈值G时, 生成新的bi nlog文件;
所述MySQ L数据表进行镜像处 理的时间 间隔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。
5.根据权利要求2所述的方法, 其特 征在于, 所述 步骤S420, 还 包括:
若Ta=Tm, 将第四镜像 数据表作为待处理数据表, 以Tm为第一目标时间TL、 Tb为第二目标
时间TM, 对待处理数据表进行正向数据处理, 得到目标数据表, 其中, Tb为所述MySQL数据表
的第四镜像数据表的生成时间; 所述第四镜像数据表为生成时间早于Ta且距离Ta的时间间
隔最小的镜像数据表。
6.根据权利要求1所述的方法, 其特 征在于, 所述 步骤S430, 还包括:
若ΔT1=ΔT2, 则执行步骤S432; 其中, 步骤S432包括以下步骤:
S4321、 获取Tm至Tnew时间段内MySQ L数据表的bi nlog文件的记录数据的数量H;
S4322、 获取Ta至Tm时间段内MySQ L数据表的bi nlog文件的记录数据的数量 I;
S4323、 若H>I, 则执 行步骤S6 00; 否则, 则执 行步骤S5 00。
7.根据权利要求1所述的方法, 其特 征在于, 所述 步骤S460, 还包括:
若ΔT3=ΔT4, 则执行步骤S462; 其中, 步骤S462包括以下步骤:
S4621、 获取Tm至Tp时间段内MySQ L数据表的bi nlog文件的记录数据的数量K;
S4622、 获取Tq至Tm时间段内MySQ L数据表的bi nlog文件的记录数据的数量 L;
S4623、 若K>L, 则执 行步骤S70 0; 否则, 则执 行步骤S800。
8.根据权利 要求1所述的方法, 其特征在于, 将所述MySQL数据表作为待 处理数据表, 包
括:
对所述MySQL数据表在原保存路径下进行复制并命名为A+Tm, 得到所述待处理数据表;
其中, A为所述MySQ L数据表的原文件名称。
9.一种非瞬时性计算机可读存储介质, 所述存储介质中存储有至少一条指令或至少一
段程序, 所述至少一条指 令或所述至少一段程序由处理器加载并执行以实现如权利要求 1‑
8中任意一项的所述方法。
10.一种电子设备, 其特征在于, 包括处理器和权利要求9中所述的非瞬时性计算机可
读存储介质。权 利 要 求 书 2/2 页
3
CN 115374126 A
3
专利 一种用于MySQL数据表的数据恢复方法
文档预览
中文文档
12 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共12页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-18 22:34:13上传分享