CN111078719A - 数据的恢复方法及装置、存储介质和处理器 - Google Patents

数据的恢复方法及装置、存储介质和处理器 Download PDF

Info

Publication number
CN111078719A
CN111078719A CN201911419911.7A CN201911419911A CN111078719A CN 111078719 A CN111078719 A CN 111078719A CN 201911419911 A CN201911419911 A CN 201911419911A CN 111078719 A CN111078719 A CN 111078719A
Authority
CN
China
Prior art keywords
data
target
database
changed
databases
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
Application number
CN201911419911.7A
Other languages
English (en)
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.)
Beijing Hujin Xinrong Technology Co ltd
Original Assignee
Beijing Hujin Xinrong 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 Beijing Hujin Xinrong Technology Co ltd filed Critical Beijing Hujin Xinrong Technology Co ltd
Priority to CN201911419911.7A priority Critical patent/CN111078719A/zh
Publication of CN111078719A publication Critical patent/CN111078719A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F16/2358Change logging, detection, and notification
    • 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/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据的恢复方法及装置、存储介质和处理器。该发明包括:在测试程序执行之前,将多个数据库中的数据保存至多个数据表中,并获取多个日志,其中,数据库与日志一一对应,日志用于记录对应的数据库中的数据变化信息;在测试程序执行完成之后,依据日志中记录的内容确定目标数据表,其中,目标数据表中的数据发生过变更;将目标数据表中包含的数据更新至目标数据库中以替换发生变更的数据,其中,目标数据库为数据发生过变更的目标数据表对应的数据库。通过本发明,解决了相关技术中在完成自动化测试后清理数据的环节中,需要测试人员自行编写SQL来执行数据清理的步骤,这种完全依赖人工的方式,效率较低,操作繁琐的问题。

Description

数据的恢复方法及装置、存储介质和处理器
技术领域
本发明涉及数据恢复领域,具体而言,涉及一种数据的恢复方法及装置、存储介质和处理器。
背景技术
在一个TestSuite(测试集,包含一组TestCase,每个TestCase是一个测试用例的实现)里的所有TestCase执行完毕后,需要进入数据清理阶段对MySQL中的数据进行清理,即自动恢复和本TestSuite有关的MySQL数据库的数据变更,将变更数据恢复到本TestSuite执行之前的状态,其中,数据变更是指新增、删除和更新的记录。
为什么需要做数据清理?是因为如果不进行数据清理,那么本次TestSuite新增和更新的数据,可能会影响到接下来的TestSuite的执行;会因为接下来的TestSuite中使用到了本次变更的数据而导致程序应用的处理行为发生变化,和预期结果不一致。
清理数据的环节,是为了使数据库恢复到执行本TestSuite之前的状态。此处,变更的数据包括本TestSuite在准备数据时新增或更新的数据,以及执行case过程中新增或更新的数据。
相关技术中,需要测试人员编写SQL语句对发生变更的数据进行清理,测试人员需要对TestSuite准备数据的过程进行逆向编写恢复数据的SQL,并且要求操作人员了解case执行过程中有哪些数据发生了变更,从而针对性的编写恢复数据的SQL。
但是,目前的数据清理方法中存在以下缺点:
1)目前清理数据的环节,需要测试人员自行编写SQL来执行,完全依赖人工的方式,比较低效,操作繁琐。
2)清理变更数据的效果不佳,由于case的执行过程涉及的变更数据会分布在多个数据库和数据表,所以,不容易将所有变更数据全部恢复到最初状态。实际情况中,测试人员需要多次调整SQL语句才能达到比较彻底的数据清理效果。
针对相关技术中存在的上述问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种数据的恢复方法及装置、存储介质和处理器,以解决相关技术中在完成自动化测试后清理数据的环节中,需要测试人员自行编写SQL来执行数据清理的步骤,这种完全依赖人工的方式,效率较低,操作繁琐的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种数据的恢复方法。该发明包括:在测试程序执行之前,将多个数据库中的数据保存至多个数据表中,并获取多个日志,其中,数据库与日志一一对应,日志用于记录对应的数据库中的数据变化信息;在测试程序执行完成之后,依据日志中记录的内容确定目标数据表,其中,目标数据表中的数据发生过变更;将目标数据表中包含的数据更新至目标数据库中以替换发生变更的数据,其中,目标数据库为数据发生过变更的目标数据表对应的数据库。
进一步地,在将多个数据库中的数据保存至多个数据表中,并获取多个日志之前,该方法还包括:记录多个数据库的信息,其中,数据库的信息至少包括以下信息:数据库对应的IP地址、数据库对应的端口信息、数据库的用户名和数据库对应的密码。
进一步地,在测试程序执行之前,在将多个数据库中的数据保存至多个数据表中,并获取多个日志之后,该方法还包括:为每个数据库对应的多个数据表进行命名,其中,每个数据表的命名包括预设名称和字段;将命名后的多个数据表保存在一个预设格式的文件夹中,其中,文件夹的标签名为预设名称,预设格式的文件夹为本地文件夹;将每个文件夹放置在以每个数据库名称命名的目录下。
进一步地,在测试程序执行之前,在将多个数据库中的数据保存至多个数据表中,并获取多个日志之后,该方法还包括:获取多个日志对应的多个第一位置信息,其中,第一位置信息为每个日志中记录的最后一条变更的数据的变更信息,第一位置信息至少包括以下内容:数据变更的时间、数据对应的数据表名称。
进一步地,在测试程序执行完成之后,依据日志中记录的内容确定数据发生过变更的目标数据表之前,该方法还包括:获取多个日志对应的多个第二位置信息,其中,第二位置信息为每个日志中记录的最后一条变更的数据的变更信息。
进一步地,在测试程序执行完成之后,依据日志中记录的内容确定数据发生过变更的目标数据表包括:将多个第一位置信息与多个第二位置信息进行对比;将第一位置信息与第二位置信息不一致的日志,确定为目标日志;将目标日志中的从第一位置信息对应的变更时间到第二位置信息对应的变更时间之间的变更数据确定为目标变更数据;通过目标变更数据对应的位置信息,确定数据发生变化的多个目标数据表。
进一步地,将目标数据表中包含的数据更新至目标数据库中以替换发生变更的数据包括:依据目标数据表的名称中包含的预设名称,读取目标文件夹,其中,目标文件夹为保存在本地的且为预设格式的文件夹;依据目标文件夹,读取目标文件夹中包含的多个数据表中包含的数据;将目标数据表中的数据变更为多个数据表中包含的数据。
为了实现上述目的,根据本发明的另一方面,提供了一种数据的恢复装置。该装置包括:第一保存单元,用于在测试程序执行之前,将多个数据库中的数据保存至多个数据表中,并获取多个日志,其中,数据库与日志一一对应,日志用于记录对应的数据库中的数据变化信息;确定单元,用于在测试程序执行完成之后,依据日志中记录的内容确定目标数据表,其中,目标数据表中的数据发生过变更;更新单元,用于将目标数据表中包含的数据更新至目标数据库中以替换发生变更的数据,其中,目标数据库为数据发生过变更的目标数据表对应的数据库。
为了实现上述目的,根据本申请的另一方面,提供了一种存储介质,存储介质包括存储的程序,其中,该程序执行上述任意一项的一种数据的恢复方法。
为了实现上述目的,根据本申请的另一方面,提供了一种处理器,存储介质包括存储的程序,其中,该程序执行上述任意一项的一种数据的恢复方法。
通过本发明,采用以下步骤:在测试程序执行之前,将多个数据库中的数据保存至多个数据表中,并获取多个日志,其中,数据库与日志一一对应,日志用于记录对应的数据库中的数据变化信息;在测试程序执行完成之后,依据日志中记录的内容确定目标数据表,其中,目标数据表中的数据发生过变更;将目标数据表中包含的数据更新至目标数据库中以替换发生变更的数据,其中,目标数据库为数据发生过变更的目标数据表对应的数据库,解决了相关技术中在完成自动化测试后清理数据的环节中,需要测试人员自行编写SQL来执行数据清理的步骤,这种完全依赖人工的方式,效率较低,操作繁琐的问题,进而达到了提高数据清理效率的技术效果。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例提供的一种数据的恢复方法的流程图;以及
图2是根据本发明实施例提供的一种数据的恢复装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,以下对本发明实施例涉及的部分名词或术语进行说明:
SQL命令:结构化程序语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
根据本发明的实施例,提供了一种数据的恢复方法。
图1是根据本发明实施例提供的一种数据的恢复方法的流程图。如图1所示,该发明包括以下步骤:
步骤S101,在测试程序执行之前,将多个数据库中的数据保存至多个数据表中,并获取多个日志,其中,数据库与日志一一对应,日志用于记录对应的数据库中的数据变化信息。
步骤S102,在测试程序执行完成之后,依据日志中记录的内容确定目标数据表,其中,目标数据表中的数据发生过变更。
步骤S103,将目标数据表中包含的数据更新至目标数据库中以替换发生变更的数据,其中,目标数据库为数据发生过变更的目标数据表对应的数据库。
具体地,本申请中,在TestSuite执行之前,将多个数据库中的数据通过数据表格保存在本地,同时获取多个数据库对应的多个日志(Binlog),Binlog是MySQL记录对数据库的改动的二进制格式的日志文件,只记录数据库中数据的变更操作,不记录查询操作,主要用于数据库的主从复制以及增量恢复。
在测试程序执行之后,再次查看各个数据库对应的日志,通过日志的记录变化来确定数据发生过变化的数据表。
进而通过每个数据库对应的Binlog来找出发生过数据变更对应的数据表,将之前保存在本地对应的数据表更新至发生过数据变更的数据库中使变更后的数据恢复到程序执行前的数据。
可选地,在将多个数据库中的数据保存至多个数据表中,并获取多个日志之前,该方法还包括:记录多个数据库的信息,其中,数据库的信息至少包括以下信息:数据库对应的IP地址、数据库对应的端口信息、数据库的用户名和数据库对应的密码。
上述地,在运行自动化测试的初始化阶段,此时,还没有开始执行任何测试Case;此时,读取并解析自动化测试工程的数据库配置文件,从配置文件里解析出来本自动化测试工程所依赖的所有的数据库的IP地址,端口,用户名和密码信息,有了这些信息就可以连接该数据库执行SQL命令,并将数据库列表和这些数据库信息记录在内存的全局变量中,供之后的步骤使用。
然后,通过执行SQL语句“set SESSION binlog_format='ROW'”将每个数据库的binlog设置为ROW格式,方便之后在之后的步骤中提取数据表名信息。
可选地,在测试程序执行之前,在将多个数据库中的数据保存至多个数据表中,并获取多个日志之后,该方法还包括:为每个数据库对应的多个数据表进行命名,其中,每个数据表的命名包括预设名称和字段;将命名后的多个数据表保存在一个预设格式的文件夹中,其中,文件夹的标签名为预设名称,预设格式的文件夹为本地文件夹;将每个文件夹放置在以每个数据库名称命名的目录下。
上述地,在TestSuite执行之前,依次连接每个数据库并将数据库里的数据录制到本地,以xml格式的文件来保存数据,每个数据表的数据保存为一个xml文件,xml文件以数据表的部分名称来命名,放在数据库命名的目录之下。
上述地,在录制的文件夹中存在多个或者一个数据表,xml文件夹的标签名即为数据表的部分名称,标签中各个属性的名称和值分别为该记录中的数据表字段和对应的值。
例如:其中一个数据库对应的xml文件夹中包括四个数据表,其命名如下:
Loan_account id=1
Loan_account id=2
Loan_account id=3
Loan_account id=4
其中,Loan_account为预设名称,id=1、id=2、id=3和id=4为字段,同时,Loan_account为xml文件夹的标签名。
需要说明的是,在本方案是基于DBUnit框架来实现的。当数据库里的内容没有变化时,本步骤只需要执行一次,本地保存的xml文件就会和自动化测试工程一同提交GitLab等代码管理仓库保存,并可以在之后被多次使用,直到数据库里的内容发生了变化,才需要再次执行本步骤将数据库的内容录制到本地文件中。
可选地,在测试程序执行之前,在将多个数据库中的数据保存至多个数据表中,并获取多个日志之后,该方法还包括:获取多个日志对应的多个第一位置信息,其中,第一位置信息为每个日志中记录的最后一条变更的数据的变更信息,第一位置信息至少包括以下内容:数据变更的时间、数据对应的数据表名称。
具体地,在TestSuite执行之前,先记录Binlog文件的当前Position,称为“Binlog起点”,在执行TestSuite之前,通过执行SQL的方式,读取每个数据库的已经写入Binlog文件的内容及Binlog结尾的Position(Binlog文件是逐行记录每个数据变更操作,Position是描述Binlog文件的当前行数,其中,Position是每条数据变更的时间在日志中的映射位置,在日志中,变更时间越早的数据信息在文件中的位置越靠前,因此,在程序执行之前,首先需要记录每个数据库对应的日志中记录的最后一条数据变更的信息),并将每个数据库的“Binlog起点”信息也记录到内存的全局变量中,留待之后步骤时使用。
上述地,执行SQL语句“show master status;”获得的结果的全部字段见下,其中File和Position就是我们要获取的Binlog文件及其结尾的Position信息:|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|Executed_Gtid_Set|
需要说明的是,日志中每条数据变更的信息中至少包括:数据变更的时间和变更数据对应的数据表名称。
可选地,在测试程序执行完成之后,依据日志中记录的内容确定数据发生过变更的目标数据表之前,该方法还包括:获取多个日志对应的多个第二位置信息,其中,第二位置信息为每个日志中记录的最后一条变更的数据的变更信息。
具体地,在TestSuite执行结束之后,再次通过执行SQL的方式访问每个数据库的当前的Binlog文件及其结尾的Position,这个Position称为“Binlog终点”。
因为没有数据库重启或者通过命令强制刷新,所以,Binlog文件是不会发生变化的,发生变化的只是数据发生变更对应的Binlog中记录的内容。
可选地,在测试程序执行完成之后,依据日志中记录的内容确定数据发生过变更的目标数据表包括:将多个第一位置信息与多个第二位置信息进行对比;将第一位置信息与第二位置信息不一致的日志,确定为目标日志;将目标日志中的从第一位置信息对应的变更时间到第二位置信息对应的变更时间之间的变更数据确定为目标变更数据;通过目标变更数据对应的位置信息,确定数据发生变化的多个目标数据表。
上述地,通过比较同一个数据库对应的日志中的第一位置信息和第二位置信息,即可确认发生数据变更的数据表,如果同一个日志中记录的最后一条数据在测试程序执行前后发生了变化,则可确认日志对应的数据库中的数据发生了变更,通过日志中新增的数据变更信息中包括的数据表名称,即可确认发生数据变更的数据表为哪些。
具体地,只需要比较同一个日志中的“Binlog终点”和“Binlog起点”是否相同:如果相同,则该数据库没有更新操作,数据未发生变更;如果不相同,那么该数据库的数据已经发生了变更,需要进行数据恢复。
对于“Binlog终点”和“Binlog起点”不相同的数据库,读取从“Binlog起点”到“Binlog终点”之间的每一行的Binlog记录,并且从这些Binlog记录里过滤出来操作的所有的数据表名,这些就是在执行本TestSuite的过程中发生了数据变更的所有数据表。
执行SQL语句“show binlog events in'<Binlog文件>'from<Binlog起点>limit<Binlog终点-Binlog起点>;”可以读取从“Binlog起点”到“Binlog终点”之间的每一行的Binlog记录,获得的结果的全部字段见下:
|Log_name|Pos|Event_type|Server_id|End_log_pos|Info|
其中,Info的内容如下示例,是包含了<数据库>.<数据表>信息的,可以通过字符串匹配来提取数据表名的信息:
Info:table_id:273502(db_name.table_name)
可选地,将目标数据表中包含的数据更新至目标数据库中以替换发生变更的数据包括:依据目标数据表的名称中包含的预设名称,读取目标文件夹,其中,目标文件夹为保存在本地的且为预设格式的文件夹;依据目标文件夹,读取目标文件夹中包含的多个数据表中包含的数据;将目标数据表中的数据变更为多个数据表中包含的数据。
上述地,对上面发生了数据变更的数据表进行恢复数据的处理:读取以数据表名称的部分名称命名的xml文件,将这些xml文件里的内容覆盖更新到数据库之中(先删除数据表里所有数据再插入xml文件的内容),把xml文件内容恢复到数据库之中,本方案是基于DBUnit实现的。
通过本实施例中提供的上述方法,一种在自动化测试中,当TestSuite执行完毕之后,可以精准地、无需人工介入的、自动恢复数据库里相关数据变更,完成数据清理的方法。同时本实施例提供的上述方案还具备以下优点:
1)本方案的执行是根据Binlog来自动完成的,无需人工介入,也无需人工编写恢复数据的SQL;
2)本方案是根据Binlog来精准地判断本次TestSuite执行过程中,有哪些数据库的数据发生了数据变更,再针对性地进行恢复数据;这种方式可以精准地定位数据变更,并高效、全面、完整地恢复相关数据变更。
本发明实施例提供的一种数据的恢复方法,通过在测试程序执行之前,将多个数据库中的数据保存至多个数据表中,并获取多个日志,其中,数据库与日志一一对应,日志用于记录对应的数据库中的数据变化信息;在测试程序执行完成之后,依据日志中记录的内容确定目标数据表,其中,目标数据表中的数据发生过变更;将目标数据表中包含的数据更新至目标数据库中以替换发生变更的数据,其中,目标数据库为数据发生过变更的目标数据表对应的数据库,解决了相关技术中在完成自动化测试后清理数据的环节中,需要测试人员自行编写SQL来执行数据清理的步骤,这种完全依赖人工的方式,效率较低,操作繁琐的问题,进而达到了提高数据清理效率的技术效果。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例还提供了一种数据的恢复装置,需要说明的是,本发明实施例的一种数据的恢复装置可以用于执行本发明实施例所提供的用于一种数据的恢复方法。以下对本发明实施例提供的一种数据的恢复装置进行介绍。
图2是根据本发明实施例提供的一种数据的恢复装置的示意图。如图2所示,该装置包括:第一保存单元201,用于在测试程序执行之前,将多个数据库中的数据保存至多个数据表中,并获取多个日志,其中,数据库与日志一一对应,日志用于记录对应的数据库中的数据变化信息;确定单元202,用于在测试程序执行完成之后,依据日志中记录的内容确定目标数据表,其中,目标数据表中的数据发生过变更;更新单元202,用于将目标数据表中包含的数据更新至目标数据库中以替换发生变更的数据,其中,目标数据库为数据发生过变更的目标数据表对应的数据库。
本发明实施例提供的一种数据的恢复装置,通过第一保存单元201,用于在测试程序执行之前,将多个数据库中的数据保存至多个数据表中,并获取多个日志,其中,数据库与日志一一对应,日志用于记录对应的数据库中的数据变化信息;确定单元202,用于在测试程序执行完成之后,依据日志中记录的内容确定目标数据表,其中,目标数据表中的数据发生过变更;更新单元202,用于将目标数据表中包含的数据更新至目标数据库中以替换发生变更的数据,其中,目标数据库为数据发生过变更的目标数据表对应的数据库,解决了相关技术中在完成自动化测试后清理数据的环节中,需要测试人员自行编写SQL来执行数据清理的步骤,这种完全依赖人工的方式,效率较低,操作繁琐的问题,进而达到了提高数据清理效率的技术效果。
可选地,该装置还包括:记录单元,用于在将多个数据库中的数据保存至多个数据表中,并获取多个日志之前,记录多个数据库的信息,其中,数据库的信息至少包括以下信息:数据库对应的IP地址、数据库对应的端口信息、数据库的用户名和数据库对应的密码。
可选地,该装置还包括:命名单元,用于在测试程序执行之前,在将多个数据库中的数据保存至多个数据表中,并获取多个日志之后,为每个数据库对应的多个数据表进行命名,其中,每个数据表的命名包括预设名称和字段;第二保存单元,用于将命名后的多个数据表保存在一个预设格式的文件夹中,其中,文件夹的标签名为预设名称,预设格式的文件夹为本地文件夹;放置单元,用于将每个文件夹放置在以每个数据库名称命名的目录下。
可选地,该装置还包括:第一获取单元,用于在测试程序执行之前,在将多个数据库中的数据保存至多个数据表中,并获取多个日志之后,获取多个日志对应的多个第一位置信息,其中,第一位置信息为每个日志中记录的最后一条变更的数据的变更信息,第一位置信息至少包括以下内容:数据变更的时间、数据对应的数据表名称。
可选地,该装置还包括:第二获取单元,用于在测试程序执行完成之后,依据日志中记录的内容确定数据发生过变更的目标数据表之前,获取多个日志对应的多个第二位置信息,其中,第二位置信息为每个日志中记录的最后一条变更的数据的变更信息。
可选地,确定单元202包括:对比子单元,用于将多个第一位置信息与多个第二位置信息进行对比;第一确定子单元,用于将第一位置信息与第二位置信息不一致的日志,确定为目标日志;第二确定子单元,用于将目标日志中的从第一位置信息对应的变更时间到第二位置信息对应的变更时间之间的变更数据确定为目标变更数据;第三确定子单元,用于通过目标变更数据对应的位置信息,确定数据发生变化的多个目标数据表。
可选地,更新单元202包括:第一读取子单元,用于依据目标数据表的名称中包含的预设名称,读取目标文件夹,其中,目标文件夹为保存在本地的且为预设格式的文件夹;第二读取子单元,用于依据目标文件夹,读取目标文件夹中包含的多个数据表中包含的数据;变更子单元,用于将目标数据表中的数据变更为多个数据表中包含的数据。
一种数据的恢复装置包括处理器和存储器,上述第一保存单元201201等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决相关技术中在完成自动化测试后清理数据的环节中,需要测试人员自行编写SQL来执行数据清理的步骤,这种完全依赖人工的方式,效率较低,操作繁琐的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现一种数据的恢复方法。
本发明实施例提供了一种处理器,处理器用于运行程序,其中,程序运行时执行一种数据的恢复方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:在测试程序执行之前,将多个数据库中的数据保存至多个数据表中,并获取多个日志,其中,数据库与日志一一对应,日志用于记录对应的数据库中的数据变化信息;在测试程序执行完成之后,依据日志中记录的内容确定目标数据表,其中,目标数据表中的数据发生过变更;将目标数据表中包含的数据更新至目标数据库中以替换发生变更的数据,其中,目标数据库为数据发生过变更的目标数据表对应的数据库。
可选地,在将多个数据库中的数据保存至多个数据表中,并获取多个日志之前,该方法还包括:记录多个数据库的信息,其中,数据库的信息至少包括以下信息:数据库对应的IP地址、数据库对应的端口信息、数据库的用户名和数据库对应的密码。
可选地,在测试程序执行之前,在将多个数据库中的数据保存至多个数据表中,并获取多个日志之后,该方法还包括:为每个数据库对应的多个数据表进行命名,其中,每个数据表的命名包括预设名称和字段;将命名后的多个数据表保存在一个预设格式的文件夹中,其中,文件夹的标签名为预设名称,预设格式的文件夹为本地文件夹;将每个文件夹放置在以每个数据库名称命名的目录下。
可选地,在测试程序执行之前,在将多个数据库中的数据保存至多个数据表中,并获取多个日志之后,该方法还包括:获取多个日志对应的多个第一位置信息,其中,第一位置信息为每个日志中记录的最后一条变更的数据的变更信息,第一位置信息至少包括以下内容:数据变更的时间、数据对应的数据表名称。
可选地,在测试程序执行完成之后,依据日志中记录的内容确定数据发生过变更的目标数据表之前,该方法还包括:获取多个日志对应的多个第二位置信息,其中,第二位置信息为每个日志中记录的最后一条变更的数据的变更信息。
可选地,在测试程序执行完成之后,依据日志中记录的内容确定数据发生过变更的目标数据表包括:将多个第一位置信息与多个第二位置信息进行对比;将第一位置信息与第二位置信息不一致的日志,确定为目标日志;将目标日志中的从第一位置信息对应的变更时间到第二位置信息对应的变更时间之间的变更数据确定为目标变更数据;通过目标变更数据对应的位置信息,确定数据发生变化的多个目标数据表。
可选地,将目标数据表中包含的数据更新至目标数据库中以替换发生变更的数据包括:依据目标数据表的名称中包含的预设名称,读取目标文件夹,其中,目标文件夹为保存在本地的且为预设格式的文件夹;依据目标文件夹,读取目标文件夹中包含的多个数据表中包含的数据;将目标数据表中的数据变更为多个数据表中包含的数据。本文中的设备可以是服务器、PC、PAD、手机等。
本发明还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:在测试程序执行之前,将多个数据库中的数据保存至多个数据表中,并获取多个日志,其中,数据库与日志一一对应,日志用于记录对应的数据库中的数据变化信息;在测试程序执行完成之后,依据日志中记录的内容确定目标数据表,其中,目标数据表中的数据发生过变更;将目标数据表中包含的数据更新至目标数据库中以替换发生变更的数据,其中,目标数据库为数据发生过变更的目标数据表对应的数据库。
可选地,在将多个数据库中的数据保存至多个数据表中,并获取多个日志之前,该方法还包括:记录多个数据库的信息,其中,数据库的信息至少包括以下信息:数据库对应的IP地址、数据库对应的端口信息、数据库的用户名和数据库对应的密码。
可选地,在测试程序执行之前,在将多个数据库中的数据保存至多个数据表中,并获取多个日志之后,该方法还包括:为每个数据库对应的多个数据表进行命名,其中,每个数据表的命名包括预设名称和字段;将命名后的多个数据表保存在一个预设格式的文件夹中,其中,文件夹的标签名为预设名称,预设格式的文件夹为本地文件夹;将每个文件夹放置在以每个数据库名称命名的目录下。
可选地,在测试程序执行之前,在将多个数据库中的数据保存至多个数据表中,并获取多个日志之后,该方法还包括:获取多个日志对应的多个第一位置信息,其中,第一位置信息为每个日志中记录的最后一条变更的数据的变更信息,第一位置信息至少包括以下内容:数据变更的时间、数据对应的数据表名称。
可选地,在测试程序执行完成之后,依据日志中记录的内容确定数据发生过变更的目标数据表之前,该方法还包括:获取多个日志对应的多个第二位置信息,其中,第二位置信息为每个日志中记录的最后一条变更的数据的变更信息。
可选地,在测试程序执行完成之后,依据日志中记录的内容确定数据发生过变更的目标数据表包括:将多个第一位置信息与多个第二位置信息进行对比;将第一位置信息与第二位置信息不一致的日志,确定为目标日志;将目标日志中的从第一位置信息对应的变更时间到第二位置信息对应的变更时间之间的变更数据确定为目标变更数据;通过目标变更数据对应的位置信息,确定数据发生变化的多个目标数据表。
可选地,将目标数据表中包含的数据更新至目标数据库中以替换发生变更的数据包括:依据目标数据表的名称中包含的预设名称,读取目标文件夹,其中,目标文件夹为保存在本地的且为预设格式的文件夹;依据目标文件夹,读取目标文件夹中包含的多个数据表中包含的数据;将目标数据表中的数据变更为多个数据表中包含的数据。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (10)

1.一种数据的恢复方法,其特征在于,包括:
在测试程序执行之前,将多个数据库中的数据保存至多个数据表中,并获取多个日志,其中,所述数据库与所述日志一一对应,所述日志用于记录对应的所述数据库中的数据变化信息;
在所述测试程序执行完成之后,依据所述日志中记录的内容确定目标数据表,其中,所述目标数据表中的数据发生过变更;
将所述目标数据表中包含的数据更新至目标数据库中以替换发生变更的数据,其中,所述目标数据库为数据发生过变更的所述目标数据表对应的数据库。
2.根据权利要求1所述的方法,其特征在于,在将多个数据库中的数据保存至多个数据表中,并获取多个日志之前,所述方法还包括:
记录多个所述数据库的信息,其中,所述数据库的信息至少包括以下信息:所述数据库对应的IP地址、所述数据库对应的端口信息、所述数据库的用户名和所述数据库对应的密码。
3.根据权利要求1所述的方法,其特征在于,在测试程序执行之前,在将多个数据库中的数据保存至多个数据表中,并获取多个日志之后,所述方法还包括:
为每个所述数据库对应的多个所述数据表进行命名,其中,每个所述数据表的命名包括预设名称和字段;
将命名后的多个所述数据表保存在一个预设格式的文件夹中,其中,所述文件夹的标签名为所述预设名称,所述预设格式的文件夹为本地文件夹;
将每个所述文件夹放置在以每个所述数据库名称命名的目录下。
4.根据权利要求3所述的方法,其特征在于,在测试程序执行之前,在将多个数据库中的数据保存至多个数据表中,并获取多个日志之后,所述方法还包括:
获取多个所述日志对应的多个第一位置信息,其中,所述第一位置信息为每个所述日志中记录的最后一条变更的数据的变更信息,所述第一位置信息至少包括以下内容:所述数据变更的时间、所述数据对应的数据表名称。
5.根据权利要求4所述的方法,其特征在于,在所述测试程序执行完成之后,依据所述日志中记录的内容确定数据发生过变更的目标数据表之前,所述方法还包括:
获取多个所述日志对应的多个第二位置信息,其中,所述第二位置信息为每个所述日志中记录的最后一条变更的数据的变更信息。
6.根据权利要求5所述的方法,其特征在于,在所述测试程序执行完成之后,依据所述日志中记录的内容确定数据发生过变更的目标数据表包括:
将所述多个第一位置信息与所述多个第二位置信息进行对比;
将所述第一位置信息与所述第二位置信息不一致的日志,确定为目标日志;
将所述目标日志中的从所述第一位置信息对应的变更时间到所述第二位置信息对应的变更时间之间的变更数据确定为目标变更数据;
通过所述目标变更数据对应的位置信息,确定数据发生变化的多个所述目标数据表。
7.根据权利要求3所述的方法,其特征在于,将所述目标数据表中包含的数据更新至目标数据库中以替换发生变更的数据包括:
依据所述目标数据表的名称中包含的所述预设名称,读取目标文件夹,其中,所述目标文件夹为保存在本地的且为预设格式的文件夹;
依据所述目标文件夹,读取所述目标文件夹中包含的多个所述数据表中包含的数据;
将所述目标数据表中的数据变更为多个所述数据表中包含的数据。
8.一种数据的恢复装置,其特征在于,包括:
第一保存单元,用于在测试程序执行之前,将多个数据库中的数据保存至多个数据表中,并获取多个日志,其中,所述数据库与所述日志一一对应,所述日志用于记录对应的所述数据库中的数据变化信息;
确定单元,用于在所述测试程序执行完成之后,依据所述日志中记录的内容确定目标数据表,其中,所述目标数据表中的数据发生过变更;
更新单元,用于将所述目标数据表中包含的数据更新至目标数据库中以替换发生变更的数据,其中,所述目标数据库为数据发生过变更的所述目标数据表对应的数据库。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序执行权利要求1至7中任意一项所述的一种数据的恢复方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的一种数据的恢复方法。
CN201911419911.7A 2019-12-31 2019-12-31 数据的恢复方法及装置、存储介质和处理器 Pending CN111078719A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911419911.7A CN111078719A (zh) 2019-12-31 2019-12-31 数据的恢复方法及装置、存储介质和处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911419911.7A CN111078719A (zh) 2019-12-31 2019-12-31 数据的恢复方法及装置、存储介质和处理器

Publications (1)

Publication Number Publication Date
CN111078719A true CN111078719A (zh) 2020-04-28

Family

ID=70321291

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911419911.7A Pending CN111078719A (zh) 2019-12-31 2019-12-31 数据的恢复方法及装置、存储介质和处理器

Country Status (1)

Country Link
CN (1) CN111078719A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254357A (zh) * 2021-07-19 2021-08-13 国网汇通金财(北京)信息科技有限公司 一种数据处理方法、装置、电子设备及存储介质
CN113742333A (zh) * 2020-05-29 2021-12-03 杭州海康威视数字技术股份有限公司 一种维表数据更新方法、装置及电子设备
CN114416868A (zh) * 2021-12-30 2022-04-29 联通智网科技股份有限公司 一种数据同步方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776120A (zh) * 2016-11-24 2017-05-31 珠海市魅族科技有限公司 数据恢复的方法及装置
CN107341212A (zh) * 2017-06-26 2017-11-10 努比亚技术有限公司 一种缓存更新方法及设备
CN109189613A (zh) * 2018-09-20 2019-01-11 快云信息科技有限公司 一种数据库数据恢复方法及相关装置
CN109739691A (zh) * 2018-12-30 2019-05-10 上海达梦数据库有限公司 数据库备份和恢复方法、装置、终端设备及存储介质
CN110489320A (zh) * 2019-07-05 2019-11-22 深圳壹账通智能科技有限公司 测试数据的还原方法、装置、终端设备及介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776120A (zh) * 2016-11-24 2017-05-31 珠海市魅族科技有限公司 数据恢复的方法及装置
CN107341212A (zh) * 2017-06-26 2017-11-10 努比亚技术有限公司 一种缓存更新方法及设备
CN109189613A (zh) * 2018-09-20 2019-01-11 快云信息科技有限公司 一种数据库数据恢复方法及相关装置
CN109739691A (zh) * 2018-12-30 2019-05-10 上海达梦数据库有限公司 数据库备份和恢复方法、装置、终端设备及存储介质
CN110489320A (zh) * 2019-07-05 2019-11-22 深圳壹账通智能科技有限公司 测试数据的还原方法、装置、终端设备及介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113742333A (zh) * 2020-05-29 2021-12-03 杭州海康威视数字技术股份有限公司 一种维表数据更新方法、装置及电子设备
CN113742333B (zh) * 2020-05-29 2023-08-04 杭州海康威视数字技术股份有限公司 一种维表数据更新方法、装置及电子设备
CN113254357A (zh) * 2021-07-19 2021-08-13 国网汇通金财(北京)信息科技有限公司 一种数据处理方法、装置、电子设备及存储介质
CN114416868A (zh) * 2021-12-30 2022-04-29 联通智网科技股份有限公司 一种数据同步方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN107957957B (zh) 测试用例的获取方法和装置
US9183268B2 (en) Partition level backup and restore of a massively parallel processing database
CN106933703B (zh) 一种数据库数据备份的方法、装置及电子设备
CN111078719A (zh) 数据的恢复方法及装置、存储介质和处理器
CN106844089B (zh) 一种用于恢复树形数据存储的方法与设备
CN112487083B (zh) 一种数据校验方法和设备
CN105573859A (zh) 一种数据库的数据恢复方法和设备
CN108573019B (zh) 一种数据迁移方法、装置、电子设备及可读存储介质
CN106155838B (zh) 一种数据库备份数据恢复方法及装置
CN107609011B (zh) 一种数据库记录的维护方法和装置
CN114860654A (zh) 一种基于Flink数据流的Iceberg表Schema动态变更方法及系统
CN113918658A (zh) 恢复数据的方法及装置
CN118152401A (zh) 数据存储方法、装置、设备、存储介质及程序产品
CN113641651A (zh) 一种业务数据管理方法、系统及计算机存储介质
CN113792026A (zh) 数据库脚本的部署方法、装置及计算机可读存储介质
CN116089518A (zh) 一种数据模型抽取方法及系统、终端、介质
CN115658391A (zh) 基于QianBase MPP数据库的WAL机制的备份恢复方法
CN116185706A (zh) 数据备份方法、装置、计算及存储介质及电子设备
CN111813588B (zh) 一种计算机硬盘故障定位方法、装置、设备及存储介质
CN115543685A (zh) 一种数据库回滚方法、装置、电子设备及存储介质
CN108121719B (zh) 一种实现数据抽取转换加载etl的方法及装置
US10922301B1 (en) Apparatus, computer program, and method for trigger-based tracking of database modifications
CN111221801A (zh) 一种数据库迁移方法、系统及相关装置
CN111858487A (zh) 数据更新方法及设备
CN111125047A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200428

RJ01 Rejection of invention patent application after publication