CN111045868B - 一种数据库数据自动恢复的方法和装置 - Google Patents

一种数据库数据自动恢复的方法和装置 Download PDF

Info

Publication number
CN111045868B
CN111045868B CN201911280100.3A CN201911280100A CN111045868B CN 111045868 B CN111045868 B CN 111045868B CN 201911280100 A CN201911280100 A CN 201911280100A CN 111045868 B CN111045868 B CN 111045868B
Authority
CN
China
Prior art keywords
preset
file
database
restored
script file
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
Application number
CN201911280100.3A
Other languages
English (en)
Other versions
CN111045868A (zh
Inventor
谢麦善
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhongtongji Network Technology Co Ltd
Original Assignee
Shanghai Zhongtongji Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Zhongtongji Network Technology Co Ltd filed Critical Shanghai Zhongtongji Network Technology Co Ltd
Priority to CN201911280100.3A priority Critical patent/CN111045868B/zh
Publication of CN111045868A publication Critical patent/CN111045868A/zh
Application granted granted Critical
Publication of CN111045868B publication Critical patent/CN111045868B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

一种数据库数据自动恢复的方法和装置
技术领域
本申请涉及数据库领域,尤其涉及一种数据库数据自动恢复的方法和装置。
背景技术
随着互联网的快速发展,mysql数据库的应用越来越广泛,越来越多的企业在linuxs服务器上使用mysql数据库。但是在实际使用中,mysql数据库中总有应用或人为的操作导致记录错误更新或某个或某几个无法快速回滚的记录被删除。这时需要数据库管理员的帮助,然而每个数据库管理员经验不尽相同。即使是经验丰富的数据库管理员,也需要耗费大量时间进行数据的恢复。要求数据库管理者具备较高的专业能力,并且人工进行数据恢复要求操作不够智能化、需要恢复的时间较长。
发明内容
为至少在一定程度上克服相关技术中存在的问题,本申请提供一种XX方法和装置。
根据本申请的第一方面,提供一种数据库数据自动恢复的方法,包括通过执行回滚命令判断是否增加了操作类型,得到第一判断结果;所述回滚命令用于回滚所述操作类型的历史记录;
当所述第一判断结果为是时,判断增加的所述操作类型是否为目标操作类型,得到第二判断结果;所述目标操作类型为误更新操作或误删除操作;
当所述第二判断结果为是时,获取待恢复数据库信息;
若所述目标操作类型为误更新操作,根据所述待恢复数据库信息执行预设的误更新操作恢复程序,得到误更新恢复脚本文件;若所述目标操作类型为误删除操作时,根据所述待恢复数据库信息执行预设的误删除操作恢复程序,得到误删除恢复脚本文件;
根据所述误更新恢复脚本文件和/或误删除恢复脚本文件恢复所述待恢复数据库信息对应的数据库。
优选的,所述待恢复数据库信息包括二进制日志位置、二进制日志名称、所述误更新操作的开始更新时间和结束更新时间;
所述根据所述待恢复数据库信息执行预设的误更新操作恢复程序,得到误更新恢复脚本文件,包括:
利用二进制日志解析命令根据所述二进制日志位置、所述二进制日志名称、所述开始更新时间和所述结束更新时间解析得到第一解析文件;
根据所述待恢复数据库信息拼装所述误更新操作对应的第一待恢复数据表中的字眼并将拼装的结果赋值给第一预设变量;所述第一待恢复数据表为所述待恢复数据库信息对应的数据库中因所述误更新操作而发生数据变化的表;
根据所述待恢复数据库信息获取所述第一待恢复数据表的列名并将所述第一待恢复数据表的列名存储在第一预设文件中;
根据所述第一解析文件、所述第一预设变量和所述第一预设文件按照预设文本处理方式得到误更新恢复脚本文件。
优选的,所述根据所述第一解析文件、所述第一预设变量和所述第一预设文件按照预设文本处理方式得到误更新恢复脚本文件,包括:
统计所述第一待恢复数据表的字段总数并按照第一预设赋值方式将所述字段总数赋值给第二预设变量;
按照第一预设文件处理方式对所述第一预设文件中的内容进行处理,得到第一处理文件;
将所述第一预设变量到预设字段之间的行存储到所述第一解析文件中,得到第一处理解析文件;
读取所述第一处理解析文件的解析文本,并将按照第一预设解析文本处理方式进行处理后的解析文本存储于预设脚本文件中,得到初始误更新恢复脚本文件;
根据所述第一处理文件的内容和第一预设脚本文件处理方式对所述初始误更新恢复脚本文件进行处理得到误更新恢复脚本文件。
优选的,所述待恢复数据库信息包括二进制日志位置、二进制日志名称、所述误删除操作的开始删除时间和结束删除时间;
所述根据所述待恢复数据库信息执行预设的误删除操作恢复程序,得到误删除恢复脚本文件,包括:
利用二进制日志解析命令根据所述二进制日志位置、所述二进制日志名称、所述开始删除时间和所述结束删除时间解析得到第二解析文件;
根据所述待恢复数据库信息拼装所述误删除操作对应的第二待恢复数据表中的字眼并将拼装的结果赋值给第二预设变量;所述第二待恢复数据表为所述待恢复数据库信息对应的数据库中因所述误删除操作而发生数据变化的表;
根据所述待恢复数据库信息获取所述第二待恢复数据表的列名并将所述第二待恢复数据表的列名存储在第二预设文件中;
根据所述第二解析文件、所述第二预设变量和所述第二预设文件按照预设文本处理方式得到误删除恢复脚本文件。
优选的,所述根据所述第二解析文件、所述第二预设变量和所述第二预设文件按照预设文本处理方式得到误删除恢复脚本文件,包括:
统计所述第二待恢复数据表的字段总数并按照第二预设赋值方式将所述字段总数赋值给第二预设变量;
按照第二预设文件处理方式对所述第二预设文件中的内容进行处理,得到第二处理文件;
将所述第二预设变量到预设字段之间的行存储到所述第二解析文件中,得到第二处理解析文件;
读取所述第二处理解析文件的解析文本,并将按照第二预设解析文本处理方式进行处理后的解析文本存储于预设脚本文件中,得到初始误删除恢复脚本文件;
根据所述第二处理文件的内容和第二预设脚本文件处理方式对所述初始误删除恢复脚本文件进行处理得到误删除恢复脚本文件。
根据本申请的第二方面,提供一种数据库数据自动恢复的装置,包括:
判断模块,通过执行回滚命令判断是否增加了操作类型,得到第一判断结果;所述回滚命令用于回滚所述操作类型的历史记录;
结果模块,当所述第一判断结果为是时,判断增加的所述操作类型是否为目标操作类型,得到第二判断结果;所述目标操作类型为误更新操作或误删除操作;
执行模块,当所述第二判断结果为是时,获取待恢复数据库信息;若所述目标操作类型为误更新操作,根据所述待恢复数据库信息执行预设的误更新操作恢复程序,得到误更新恢复脚本文件;若所述目标操作类型为误删除操作时,根据所述待恢复数据库信息执行预设的误删除操作恢复程序,得到误删除恢复脚本文件;
恢复模块,根据所述误更新恢复脚本文件和/或误删除恢复脚本文件恢复所述待恢复数据库信息对应的数据库。
优选的,待恢复数据库信息包括二进制日志位置、二进制日志名称、所述误更新操作的开始更新时间和结束更新时间;
根据所述待恢复数据库信息执行预设的误更新操作恢复程序,得到误更新恢复脚本文件的装置包括:
第一解析模块,利用二进制日志解析命令根据所述二进制日志位置、所述二进制日志名称、所述开始更新时间和所述结束更新时间解析得到第一解析文件;
第一赋值模块,根据所述待恢复数据库信息拼装所述误更新操作对应的第一待恢复数据表中的字眼并将拼装的结果赋值给第一预设变量;所述第一待恢复数据表为所述待恢复数据库信息对应的数据库中因所述误更新操作而发生数据变化的表;
第一存储模块,根据所述待恢复数据库信息获取所述第一待恢复数据表的列名并将所述第一待恢复数据表的列名存储在第一预设文件中;
第一结果模块,根据所述第一解析文件、所述第一预设变量和所述第一预设文件按照预设文本处理方式得到误更新恢复脚本文件。
优选的,所述根据所述第一解析文件、所述第一预设变量和所述第一预设文件按照预设文本处理方式得到误更新恢复脚本文件的装置包括:
第二赋值模块,统计所述第一待恢复数据表的字段总数并按照第一预设赋值方式将所述字段总数赋值给第二预设变量;
第一处理模块,按照第一预设文件处理方式对所述第一预设文件中的内容进行处理,得到第一处理文件;
第二存储模块,将所述第一预设变量到预设字段之间的行存储到所述第一解析文件中,得到第一处理解析文件;
第三存储模块,读取所述第一处理解析文件的解析文本,并将按照第一预设解析文本处理方式进行处理后的解析文本存储于预设脚本文件中,得到初始误更新恢复脚本文件;
第一获取模块,根据所述第一处理文件的内容和第一预设脚本文件处理方式对所述初始误更新恢复脚本文件进行处理得到误更新恢复脚本文件。
优选的,待恢复数据库信息包括二进制日志位置、二进制日志名称、所述误删除操作的开始删除时间和结束删除时间;
根据所述待恢复数据库信息执行预设的误删除操作恢复程序,得到误删除恢复脚本文件的装置包括:
第二解析模块,利用二进制日志解析命令根据所述二进制日志位置、所述二进制日志名称、所述开始删除时间和所述结束删除时间解析得到第二解析文件;
第三赋值模块,根据所述待恢复数据库信息拼装所述误删除操作对应的第二待恢复数据表中的字眼并将拼装的结果赋值给第二预设变量;所述第二待恢复数据表为所述待恢复数据库信息对应的数据库中因所述误删除操作而发生数据变化的表;
第四存储模块,根据所述待恢复数据库信息获取所述第二待恢复数据表的列名并将所述第二待恢复数据表的列名存储在第二预设文件中;
第二结果模块,根据所述第二解析文件、所述第二预设变量和所述第二预设文件按照预设文本处理方式得到误删除恢复脚本文件。
优选的,所述根据所述第二解析文件、所述第二预设变量和所述第二预设文件按照预设文本处理方式得到误删除恢复脚本文件的装置包括:
第四赋值模块,统计所述第二待恢复数据表的字段总数并按照第二预设赋值方式将所述字段总数赋值给第二预设变量;
第二处理模块,按照第二预设文件处理方式对所述第二预设文件中的内容进行处理,得到第二处理文件;
第五存储模块,将所述第二预设变量到预设字段之间的行存储到所述第二解析文件中,得到第二处理解析文件;
第六存储模块,读取所述第二处理解析文件的解析文本,并将按照第二预设解析文本处理方式进行处理后的解析文本存储于预设脚本文件中,得到初始误删除恢复脚本文件;
第二获取模块,根据所述第二处理文件的内容和第二预设脚本文件处理方式对所述初始误删除恢复脚本文件进行处理得到误删除恢复脚本文件。
本申请提供的技术方案可以包括以下有益效果:一种数据库数据自动恢复的方法,包括:通过执行回滚命令判断是否增加了操作类型,所述回滚命令用于回滚操作类型的历史记录;当判断结果为增加了操作类型,判断增加的操作类型是否为误更新和误删除操作;当判断结果为增加的操作类型为误更新和误删除操作,获取待恢复数据库信息;若所述目标操作类型为误更新操作,根据所述待恢复数据库信息执行预设的误更新操作恢复程序,得到误更新恢复脚本文件;若所述目标操作类型为误删除操作时,根据所述待恢复数据库信息执行预设的误删除操作恢复程序,得到误删除恢复脚本文件;根据所述误更新恢复脚本文件和/或误删除恢复脚本文件恢复所述待恢复数据库信息对应的数据库。通过上述方法,在误操作后不需要找经验丰富的专业人员,也不需要在数据库上安装其他工具,通过在数据库上操作就可以获得可执行的恢复脚本文件,省时省力。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请实施例一提供的一种数据库数据自动恢复的方法流程图。
图2是本申请实施例二提供的一种数据库数据自动恢复的方法流程图。
图3是本申请实施例三提供的一种数据库数据自动恢复的装置。
图4是本申请实施例四提供的一种得到误更新恢复脚本文件的装置。
图5是本申请实施例五提供的一种得到误删除恢复脚本文件的装置。
图6是本申请实施例六提供的一种按照预设文本处理方式得到误更新恢复脚本文件的装置。
图7是本申请实施例七提供的一种按照预设文本处理方式得到误删除恢复脚本文件的装置。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
实施例一
请参阅图1,图1是本申请实施例一提供的一种数据库数据自动恢复的方法流程图。如图1所示,本实施例提供的数据库数据自动恢复的方法包括:
步骤101、执行回滚命令判断是否增加了操作类型。
所述回滚命令用于回滚所述操作类型的历史记录。
步骤102、当判断结果为增加了操作类型时,判断操作类型是否为目标操作类型;所述目标操作类型为误更新操作或误删除操作。
步骤103、当判断结果为目标操作类型时,判断操作类型是否为误更新操作。
步骤104、当目标操作类型为误更新操作时,获取待恢复数据库信息,并根据所述待恢复数据库信息执行预设的误更新操作恢复程序,得到误更新恢复脚本文件。
步骤105、当目标操作类型不是误更新操作时,获取待恢复数据库信息,并根据所述待恢复数据库信息执行预设的误删除操作恢复程序,得到误删除恢复脚本文件。
通过上述方法,在误操作后不需要找经验丰富的专业人员,也不需要在数据库上安装其他工具,通过在数据库上操作就可以获得可执行的恢复脚本文件,省时省力。
实施例二
请参阅图2,图2是本申请实施例二提供的一种数据库数据自动恢复的方法流程图。如图2所示,本实施例的数据库数据自动恢复的方法包括:
步骤201、执行回滚命令判断是否增加了操作类型。
所述回滚命令用于回滚所述操作类型的历史记录。
步骤202、当判断结果为增加了操作类型时,判断增加的操作类型是否为目标操作类型。
所述目标操作类型为误更新操作和误删除操作。
步骤203、当操作类型为目标操作类型时,判读操作类型是否为误更新操作。
步骤204、当操作类型为误更新操作类型时,获取待恢复数据库信息,包括二进制日志位置、二进制日志名称、误更新操作的开始更新时间和结束更新时间。
具体的,执行f-input-tb-desc获取待恢复数据库信息,包括binlog位置和名称以及开始和结束的时间。
步骤205、利用二进制日志解析命令根据所述二进制日志位置、所述二进制日志名称、所述开始更新时间和所述结束更新时间解析得到第一解析文件。
具体的,利用Mysql自带的mysqlbinlog解析命令对binlog位置和名称以及开始和结束时间进行解析存放于当前目录下analysis-binlog.txt文件中。
步骤206、根据所述待恢复数据库信息拼装所述误更新操作对应的第一待恢复数据表中的字眼并将拼装的结果赋值给第一预设变量。
所述第一待恢复数据表为所述待恢复数据库信息对应的数据库中因所述误更新操作而发生数据变化的表。
具体的,根据f-input-tb-desc获取待恢复数据库信息拼装所述误更新操作对应的表中的字眼并将拼装的结果赋值给变量update-con。
步骤207、根据所述待恢复数据库信息获取所述第一待恢复数据表的列名并将所述第一待恢复数据表的列名存储在第一预设文件中。
具体的,根据f-input-tb-desc获取的待恢复数据库信息使用MySQL自带的mysql命令获取待恢复数据表的列名并将列名存储在当前目录下的tb-desc.txt文件中。
步骤208、统计所述第一待恢复数据表的字段总数并按照第一预设赋值方式将所述字段总数赋值给第三预设变量。
具体的,使用linux文本处理命令读取tb-desc.txt统计待恢复数据表的字段总数赋值给变量col-num,并将变量col-num赋值给变量at-col-num。
步骤209、按照第一预设文件处理方式对所述第一预设文件中的内容进行处理,得到第一处理文件。
具体的,使用linux文本处理命令将tb-desc.txt文件里的列名增加字符“=”,例如coll变成coll=。
步骤210、将所述第一预设变量到预设字段之间的行存储到所述第一解析文件中,得到第一处理解析文件。
具体的,读取analysis-binlog.txt文件并将update-con到“COMMIT”和update-con到“#at”之间的行转存于analysis-update.txt文件中。
如果有被转换为时间戳的字段信息,将analysis-update.txt中相应字段值增加MySQL自带的from-unixtime函数。
步骤211、读取所述第一处理解析文件的解析文本,并将按照第一预设解析文本处理方式进行处理后的解析文本存储于预设脚本文件中,得到初始误更新恢复脚本文件。
具体的,将analysis_update.txt中每一个update记录的前缀为“###”的“WHERE”与“SET”调换并将每一行中的“###”去掉;“/*”到“*/”之间的注释替换为“,”;“#at”开头的行替换为“;”;将at_col_num对应的行“,”替换为“;”;将所有的“WHERE”到at_col_num之间的每一行“,”替换为“AND”;将“SET”到“WHERE”之间的“;”去掉;将结果存放于rollback_update.sql文件中。
如果含有负值的整型字段则将rollback-update.sql中对应字段多余的信息去掉,仅保留正确的负值。
步骤212、根据所述第一处理文件的内容和第一预设脚本文件处理方式对所述初始误更新恢复脚本文件进行处理得到误更新恢复脚本文件。
具体的,将rollback_update.sql文件中对应的“at-n=”与tb_desc.txt文件的行值进行替换,其中n表示所在tb_desc.txt文件中的第n行。
步骤213、当目标操作类型不是误更新操作时,获取待恢复数据库信息,包括二进制日志位置、二进制日志名称、误删除操作的开始删除时间和结束删除时间。
具体的,执行f-input-tb-desc获取待恢复数据库信息,包括binlog位置和名称以及开始和结束的时间。
步骤214、利用二进制日志解析命令根据所述二进制日志位置、所述二进制日志名称、所述开始删除时间和所述结束删除时间解析得到第二解析文件。
具体的,利用Mysql自带的mysqlbinlog解析命令对binlog位置和名称以及开始和结束时间进行解析存放于当前目录下analysis-binlog.txt文件中。
步骤215、根据所述待恢复数据库信息拼装所述误删除操作对应的第二待恢复数据表中的字眼并将拼装的结果赋值给第二预设变量。
所述第二待恢复数据表为所述待恢复数据库信息对应的数据库中因所述误删除操作而发生数据变化的表。
具体的,根据f-input-tb-desc获取待恢复数据库信息拼装所述误删除操作对应的表中的字眼并将拼装的结果赋值给变量delete-con。
步骤216、根据所述待恢复数据库信息获取所述第二待恢复数据表的列名并将所述第二待恢复数据表的列名存储在第二预设文件中。
具体的,根据f-input-tb-desc获取的待恢复数据库信息使用MySQL自带的mysql命令获取待删除数据表的列名并将列名存储在当前目录下的tb-desc.txt文件中。
步骤217、统计所述第二待恢复数据表的字段总数并按照第二预设赋值方式将所述字段总数赋值给第四预设变量。
具体的,使用linux文本处理命令读取tb-desc.txt统计待恢复数据表的字段总数赋值给变量col-num,并将变量col-num赋值给变量at-col-num。
步骤218、按照第二预设文件处理方式对所述第二预设文件中的内容进行处理,得到第二处理文件。
具体的,使用linux文本处理命令将tb-desc.txt文件里的列名增加字符“=”,例如coll变成coll=。
步骤219、将所述第二预设变量到预设字段之间的行存储到所述第二解析文件中,得到第二处理解析文件。
具体的,读取analysis-binlog.txt文件并将delete-con到“COMMIT”和delete-con到“#at”之间的行转存于analysis-delete.txt文件中。
如果有被转换为时间戳的字段信息,将analysis-update.txt中相应字段值增加MySQL自带的from-unixtime函数。
步骤220、读取所述第二处理解析文件的解析文本,并将按照第二预设解析文本处理方式进行处理后的解析文本存储于预设脚本文件中,得到初始误删除恢复脚本文件。
具体的,将analysis_delete.txt中每一个delete记录的前缀为“###”的“WHERE”与“SET”调换并将每一行中的“###”去掉;“/*”到“*/”之间的注释替换为“,”;“#at”开头的行替换为“;”;将at_col_num对应的行“,”替换为“;”;将所有的“WHERE”到at_col_num之间的每一行“,”替换为“AND”;将“SET”到“WHERE”之间的“;”去掉;将结果存放于rollback_delete.sql文件中。
如果含有负值的整型字段则将rollback-delete.sql中对应字段多余的信息去掉,仅保留正确的负值。
步骤221、根据所述第二处理文件的内容和第二预设脚本文件处理方式对所述初始误删除恢复脚本文件进行处理得到误删除恢复脚本文件。
具体的,将rollback_delete.sql文件中对应的“at-n=”与tb_desc.txt文件的行值进行替换,其中n表示所在tb_desc.txt文件中的第n行。
本实施例中提到具体的文件名称及命名等专业人员可自行更换,均属于本申请的保护范围。
实施例三
请参阅图3,图3是本申请实施例三提供的一种数据库数据自动恢复的装置。如图3所示,本实施例的数据库数据自动恢复的装置包括:
判断模块301,通过执行回滚命令判断是否增加了操作类型,得到第一判断结果;所述回滚命令用于回滚所述操作类型的历史记录。
结果模块302,当所述第一判断结果为是时,判断增加的所述操作类型是否为目标操作类型,得到第二判断结果;所述目标操作类型为误更新操作或误删除操作。
执行模块303,当所述第二判断结果为是时,获取待恢复数据库信息;若所述目标操作类型为误更新操作,根据所述待恢复数据库信息执行预设的误更新操作恢复程序,得到误更新恢复脚本文件;若所述目标操作类型为误删除操作时,根据所述待恢复数据库信息执行预设的误删除操作恢复程序,得到误删除恢复脚本文件。
恢复模块304,根据所述误更新恢复脚本文件和/或误删除恢复脚本文件恢复所述待恢复数据库信息对应的数据库。
实施例四
待恢复数据库信息包括二进制日志位置、二进制日志名称、所述误更新操作的开始更新时间和结束更新时间。
请参阅图4,图4是本申请实施例四提供的一种得到误更新恢复脚本文件的装置。如图4所示,根据所述待恢复数据库信息执行预设的误更新操作恢复程序,得到误更新恢复脚本文件的装置包括:
第一解析模块401,利用二进制日志解析命令根据所述二进制日志位置、所述二进制日志名称、所述开始更新时间和所述结束更新时间解析得到第一解析文件。
第一赋值模块402,根据所述待恢复数据库信息拼装所述误更新操作对应的第一待恢复数据表中的字眼并将拼装的结果赋值给第一预设变量;所述第一待恢复数据表为所述待恢复数据库信息对应的数据库中因所述误更新操作而发生数据变化的表。
第一存储模块403,根据所述待恢复数据库信息获取所述第一待恢复数据表的列名并将所述第一待恢复数据表的列名存储在第一预设文件中。
第一结果模块404,根据所述第一解析文件、所述第一预设变量和所述第一预设文件按照预设文本处理方式得到误更新恢复脚本文件。
实施例五
待恢复数据库信息包括二进制日志位置、二进制日志名称、所述误删除操作的开始删除时间和结束删除时间。
请参阅图5,图5是本申请实施例五提供的一种得到误删除恢复脚本文件的装置。如图5所示,根据所述待恢复数据库信息执行预设的误删除操作恢复程序,得到误删除恢复脚本文件的装置包括:
第二解析模块501,利用二进制日志解析命令根据所述二进制日志位置、所述二进制日志名称、所述开始删除时间和所述结束删除时间解析得到第二解析文件。
第三赋值模块502,根据所述待恢复数据库信息拼装所述误删除操作对应的第二待恢复数据表中的字眼并将拼装的结果赋值给第二预设变量;所述第二待恢复数据表为所述待恢复数据库信息对应的数据库中因所述误删除操作而发生数据变化的表。
第四存储模块503,根据所述待恢复数据库信息获取所述第二待恢复数据表的列名并将所述第二待恢复数据表的列名存储在第二预设文件中。
第二结果模块504,根据所述第二解析文件、所述第二预设变量和所述第二预设文件按照预设文本处理方式得到误删除恢复脚本文件。
实施例六
本实施例是在实施例四的基础上按照预设文本处理方式得到误更新恢复脚本文件的装置。
请参阅图6,图6是本申请实施例六提供的一种按照预设文本处理方式得到误更新恢复脚本文件的装置。
如图6所示,根据第一解析文件、第一预设变量和第一预设文件按照预设文本处理方式得到误更新恢复脚本文件的装置包括:
第二赋值模块601,统计所述第一待恢复数据表的字段总数并按照第一预设赋值方式将所述字段总数赋值给第二预设变量。
第一处理模块602,按照第一预设文件处理方式对所述第一预设文件中的内容进行处理,得到第一处理文件。
第二存储模块603,将所述第一预设变量到预设字段之间的行存储到所述第一解析文件中,得到第一处理解析文件。
第三存储模块604,读取所述第一处理解析文件的解析文本,并将按照第一预设解析文本处理方式进行处理后的解析文本存储于预设脚本文件中,得到初始误更新恢复脚本文件。
第一获取模块605,根据所述第一处理文件的内容和第一预设脚本文件处理方式对所述初始误更新恢复脚本文件进行处理得到误更新恢复脚本文件。
实施例七
本实施例是在实施例五的基础上按照预设文本处理方式得到误删除恢复脚本文件的装置。
请参阅图7,图7是本申请实施例七提供的一种按照预设文本处理方式得到误删除恢复脚本文件的装置。
如图7所示,根据第二解析文件、第二预设变量和第二预设文件按照预设文本处理方式得到误删除恢复脚本文件的装置包括:
第四赋值模块701,统计所述第二待恢复数据表的字段总数并按照第二预设赋值方式将所述字段总数赋值给第二预设变量;
第二处理模块702,按照第二预设文件处理方式对所述第二预设文件中的内容进行处理,得到第二处理文件;
第五存储模块703,将所述第二预设变量到预设字段之间的行存储到所述第二解析文件中,得到第二处理解析文件;
第六存储模块704,读取所述第二处理解析文件的解析文本,并将按照第二预设解析文本处理方式进行处理后的解析文本存储于预设脚本文件中,得到初始误删除恢复脚本文件;
第二获取模块705,根据所述第二处理文件的内容和第二预设脚本文件处理方式对所述初始误删除恢复脚本文件进行处理得到误删除恢复脚本文件。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (8)

1.一种数据库数据自动恢复的方法,其特征在于,包括:
通过执行回滚命令判断是否增加了操作类型,得到第一判断结果;所述回滚命令用于回滚所述操作类型的历史记录;
当所述第一判断结果为是时,判断增加的所述操作类型是否为目标操作类型,得到第二判断结果;所述目标操作类型为误更新操作或误删除操作;
当所述第二判断结果为是时,获取待恢复数据库信息;
若所述目标操作类型为误更新操作,根据所述待恢复数据库信息执行预设的误更新操作恢复程序,得到误更新恢复脚本文件;若所述目标操作类型为误删除操作时,根据所述待恢复数据库信息执行预设的误删除操作恢复程序,得到误删除恢复脚本文件;
根据所述误更新恢复脚本文件和/或误删除恢复脚本文件恢复所述待恢复数据库信息对应的数据库;
所述待恢复数据库信息包括二进制日志位置、二进制日志名称、所述误更新操作的开始更新时间和结束更新时间;
所述根据所述待恢复数据库信息执行预设的误更新操作恢复程序,得到误更新恢复脚本文件,包括:
利用二进制日志解析命令根据所述二进制日志位置、所述二进制日志名称、所述开始更新时间和所述结束更新时间解析得到第一解析文件;
根据所述待恢复数据库信息拼装所述误更新操作对应的第一待恢复数据表中的字眼并将拼装的结果赋值给第一预设变量;所述第一待恢复数据表为所述待恢复数据库信息对应的数据库中因所述误更新操作而发生数据变化的表;
根据所述待恢复数据库信息获取所述第一待恢复数据表的列名并将所述第一待恢复数据表的列名存储在第一预设文件中;
根据所述第一解析文件、所述第一预设变量和所述第一预设文件按照预设文本处理方式得到误更新恢复脚本文件。
2.根据权利要求1所述的数据库数据自动恢复的方法,其特征在于,所述根据所述第一解析文件、所述第一预设变量和所述第一预设文件按照预设文本处理方式得到误更新恢复脚本文件,包括:
统计所述第一待恢复数据表的字段总数并按照第一预设赋值方式将所述字段总数赋值给第三预设变量;
按照第一预设文件处理方式对所述第一预设文件中的内容进行处理,得到第一处理文件;
将所述第一预设变量到预设字段之间的行存储到所述第一解析文件中,得到第一处理解析文件;
读取所述第一处理解析文件的解析文本,并将按照第一预设解析文本处理方式进行处理后的解析文本存储于预设脚本文件中,得到初始误更新恢复脚本文件;
根据所述第一处理文件的内容和第一预设脚本文件处理方式对所述初始误更新恢复脚本文件进行处理得到误更新恢复脚本文件。
3.根据权利要求1所述的数据库数据自动恢复的方法,其特征在于,所述待恢复数据库信息包括二进制日志位置、二进制日志名称、所述误删除操作的开始删除时间和结束删除时间;
所述根据所述待恢复数据库信息执行预设的误删除操作恢复程序,得到误删除恢复脚本文件,包括:
利用二进制日志解析命令根据所述二进制日志位置、所述二进制日志名称、所述开始删除时间和所述结束删除时间解析得到第二解析文件;
根据所述待恢复数据库信息拼装所述误删除操作对应的第二待恢复数据表中的字眼并将拼装的结果赋值给第二预设变量;所述第二待恢复数据表为所述待恢复数据库信息对应的数据库中因所述误删除操作而发生数据变化的表;
根据所述待恢复数据库信息获取所述第二待恢复数据表的列名并将所述第二待恢复数据表的列名存储在第二预设文件中;
根据所述第二解析文件、所述第二预设变量和所述第二预设文件按照预设文本处理方式得到误删除恢复脚本文件。
4.根据权利要求3所述的数据库数据自动恢复的方法,其特征在于,所述根据所述第二解析文件、所述第二预设变量和所述第二预设文件按照预设文本处理方式得到误删除恢复脚本文件,包括:
统计所述第二待恢复数据表的字段总数并按照第二预设赋值方式将所述字段总数赋值给第二预设变量;
按照第二预设文件处理方式对所述第二预设文件中的内容进行处理,得到第二处理文件;
将所述第二预设变量到预设字段之间的行存储到所述第二解析文件中,得到第二处理解析文件;
读取所述第二处理解析文件的解析文本,并将按照第二预设解析文本处理方式进行处理后的解析文本存储于预设脚本文件中,得到初始误删除恢复脚本文件;
根据所述第二处理文件的内容和第二预设脚本文件处理方式对所述初始误删除恢复脚本文件进行处理得到误删除恢复脚本文件。
5.一种数据库数据自动恢复的装置,其特征在于,包括:
判断模块,通过执行回滚命令判断是否增加了操作类型,得到第一判断结果;所述回滚命令用于回滚所述操作类型的历史记录;
结果模块,当所述第一判断结果为是时,判断增加的所述操作类型是否为目标操作类型,得到第二判断结果;所述目标操作类型为误更新操作或误删除操作;
执行模块,当所述第二判断结果为是时,获取待恢复数据库信息;若所述目标操作类型为误更新操作,根据所述待恢复数据库信息执行预设的误更新操作恢复程序,得到误更新恢复脚本文件;若所述目标操作类型为误删除操作时,根据所述待恢复数据库信息执行预设的误删除操作恢复程序,得到误删除恢复脚本文件;
恢复模块,根据所述误更新恢复脚本文件和/或误删除恢复脚本文件恢复所述待恢复数据库信息对应的数据库;
待恢复数据库信息包括二进制日志位置、二进制日志名称、所述误更新操作的开始更新时间和结束更新时间;
根据所述待恢复数据库信息执行预设的误更新操作恢复程序,得到误更新恢复脚本文件的装置包括:
第一解析模块,利用二进制日志解析命令根据所述二进制日志位置、所述二进制日志名称、所述开始更新时间和所述结束更新时间解析得到第一解析文件;
第一赋值模块,根据所述待恢复数据库信息拼装所述误更新操作对应的第一待恢复数据表中的字眼并将拼装的结果赋值给第一预设变量;所述第一待恢复数据表为所述待恢复数据库信息对应的数据库中因所述误更新操作而发生数据变化的表;
第一存储模块,根据所述待恢复数据库信息获取所述第一待恢复数据表的列名并将所述第一待恢复数据表的列名存储在第一预设文件中;
第一结果模块,根据所述第一解析文件、所述第一预设变量和所述第一预设文件按照预设文本处理方式得到误更新恢复脚本文件。
6.根据权利要求5所述的数据库数据自动恢复的装置,其特征在于,所述根据所述第一解析文件、所述第一预设变量和所述第一预设文件按照预设文本处理方式得到误更新恢复脚本文件的装置包括:
第二赋值模块,统计所述第一待恢复数据表的字段总数并按照第一预设赋值方式将所述字段总数赋值给第二预设变量;
第一处理模块,按照第一预设文件处理方式对所述第一预设文件中的内容进行处理,得到第一处理文件;
第二存储模块,将所述第一预设变量到预设字段之间的行存储到所述第一解析文件中,得到第一处理解析文件;
第三存储模块,读取所述第一处理解析文件的解析文本,并将按照第一预设解析文本处理方式进行处理后的解析文本存储于预设脚本文件中,得到初始误更新恢复脚本文件;
第一获取模块,根据所述第一处理文件的内容和第一预设脚本文件处理方式对所述初始误更新恢复脚本文件进行处理得到误更新恢复脚本文件。
7.根据权利要求5所述的数据库数据自动恢复的装置,其特征在于,待恢复数据库信息包括二进制日志位置、二进制日志名称、所述误删除操作的开始删除时间和结束删除时间;
根据所述待恢复数据库信息执行预设的误删除操作恢复程序,得到误删除恢复脚本文件的装置包括:
第二解析模块,利用二进制日志解析命令根据所述二进制日志位置、所述二进制日志名称、所述开始删除时间和所述结束删除时间解析得到第二解析文件;
第三赋值模块,根据所述待恢复数据库信息拼装所述误删除操作对应的第二待恢复数据表中的字眼并将拼装的结果赋值给第二预设变量;所述第二待恢复数据表为所述待恢复数据库信息对应的数据库中因所述误删除操作而发生数据变化的表;
第四存储模块,根据所述待恢复数据库信息获取所述第二待恢复数据表的列名并将所述第二待恢复数据表的列名存储在第二预设文件中;
第二结果模块,根据所述第二解析文件、所述第二预设变量和所述第二预设文件按照预设文本处理方式得到误删除恢复脚本文件。
8.根据权利要求7所述的数据库数据自动恢复的装置,其特征在于,所述根据所述第二解析文件、所述第二预设变量和所述第二预设文件按照预设文本处理方式得到误删除恢复脚本文件的装置包括:
第四赋值模块,统计所述第二待恢复数据表的字段总数并按照第二预设赋值方式将所述字段总数赋值给第二预设变量;
第二处理模块,按照第二预设文件处理方式对所述第二预设文件中的内容进行处理,得到第二处理文件;
第五存储模块,将所述第二预设变量到预设字段之间的行存储到所述第二解析文件中,得到第二处理解析文件;
第六存储模块,读取所述第二处理解析文件的解析文本,并将按照第二预设解析文本处理方式进行处理后的解析文本存储于预设脚本文件中,得到初始误删除恢复脚本文件;
第二获取模块,根据所述第二处理文件的内容和第二预设脚本文件处理方式对所述初始误删除恢复脚本文件进行处理得到误删除恢复脚本文件。
CN201911280100.3A 2019-12-13 2019-12-13 一种数据库数据自动恢复的方法和装置 Active CN111045868B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911280100.3A CN111045868B (zh) 2019-12-13 2019-12-13 一种数据库数据自动恢复的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911280100.3A CN111045868B (zh) 2019-12-13 2019-12-13 一种数据库数据自动恢复的方法和装置

Publications (2)

Publication Number Publication Date
CN111045868A CN111045868A (zh) 2020-04-21
CN111045868B true CN111045868B (zh) 2023-12-05

Family

ID=70235947

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911280100.3A Active CN111045868B (zh) 2019-12-13 2019-12-13 一种数据库数据自动恢复的方法和装置

Country Status (1)

Country Link
CN (1) CN111045868B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117971565B (zh) * 2024-03-29 2024-06-18 天津南大通用数据技术股份有限公司 一种恢复列存储分布式数据库误删除数据的方法及***

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101694637A (zh) * 2009-11-06 2010-04-14 金蝶软件(中国)有限公司 一种数据库恢复的方法和***
CN103617277A (zh) * 2013-12-09 2014-03-05 山东瀚高基础软件股份有限公司 一种还原误删除的数据表内容的方法
US8874519B1 (en) * 2007-12-18 2014-10-28 Symantec Corporation Method and apparatus for restoring a table in a database
CN104765659A (zh) * 2015-04-30 2015-07-08 北京奇虎科技有限公司 应用于数据库的数据恢复方法及装置
CN108196980A (zh) * 2017-12-28 2018-06-22 深圳市得微电子有限责任公司 误删除数据恢复方法、闪存设备及计算机可读存储介质
CN109388523A (zh) * 2018-09-26 2019-02-26 四川巧夺天工信息安全智能设备有限公司 一种基于二进制日志文件恢复MySQL数据库的方法
CN109634774A (zh) * 2017-10-09 2019-04-16 北京国双科技有限公司 数据备份、恢复方法及装置
CN109815233A (zh) * 2018-12-27 2019-05-28 北京奇艺世纪科技有限公司 一种数据表的处理方法和***

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874519B1 (en) * 2007-12-18 2014-10-28 Symantec Corporation Method and apparatus for restoring a table in a database
CN101694637A (zh) * 2009-11-06 2010-04-14 金蝶软件(中国)有限公司 一种数据库恢复的方法和***
CN103617277A (zh) * 2013-12-09 2014-03-05 山东瀚高基础软件股份有限公司 一种还原误删除的数据表内容的方法
CN104765659A (zh) * 2015-04-30 2015-07-08 北京奇虎科技有限公司 应用于数据库的数据恢复方法及装置
CN109634774A (zh) * 2017-10-09 2019-04-16 北京国双科技有限公司 数据备份、恢复方法及装置
CN108196980A (zh) * 2017-12-28 2018-06-22 深圳市得微电子有限责任公司 误删除数据恢复方法、闪存设备及计算机可读存储介质
CN109388523A (zh) * 2018-09-26 2019-02-26 四川巧夺天工信息安全智能设备有限公司 一种基于二进制日志文件恢复MySQL数据库的方法
CN109815233A (zh) * 2018-12-27 2019-05-28 北京奇艺世纪科技有限公司 一种数据表的处理方法和***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黑马程序员.网站数据库维护.《网页制作与网站建设实战教程》.2018,第346页. *

Also Published As

Publication number Publication date
CN111045868A (zh) 2020-04-21

Similar Documents

Publication Publication Date Title
EP0660235A1 (en) Method for automated software application testing
CN107193871B (zh) 数据库修复方法及装置
KR20060049879A (ko) 최적화된 복원 계획을 생성하는 방법
CN113111129A (zh) 数据同步方法、装置、设备及存储介质
CN109376142B (zh) 数据迁移方法及终端设备
US10789226B2 (en) Method and apparatus for data processing
CN111045868B (zh) 一种数据库数据自动恢复的方法和装置
CN116149902A (zh) 数据恢复方法及装置、电子设备、计算机可读存储介质
CN115238655A (zh) 一种json数据编辑方法和装置
CN112783749A (zh) 一种静态代码扫描优化方法、装置、电子设备和存储介质
CN112068981B (zh) Linux操作***中基于知识库的故障扫描恢复方法及***
CN112631826B (zh) 一种备份处理方法、装置及计算机可读存储介质
WO2017067397A1 (zh) 一种数据恢复方法和装置
CN104636471A (zh) 一种程序代码的查找方法及装置
CN116775372A (zh) 误操作的数据恢复方法、装置、存储介质及设备
CN111737331A (zh) 一种数据库与对象存储的事务一致性处理方法及***
EP3731109A1 (en) Versioned backup on object addressable storage system
CN111698330B (zh) 存储集群的数据恢复方法、装置及服务器
CN115167884A (zh) 一种kubernetes部署方法及***
CN108132971B (zh) 数据库碎片文件的分析方法和装置
CN114356404A (zh) 接口文档生成方法、***和计算机可读存储介质
CN114138565A (zh) 一种加速数据库备份的方法及***
CN113886352A (zh) 分布式文件***的元数据恢复方法、装置、设备及介质
CN114237976A (zh) 一种数据获取方法及装置
CN112235599A (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