CN117609209A - 数据回收方法、数据还原方法、装置、设备及存储介质 - Google Patents

数据回收方法、数据还原方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117609209A
CN117609209A CN202311624336.0A CN202311624336A CN117609209A CN 117609209 A CN117609209 A CN 117609209A CN 202311624336 A CN202311624336 A CN 202311624336A CN 117609209 A CN117609209 A CN 117609209A
Authority
CN
China
Prior art keywords
data
recovery
database
instruction
record
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
CN202311624336.0A
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.)
Transwarp Technology Shanghai Co Ltd
Original Assignee
Transwarp Technology Shanghai 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 Transwarp Technology Shanghai Co Ltd filed Critical Transwarp Technology Shanghai Co Ltd
Priority to CN202311624336.0A priority Critical patent/CN117609209A/zh
Publication of CN117609209A publication Critical patent/CN117609209A/zh
Pending legal-status Critical Current

Links

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

Abstract

本发明实施例公开了一种数据回收方法、数据还原方法、装置、设备及存储介质,包括:在接收到数据回收指令时,根据数据回收指令确定待回收数据定义信息;其中,待回收数据定义信息中至少包括待回收数据元数据信息;获取回收状态信息,根据数据回收指令、回收状态信息和待回收数据元数据信息生成重构数据回收指令;根据待回收数据定义信息确定至少一个目标单机数据库,并将重构数据回收指令发送至各目标单机数据库,以使各目标单机数据库根据重构数据回收指令进行数据回收。使得单机数据库在进行数据回收过程中可以实现针对被回收数据的完整信息保存,避免了数据还原过程中的元数据丢失,保障了数据还原准确性,提升了数据库运行稳定性。

Description

数据回收方法、数据还原方法、装置、设备及存储介质
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据回收方法、数据还原方法、装置、设备及存储介质。
背景技术
分布式数据库是将业务的结构化查询语言(Structured Query Language,SQL)请求分解到多个单机数据库上执行的一种数据库架构,具有分布透明、复制透明、可靠性高及易扩展等优点,被广泛应用于各类数据管理场景中。单机数据库经常出现由于用户误操作造成的删库或者删表,导致数据丢失,进而引发灾难性的后果,分布式数据库的单机数据库中也存在有相同的问题。
当前常通过在单机数据库的数据目录初始化时,创建与其对应的回收系统库,并在执行删库删表操作时将对应的表移动至回收系统库,进而使得被删除的数据可自回收系统库中进行还原。
然而上述方法不支持还原数据库的操作,仅能还原数据库中的某个数据表。而在还原数据表时,往往会由于丢失了分布式表中特有的部分元数据,而导致还原不完全,降低了数据库运行稳定性。且往往只能还原分布式数据库中主库的数据,若需对应还原备库的数据,需要单独进行操作,极大增加了运维成本。
发明内容
本发明提供了一种数据回收方法、数据还原方法、装置、设备及存储介质,通过在单机数据库进行数据回收的过程中保留其被回收数据的元数据信息,以实现被回收数据完整信息的保存,进而可依据完整保存的元数据信息对回收数据进行正确且全量的还原,避免了数据还原过程中的元数据丢失,保障了数据还原准确性,提升了数据库运行稳定性,降低了运维成本。
第一方面,本发明实施例提供了一种数据回收方法,包括:
在接收到数据回收指令时,根据数据回收指令确定待回收数据定义信息;其中,待回收数据定义信息中至少包括待回收数据元数据信息;
获取回收状态信息,根据数据回收指令、回收状态信息和待回收数据元数据信息生成重构数据回收指令;
根据待回收数据定义信息确定至少一个目标单机数据库,并将重构数据回收指令发送至各目标单机数据库,以使各目标单机数据库根据重构数据回收指令进行数据回收。
第二方面,本发明实施例提供了一种数据还原方法,包括:
在接收到数据还原指令时,根据数据还原指令依次对各单机数据库对应的回收记录表进行匹配,将第一个匹配的回收记录确定为索引回收记录;
根据索引回收记录确定至少一个目标单机数据库,并将数据还原指令发送至各目标单机数据库,以使各目标单机数据库根据数据还原指令由对应的回收记录表中确定目标回收记录,并根据目标回收记录进行数据还原;
根据索引回收记录中的待还原数据元数据信息创建还原数据定义信息;
其中,回收记录表中包括至少一条回收记录,回收记录中至少包括对应待还原数据的待还原数据元数据信息。
第三方面,本发明实施例还提供了一种数据回收装置,包括:
回收定义确定模块,用于在接收到数据回收指令时,根据数据回收指令确定待回收数据定义信息;其中,待回收数据定义信息中至少包括待回收数据元数据信息;
重构指令生成模块,用于获取回收状态信息,根据数据回收指令、回收状态信息和待回收数据元数据信息生成重构数据回收指令;
数据回收模块,用于根据待回收数据定义信息确定至少一个目标单机数据库,并将重构数据回收指令发送至各目标单机数据库,以使各目标单机数据库根据重构数据回收指令进行数据回收。
第四方面,本发明实施例还提供了一种数据还原装置,包括:
索引记录确定模块,用于在接收到数据还原指令时,根据数据还原指令依次对各单机数据库对应的回收记录表进行匹配,将第一个匹配的回收记录确定为索引回收记录;
数据还原模块,用于根据索引回收记录确定至少一个目标单机数据库,并将数据还原指令发送至各目标单机数据库,以使各目标单机数据库根据数据还原指令由对应的回收记录表中确定目标回收记录,并根据目标回收记录进行数据还原;
数据定义还原模块,用于根据索引回收记录中的待还原数据元数据信息创建还原数据定义信息;
其中,回收记录表中包括至少一条回收记录,回收记录中至少包括对应待还原数据的待还原数据元数据信息。
第五方面,本发明实施例还提供了一种电子设备,包括:
至少一个处理器,以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器能够执行本发明实施例提供的数据回收方法或数据还原方法。
第六方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行本发明实施例提供的数据回收方法或数据还原方法。
本发明实施例提供的一种数据回收方法、数据行与方法、装置、设备及存储介质,通过在接收到数据回收指令时,根据数据回收指令确定待回收数据定义信息;其中,待回收数据定义信息中至少包括待回收数据元数据信息;获取回收状态信息,根据数据回收指令、回收状态信息和待回收数据元数据信息生成重构数据回收指令;根据待回收数据定义信息确定至少一个目标单机数据库,并将重构数据回收指令发送至各目标单机数据库,以使各目标单机数据库根据重构数据回收指令进行数据回收。通过采用上述技术方案,在需要对分布式数据库中数据进行回收时,将与需回收数据对应的元数据信息通过重构数据回收指令一并下发至进行数据回收操作的单机数据库中,使得单机数据库在进行数据回收过程中可以实现针对被回收数据的完整信息保存,进而可使得数据在回收完成后,可依据完整保存的元数据信息对回收数据进行正确且全量的还原,避免了数据还原过程中的元数据丢失,保障了数据还原准确性,提升了数据库运行稳定性,降低了运维成本。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种数据回收方法的流程图;
图2为本发明实施例二提供的一种数据回收方法的流程图;
图3为本发明实施例二提供的一种对目标单机数据库中与待回收数据名对应的各数据表进行删除操作的流程示例图;
图4为本发明实施例二提供的一种回收数据清理方法的流程示意图;
图5为本发明实施例二提供的一种根据数据清理指令依次对各单机数据库对应的回收记录表进行匹配,将第一个匹配的回收记录确定为清理索引回收记录的流程示例图;
图6为本发明实施例三提供的一种数据还原方法的流程图;
图7为本发明实施例四提供的一种数据还原方法的流程图;
图8为本发明实施例四提供的一种根据记录标识将与待还原数据名对应的各待还原数据表还原至数据目录中的流程示例图;
图9为本发明实施例五提供的一种数据回收装置的结构示意图;
图10为本发明实施例六提供的一种数据还原装置的结构示意图;
图11为本发明实施例七提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供的一种数据回收方法的流程图,本发明实施例可适用于对分布式数据库中库表数据进行过回收的情况,该方法可以由数据回收装置来执行,该数据回收装置可以由软件和/或硬件来实现,该数据回收装置可以配置在电子设备中。可选的,电子设备可以为笔记本、台式计算机、智能平板及其他具有数据计算功能的设备等,本发明实施例对此不进行限制。
如图1所示,本发明实施例提供的一种数据回收方法,具体包括如下步骤:
S101、在接收到数据回收指令时,根据数据回收指令确定待回收数据定义信息。
其中,待回收数据定义信息中至少包括待回收数据元数据信息。
在本实施例中,数据回收指令具体可理解为由客户端给出的,希望对分布式数据库中存在数据表或数据库中的数据进行回收的指令,可选的,数据回收指令可通过SQL语句给出。待回收数据定义信息具体可理解为分布式数据库入口(Gate)在接收到数据回收指令时,对分布式数据库所对应元数据服务进行调用得到的,用于描述待回收数据的信息。示例性的,待回收数据定义信息中可包括待回收数据的名称、类型及元数据信息等信息,本发明实施例对此不进行限制。待回收数据元数据信息具体可理解为用以描述待回收数据在分布式数据库中存储方式、结构等与待回收数据在分布式数据库中存在方式相关的信息。示例性的,待回收数据元数据信息中至少包括分片键及分片算法等信息。
具体的,在分布式数据库的入口接收到由客户端给出的SQL语句时,将对SQL语句进行分析,若SQL语句为用于指示数据库删除、数据表删除或数据表中数据清除的数据回收指令,则可根据数据回收指令确定具体需要进行回收的待回收数据,并调用元数据服务得到包含用于对待回收数据进行描述的待回收数据定义信息。其中,待回收数据定义信息中应至少包括用以表明待回收数据在分布式数据库中存在方式相关信息的待回收数据元数据信息。
S102、获取回收状态信息,根据数据回收指令、回收状态信息和待回收数据元数据信息生成重构数据回收指令。
在本实施例中,回收状态信息具体可理解为分布式数据库是否开启数据回收的状态信息,也即分布式数据库是否支持对在其中进行的删除操作所对应数据进行回收的状态信息。重构数据回收指令具体可理解为既包含有原始数据回收指令,又包含有与分布式数据库数据回收需求相关信息的,用以触发分布式数据库中各单机数据库进行对应数据回收的SQL语句。
具体的,将回收状态信息和待回收数据元数据信息整合至数据回收指令中,将所生成新的SQL语句确定为重构数据回收指令。
在本发明实施例中,由于将待回收数据元数据信息整合至重构数据回收指令中,使得接收到重构数据回收指令的各单机数据库均能够获取所需删除待回收数据的元数据信息,并可将待回收数据元数据信息在各删除待回收数据的单机数据库中进行保存,保证了与待回收数据相关信息的保存完整性。
S103、根据待回收数据定义信息确定至少一个目标单机数据库,并将重构数据回收指令发送至各目标单机数据库,以使各目标单机数据库根据重构数据回收指令进行数据回收。
在本实施例中,目标单机数据库具体可理解为分布式数据库中保存有需要回收的待回收数据的单机数据库。
具体的,由于与数据回收指令相对应的待回收数据,可被分布式存储于分布式数据库的多个单机数据库中,也可仅存储于分布式数据库的一个单机数据库中。故在明确待回收数据对应的待回收数据定义信息时,即可明确分布式数据库中存储有待回收数据的至少一个单机数据库。此时可将存储有待回收数据的单机数据库确定为目标单机数据库,并由Gate将重构数据回收指令分别下发至各目标单机数据库中。使得各目标单机数据库在接收到重构数据回收指令时,将依据重构数据回收指令中包含的信息将对应的待回收数据进行删除,并存储至预先确定的回收区域内,同时将对重构数据回收指令中包含的与待回收数据定义相关的待回收数据元数据信息进行保存,以便后续可基于待回收数据元数据信息对所回收数据在Gate中进行完整的定义还原。
本实施例的技术方案,通过在接收到数据回收指令时,根据数据回收指令确定待回收数据定义信息;其中,待回收数据定义信息中至少包括待回收数据元数据信息;获取回收状态信息,根据数据回收指令、回收状态信息和待回收数据元数据信息生成重构数据回收指令;根据待回收数据定义信息确定至少一个目标单机数据库,并将重构数据回收指令发送至各目标单机数据库,以使各目标单机数据库根据重构数据回收指令进行数据回收。通过采用上述技术方案,在需要对分布式数据库中数据进行回收时,将与需回收数据对应的元数据信息通过重构数据回收指令一并下发至进行数据回收操作的单机数据库中,使得单机数据库在进行数据回收过程中可以实现针对被回收数据的完整信息保存,进而可使得数据在回收完成后,可依据完整保存的元数据信息对回收数据进行正确且全量的还原,避免了数据还原过程中的元数据丢失,保障了数据还原准确性,提升了数据库运行稳定性,降低了运维成本。
实施例二
图2为本发明实施例二提供的一种数据回收方法的流程图,本发明实施例的技术方案在上述各可选技术方案的基础上进一步优化,通过构造包含有回收状态信息、回收数据名和待回收数据元数据信息的待回收数据注释信息,并将待回收数据注释信息添加至数据回收指令中以生成重构数据回收指令,使得需回收数据对应的元数据信息可被通过重构数据回收指令一并下发至进行数据回收操作的单机数据库中。同时在单机数据库进行数据回收的过程中,通过在系统库中构建与单机数据库对应且独立存在的回收记录表和回收子对象记录表,实现对单机数据库所回收数据库表定义信息的全量保存,进而使得数据在回收完成后,不仅可对回收的数据表类型数据进行全量还原,还可依据完整保存的待回收数据定义信息对数据库类型的回收数据进行正确且全量的还原,避免了数据还原过程中的元数据丢失,保障了数据还原准确性,提升了数据库运行稳定性,降低了运维成本。
如图2所示,本发明实施例二提供的一种数据回收方法,具体包括如下步骤:
S201、在接收到数据回收指令时,根据数据回收指令确定待回收数据定义信息。
其中,待回收数据定义信息中至少包括待回收数据元数据信息。
S202、获取回收状态信息。
在本实施例中,回收状态信息具体可理解为用以表明分布式数据库针对所接收到数据回收指令的支持状态的信息。可选的,回收状态信息可包括用以控制分布式数据库是否支持回收数据的回收变量,以及响应数据回收指令的系统时间等信息,本发明实施例对此不进行限制。
具体的,分布式数据库在工作过程中可随时接收由客户端给出的回收开关调整指令,以对其是否支持对所删除数据进行回收进行调整,也即对分布式数据库是否支持为其中被删除的数据划分独立存储空间进行临时存储的能力进行调整,在每次调整后将对用以表明分布式数据库是否支持回收数据的回收变量进行更新存储。在分布式数据库接收到数据回收指令时,可由分布式数据库系统中获取该回收变量和当前系统时间,作为与数据回收指令对应的回收状态信息。
S203、根据数据回收指令确定待回收数据名,并根据待回收数据名生成对应的回收数据名。
在本实施例中,待回收数据名具体可理解为需要删除数据在分布式数据库中存储的名称。回收数据名具体可理解为待回收数据在由分布式数据库中的单机数据库删除后,在用于对其进行临时存储的空间内的名称。
具体的,对数据回收指令进行解析,确定其中包含的待回收数据名,进而将待回收数据名依据预设规则进行修改,生成与待回收数据名相对应的回收数据名。
示例性的,假设数据回收指令对应的SQL语句可表示为drop table tb,则tb即可理解为需要自分布式数据库中进行删除的待回收数据名,相应的,可根据待回收数据名tb生成分布式数据库中全局唯一的名字recycled_tb作为待回收数据名对应的回收数据名。
S204、根据回收状态信息、回收数据名和待回收数据元数据信息构造待回收数据注释信息。
具体的,根据回收状态信息中的回收变量,确定当前分布式数据库是否支持对数据的回收。在确定分布式数据库不支持对数据的回收时,构造仅包含回收变量的待回收数据注释信息,以使接收到包含待回收数据注释信息的单机数据库明确其无需对所删除数据进行回收。在确定分布式数据库可以支持对数据的回收时,将回收状态信息中的回收变量和当前系统时间,以及根据数据回收指令确定出的回收数据名和待回收数据元数据信息相结合,构造包含上述所有信息的待回收数据注释信息。
示例性的,假设回收变量可表示为recycle_bin_value,当前系统时间可表示为cur_timestamp,与数据回收指令对应待回收数据对应的,全局唯一的回收数据名为recycled_tb,待回收数据元数据信息可表示为tb_info。
在确定分布式数据库不支持对数据的回收时,所构造的待回收数据注释信息可表示为:hint:/*RECYCLE_OPTS!recycle_bin_value=OFF*/。
在确定分布式数据库可以支持对数据的回收时,所构造的待回收数据注释信息可表示为:hint:/*RECYCEL_OPTS!
recycle_bin_value=ON;RECYCLE_NAME=recyucled_tb;RECYCLE_TIME=cur_timestamp;RECYCLE_GATE_INFO=tb_info*/。
S205、将待回收数据注释信息添加至数据回收指令中,生成重构数据回收指令。若数据回收指令为数据库回收指令,则执行S206;若数据回收指令为数据表回收指令,则执行S211。
具体的,将待回收数据注释信息对应的语句,与数据回收指令对应语句进行合并,将所生成的语句确定为重构回收数据指令。
接上述示例,重构后用以回收数据表tb的SQL指令可表示为:drop table tb$hint。
可以理解的是,若回收数据指令为用于回收数据库数据的数据库回收指令,则经重构后所得的指令为重构数据库回收指令,此时执行S206;若回收数据指令为用于回收数据表数据的数据表回收指令,则经重构后所得的指令为重构数据表回收指令,此时执行S211。
S206、将分布式数据库中所有单机数据库确定为目标单机数据库。
具体的,在数据回收指令为数据库回收指令时,可认为分布式数据库中所有单机数据库均可能包含有重构数据库回收指令所对应需要回收的数据,此时将分布式数据库中所有单机数据库均作为需要执行与数据库回收指令对应重构数据库回收指令的目标单机数据库。
S207、将重构数据库回收指令发送至目标单机数据库中,并对重构数据库回收指令进行解析,确定待回收数据名、回收状态信息、回收数据名、回收数据类型和待回收数据元数据信息。
具体的,分布式数据库的Gate将重构数据库回收指令分别发送至各目标单机数据库中,各目标单机数据库在接收到重构数据库回收指令后的处理方式应大体一致,本发明实施例仅以一个目标单机数据库执行重构数据库回收指令的处理方式为例。目标单机数据库将对接收到的重构数据库回收指令进行解析,由其中不同的字段位置读取得到需要进行回收的待回收数据在目标单机数据库中存储的待回收数据名,分布式数据库在当前时刻的回收状态信息,待回收数据在回收后全局唯一的回收数据名,待回收数据所属的回收数据类型,也即待回收数据为表类型还是库类型数据,以及待回收数据对应的待回收数据元数据信息。
可以理解的是,在目标单机数据库所需回收的数据为库数据时,可认为所需回收数据库数据中包含多个数据表,则目标单机数据库解析得到的待回收数据元数据信息应为回收数据库中各数据表对应的元数据信息的集合。示例性的,假设目标单机数据库所需回收的数据库对应的待回收数据名为db,其中包含有多个表tb1,tb2,…,tbn,则各表均由其各自对应的元数据信息tb1_info、tb2_info、…、tbn_info,db对应的待回收数据元数据信息应为各表对应元数据信息构成的集合,该集合可以表的方式存在,记为tb_info_map。
S208、若回收状态信息中的回收变量为开,则将根据待回收数据名、回收状态信息、回收数据名、回收数据类型和待回收元数据信息构建数据库回收记录写入目标单机数据库对应的回收记录表中,确定数据库回收记录在回收记录表中的记录标识,并对目标单机数据库中与待回收数据名对应的各数据表进行回收操作,并执行S210。
在本实施例中,数据库回收记录具体可理解为用以记录目标单机数据库在对其中数据库的数据进行回收时所有回收数据操作的信息集合,其中可保留对后续还原有用信息。回收记录表具体可理解为存储于分布式数据库系统库中,与目标单机数据库间具有对应关系的,用于记录目标单机数据库所有数据回收操作的数据字典表。可以理解的是,回收记录表为一种特殊的表,用户没有权限对其执行增删改操作,只能系统内部进行修改。记录标识具体可理解为数据库回收记录在回收记录表ID列对应的值,用以作为其在回收记录表中的唯一标识。
具体的,若回收状态信息中的回收变量为开,则可认为目标单机数据库将依据重构数据库回收指令对其中存储的一个逻辑数据库中的数据进行回收。此时将由目标单机数据库中确定与待回收数据名相对应的逻辑数据库,并针对确定出的逻辑数据库中的各数据表进行回收操作。同时会将待回收数据名、回收状态信息中的当前系统时间、回收数据名、待回收数据的回收数据类型以及与待回收数据对应的待回收数据元数据信息,分别写入预先设置的回收记录模板中的不同位置处,得到与重构数据库回收指令相对应的数据库回收记录,并将该数据库回收记录写入至与目标单机数据库相对应的回收记录表中。在写入回收记录表时可一并获取该数据库回收记录在回收记录表中的记录标识,以便后续利用记录标识由回收记录表中唯一确定该数据库回收记录。
示例性的,假设分布式数据库所对应系统库中回收记录表可表示为recycle_objects,由重构数据库回收指令中解析得到的待回收数据名为db,当前系统时间为cur_timestamp,回收数据名为与待回收数据名相对应的recycled_db,回收数据类型为数据库类型DATABASE,待回收数据元数据信息为数据库中多个数据表元数据信息的集合tb_info_map,则所生成的与重构数据库回收指令对应的数据库回收记录可表示为(recycled_db,db,“”,‘DATABASE’,cur_timestamp,tb_info_map)。
可以理解的是,由于目标单机数据库中与待回收数据名对应的数据库中包含多个数据表,目标单机数据库针对数据库的回收操作实质上为针对数据库中多个数据表的回收操作,因此除去记录针对数据库层面的回收操作,也应对数据库中各数据表进行回收的操作进行记录。
可选的,图3为本发明实施例二提供的一种对目标单机数据库中与待回收数据名对应的各数据表进行删除操作的流程示例图,如图3所示,具体包括如下步骤:
S2081、针对目标单机数据库中与待回收数据名对应的每个数据表,生成与数据表对应的单库回收数据表名。
其中,单库回收数据表名与目标单机数据库唯一对应。
具体的,为保证回收过程中回收的数据可被唯一对应存储,将生成与被回收数据唯一对应的名称对其进行保存。针对目标单机数据库中与待回收数据名对应数据库中的每个数据表,即会根据该数据表的表名生成其在该目标单机数据库所对应回收数据库中唯一的单库回收数据表名。也即在目标单机数据库中存在多个逻辑数据库,且各逻辑数据库中可能存在相同名称数据表的情况下,针对其中被回收逻辑库中的每个数据表,将对该数据表生成在目标单机数据库中唯一对应的单库回收数据表名,以便后续还原过程中对与该数据表回收过程相关信息的查找。
S2082、将数据表移动至与目标单机数据库对应的回收数据库,并将回收数据库中的数据表重命名为单库回收数据表名。
其中,回收数据库中的数据表的私有属性包括数据表的原始数据表名和原始库名。
在本实施例中,回收数据库为与目标单机数据库对应建立的,用于存储目标单机数据库中需要被回收的移除数据的系统库。
具体的,为实现对目标单机数据库中与待回收数据名对应各数据表的回收,针对其中的每一个数据表,会将该数据表整体移动至与目标单机数据库对应的回收数据库中,此时可认为该数据表已不存在于目标单机数据库中,也即实现了在目标单机数据库中对该数据表的删除操作。而为了保证该被回收的数据表可在回收数据库中被精准存储,将会使用与目标单机数据库唯一对应,同时也为与目标单机数据库对应回收数据库唯一对应的单库回收数据表名为移动至回收数据库中的数据表进行重命名。
可选的,为便于后续对回收数据的还原,会将数据表在目标单机数据库对应逻辑数据库的原始库名,以及其在逻辑数据库中的原始数据表名作为存储至回收数据库中数据表的私有属性进行保存,以便后续还原过程中可使得回收数据库中单库回收数据表名对应的数据表,可以原始数据表名还原至目标单机数据库的原始库名对应的逻辑数据库中。
S2083、根据单库回收数据表名、待回收数据名对应的记录标识以及数据表的对象类型构建回收子对象记录,并将回收子对象记录写入目标单机数据库对应的回收子对象记录表中。
在本实施例中,回收子对象记录具体可理解为用以记录单库回收数据表名对应数据表在进行回收时对应回收数据操作的信息集合,其中可保留对后续还原有用的信息。回收子对象记录表具体可理解为存储于分布式数据库系统库中,与目标单机数据库间具有对应关系的,用于记录目标单机数据库二级回收操作对应数据回收操作的数据字典表。可以理解的是,回收子对象记录表中记录信息与回收记录表中记录标识间存在对应关系,也即回收子对象记录表中所记录的回收操作为回收记录表中回收记录所对应回收操作的下级操作,如针对被回收逻辑数据库中数据表的回收操作记录。
具体的,在将与单库回收数据表名对应数据表移入与目标单机数据库对应的回收数据库后,可将数据表在回收数据库中存储的单库回收数据表名,数据表所对应逻辑数据库在回收记录表中的记录标识,以及数据表对应的对象类型分别写入预先设置的回收子对象记录模板中的不同位置处,得到与单库回收数据表名对应的回收子对象记录,并将该回收子对象记录写入至与目标单机数据库对应的回收子对象记录表中。
接上述示例,假设分布式数据库所对应系统库中回收子对象记录表可表示为recycle_object_chi ldren,回收子对象也即与被回收逻辑数据库对应的数据表被回收后的单库回收数据表名recycled_tb,回收子对象所对应回收父对象,也即待回收数据名对应逻辑数据库在recycle_objects中的唯一记录标识recycled_db_id,回收子对象的对象类型为数据表类型TABLE,则生成的与单库回收数据表名对应的回收子对象记录可表示为(recycled_tb,recycled_db_id,‘TABLE’)。可通过该方式记录回收逻辑数据库时,都回收了哪些数据表的数据,以便还原数据库时将各表数据进行对应还原。
S209、若回收状态信息中的回收变量为关,则对目标单机数据库中与待回收数据名对应的各数据表进行删除操作,并执行S210。
具体的,若回收状态信息中的回收变量为关,则可认为目标单机数据库将无法对重构数据库回收指令对应的逻辑数据库进行回收操作,而仅能对该逻辑数据库中对应数据进行彻底删除,也即会依据重构数据库回收指令中包含的待回收数据名在目标单机数据库中找到需要被删除的逻辑数据库,并对其中包含的各数据表进行删除。
S210、删除待回收数据名对应的数据目录。
具体的,为实现目标单机数据库中与待回收数据名对应逻辑数据库的完全回收或删除,会在依据重构数据库回收指令中包含的待回收数据名将对应逻辑数据库内的各数据表均进行删除后,对该逻辑数据库的目录也进行删除,实现该逻辑数据库在目标单机数据库中的完整删除。
S211、根据待回收数据定义信息中的待回收数据表类型确定至少一个目标单机数据库。
在本实施例中,待回收数据表类型具体可理解为需要进行回收的数据表在分布式数据库中存储的类型,其中可包括单库表类型、跨库表类型和复制表类型等。
具体的,由于不同类型数据表在分布式数据库中的存储方式不同,故可根据待回收数据定义信息中的待回收数据表类型确定待回收数据在分布式数据库中的存储情况,并将分布式数据库中存储有待回收数据的单机数据库确定为目标单机数据库。
可选的,根据待回收数据定义信息中的待回收数据表类型确定至少一个目标单机数据库,具体可包括如下两种情况:
1)若所述待回收数据表类型为单库表类型,则根据所述待回收数据定义信息中的待回收数据名确定目标单机数据库。
2)若所述待回收数据表类型为跨库表类型或复制表类型,则将分布式数据库中所有单机数据库确定为目标单机数据库。
具体的,若待回收数据表类型为单库表类型,则可认为待回收数据仅存储于分布式数据库中的一个单机数据库中,此时可根据待回收数据定义信息中的待回收数据名将包含有待回收数据名数据的单机数据库确定为目标单机数据库。若待回收数据表类型为跨库表类型或复制表类型,则可认为待回收数据可存储于分布式数据库中的所有单机数据库中,各不同单机数据库可分别存储待回收数据的部分数据信息,或存储待回收数据的全部数据信息,此时可将分布式数据库中的所有单机数据库均确定为目标单机数据库。
S212、将重构数据表回收指令发送至目标单机数据库中,并对重构数据表回收指令进行解析,确定数据表回收操作类型、待回收数据名、回收状态信息、回收数据名、回收数据类型和待回收数据元数据信息。
具体的,分布式数据库的Gate将重构数据表回收指令分别发送至各目标单机数据库中,各目标单机数据库在接收到重构数据表回收指令后的处理方式应大体一致,本发明实施例仅以一个目标单机数据库执行重构数据表回收指令的处理方式为例。目标单机数据库将对接收到的重构数据表回收指令进行解析,由其中不同的字段位置读取得到需要进行回收的待回收数据在目标单机数据库中存储的待回收数据名,需要对待回收数据执行操作的数据表回收操作类型,分布式数据库在当前时刻的回收状态信息,待回收数据在回收后全局唯一的回收数据名,待回收数据所属的回收数据类型,以及待回收数据对应的待回收数据元数据信息。
S213、若回收状态信息中的回收变量为开,则根据待回收数据名对目标单机数据库中对应的待回收数据表执行与数据表回收操作类型对应的回收操作,并将根据待回收数据名、回收状态信息、回收数据名、回收数据类型和待回收数据元数据信息构建的数据表回收记录写入目标单机数据库对应的回收记录表中。
具体的,若回收状态信息中的回收变量为开,则可认为目标单机数据库将依据重构数据表回收指令对其中存储的一个数据表中的数据进行回收。此时将依据重构数据表回收指令中包含的待回收数据名确定目标单机数据库中需要进行数据回收的待回收数据表,并针对该待回收数据表进行与数据表回收操作类型相对应的回收操作。同时会将待回收数据名、回收状态信息中的当前系统时间、回收数据名、待回收数据的回收数据类型以及待回收数据对应的待回收数据元数据信息,分别写入预先设置的回收记录模板中的不同位置处,得到与重构数据表回收指令相对应的数据表回收记录,并将该数据表回收记录写入至与目标单机数据库相对应的回收记录表中。
示例性的,假设分布式数据库所对应系统库中回收记录表可表示为recycle_objects,由重构数据表回收指令中解析得到的待回收数据名为tb,当前系统时间为cur_timestamp,回收数据名为与待回收数据名相对应的recycled_tb,待回收数据在目标单机数据库中所处的逻辑数据库名为tb_schema,回收数据类型为数据表类型TABLE,待回收数据对应的待回收数据元数据信息为tb_info,则所生成的与重构数据表回收指令对应的数据表回收记录可表示为(recbycled_tb,tb,tb_schema,‘TABLE’,cur_timestamp,tb_info)。
可以理解的是,针对数据表类型的数据可根据用户实际需求进行不同类型的回收操作,如直接删除整个数据表的删表类型操作,或仅删除数据表中数据但保留空白数据表的清表类型操作,故在明确数据表回收操作类型后可对应执行相应的回收操作。根据数据表回收操作类型的不同,针对数据表的回收操作具体可通过如下两种方式执行:
1)若数据表回收操作类型为删表类型,则将待回收数据名对应的待回收数据表移动至目标单机数据库对应的回收数据库,并将回收数据库中的数据表重命名为回收数据名。
2)若数据表回收操作类型为清表类型,则将待回收数据名对应的待回收数据表移动至目标单机数据库对应的回收数据库,将回收数据库中的数据表重命名为回收数据名,并在目标单机数据库中重建一个表名为待回收数据名的数据表。
具体的,若数据表回收操作类型为删表类型,则可认为需要自目标单机数据库中将待回收数据名对应的数据表进行删除,也即删除后目标单机数据库中应不再包含表名为待回收数据名的数据表。此时可将目标单机数据库中的待回收数据表直接移动至目标单机数据库对应的回收数据库中,并将移至回收数据库中的数据表重命名为与待回收数据名对应的回收数据名。若数据表回收操作类型为清表类型,则可认为需要自目标单机数据库中将待回收数据名对应数据表中的数据进行删除,但应在目标单机数据库中保留表名为待回收数据名的数据表。此时可将目标单机数据库中的待回收数据表直接移动至目标单机数据库对应的回收数据库中,并在将移至回收数据库中的数据表重命名为与待回收数据名对应的回收数据名时,重新在目标单机数据库中建立一个表名为待回收数据名的数据表,使得目标单机数据库在响应重构数据表回收指令进行清表操作后,仍能保留原有数据名的空数据表。
S214、若回收状态信息中的回收变量为关,则根据待回收数据名对目标单机数据库中对应的待回收数据表执行与数据表回收操作类型对应的删除操作。
具体的,若回收状态信息中的回收变量为关,则可认为目标单机数据库将无法对重构数据表回收指令对应的数据表进行回收操作,而仅能对该数据表进行彻底删除,故此时仅会依据重构数据表回收指令中的待回收数据名在目标单机数据库中找到对应的待回收数据表,进而依据数据表回收操作类型对该待回收数据表直接进行删除,会对待回收数据表中的数据进行删除而保留空的待回收数据表。
可选的,在将重构数据回收指令发送至各目标单机数据库,以使目标单机数据库根据重构数据回收指令进行数据回收之时,还包括:
针对每个目标单机数据库,根据重构数据回收指令生成归档日志;将归档日志发送至与目标单机数据库对应的单机数据备库,以使单机数据备库根据归档日志进行与目标单机数据库相同的数据回收操作;其中,目标单机数据库和各单机数据备库具有数据一致性。
在本实施例中,归档日志具体可理解为分布式数据库中为保证主库与备库数据一致性而构建的逻辑日志。
具体的,针对每个目标单机数据库,在其收到重构数据回收指令并执行与重构数据回收指令对应操作时,将生成对应的归档日志,该归档日志中包含信息应与重构数据回收指令内容一致,也即同样包含有待回收数据注释信息。由目标单机数据库将归档日志发送至与其对应的至少一个单机数据备库中,使得单机数据备库可依据归档日志中包含的重构数据回收指令执行与目标单机数据库相同的数据回收操作,进而使得目标单机数据库与其对应的各单机数据备库之间保持有数据一致性,同时可以明确的是,目标单机数据库所进行的数据回收操作和归档日志的生成具有原子性,也即二者需得同时成功,否则就会同时失败。
可选的,在目标单机数据库根据重构数据回收指令进行数据回收之后,还包括:删除待回收数据定义信息。
具体的,分布式数据库在其中各目标单机数据库均依据重构数据回收指令进行数据回收之后,可认为Gate中已无需保留已删除数据的定义信息,此时可由Gate调用元数据服务将其中存有的待回收数据定义信息进行删除,以彻底在分布式数据库中完成对重构数据回收指令对应待回收数据的回收。
可选的,在接收到回收数据查询指令时,根据回收数据查询指令对回收记录表进行查询,确定目标回收记录;将目标回收记录中的待回收数据名、回收数据名、回收数据类型和回收状态信息以预设查询展示形式进行展示。
在本实施例中,回收数据查询指令具体可理解为由客户端给出的,需要对分布式数据库中已进行回收数据的信息进行查询的指令,可选的,回收数据查询指令可通过SQL语句给出。
具体的,分布式数据库的Gate在接收到客户端给出的回收数据查询指令时,可认为客户端需要对分布式数据库对应回收记录表中的数据进行查询,此时可根据回收数据查询指令中包含的回收数据名,由分布式数据库中各单机数据库对应的回收记录表中匹配与回收数据名对应的回收记录,并将匹配成功的回收记录确定为目标回收记录。同时,对目标回收记录进行解析,由其中提取得到待回收数据名、回收数据名、回收数据类型和回收状态信息,并将上述信息代入至预先设置的查询展示模板中,使其可以预设查询展示形式进行展示。可以理解的是,回收记录中的待回收数据元数据信息为系统内部使用信息,无需向用户进行展示,故查询展示模板中不包含用于展示待会收据元数据信息的项。
示例性的,在Gate接收到的回收数据查询指令不包括回收数据名时,将对回收记录表中的所有回收记录进行展示,也即可认为回收数据表中的所有回收记录均为目标回收记录,此时可通过如下形式进行展示:
MYSQL>SHOW RECYCLE_OBJECTS;
|OBJECT_NAME|ORIGINAL_NAME|ORIGINAL_SCHEMA|TYPE|RECYCLE_TIME|
|recycled_tb|tb|tb_schema|TABLE|2023-10-18 14:44:21.310663|
|recycled_db|db||DATABASE|2023-10-18 14:44:22.310663|
可选的,在分布式数据库依据接收到的数据回收指令完成对数据的回收后,针对存储于各单机数据库对应回收数据库中被回收的数据,还可依据客户端给出的指令对被回收数据进行删除,此举动可被认为是针对回收区域的清理,在完成该删除操作后分布式数据库中将不再存在已被回收的数据,也无法在后续操作过程中对被删除的回收数据进行还原。图4为本发明实施例二提供的一种回收数据清理方法的流程示意图,如图4所示,具体包括如下步骤:
S301、在接收到数据清理指令时,根据数据清理指令依次对各单机数据库对应的回收记录表进行匹配,将第一个匹配的回收记录确定为清理索引回收记录。
在本实施例中,数据清理指令具体可理解为由客户端给出的,希望对分布式数据库中各单机数据库中已进行回收数据进行清理删除的指令,可选的,数据清理指令可通过SQL语句给出。
具体的,在分布式数据库的Gate接收到由客户端给出的SQL语句时,将对SQL语句进行分析,若SQL语句为用于指示分布式数据库中各单机数据库对应回收数据库,进行已回收数据进行删除的数据清理指令时,可根据数据清理指令确定所需清理数据在回收数据库中存储的名称,进而依据该名称对各回收数据库,也即与各回收数据库对应单机数据库对应的回收记录表进行匹配,将各回收记录表中第一个被匹配到的回收记录确定为与数据清理指令对应的清理索引回收记录。
可选的,图5为本发明实施例二提供的一种根据数据清理指令依次对各单机数据库对应的回收记录表进行匹配,将第一个匹配的回收记录确定为清理索引回收记录的流程示例图,如图5所示,具体包括如下步骤:
S3011、根据数据清理指令确定待清理数据名。
具体的,对数据清理指令进行解析,确定其中包含的待清理数据名。
可以理解的是,数据清理指令中至少应包括需要清理数据的数据类型和数据名称,故可将其中的数据名称确定为待清理数据名。
示例性的,若数据清理指令表示为:purge table recycled_tb,则可明确其中的待清理数据名为recycled_tb,其所对应需要清理的数据为数据表类型的数据。若数据清理指令表示为:purge database recycled_db,则可明确其中的待清理数据名为recycled_db,其所对应需要清理的数据为数据库类型的数据。
S3012、将待清理数据名依次与各单机数据库对应的回收记录表中的回收数据名进行匹配。
具体的,由于各单机数据库均有与其相对应的回收记录表,且各回收记录表中均包含至少一条回收记录,故可依据待清理数据名依次与各回收记录中的回收数据名进行匹配,以确定待清理数据名对应数据存储于哪个单机数据库对应的回收数据库中。
S3013、将第一个匹配成功的回收数据名对应的回收记录确定为清理索引回收记录。
S302、根据清理索引回收记录确定至少一个待清理单机数据库,并将数据清理指令发送至各待清理单机数据库,以使各待清理单机数据库根据数据清理指令由对应的回收数据库中,对数据清理指令对应数据进行删除。
具体的,由于清理索引回收记录中包含有相对应的数据类型,且不同类型数据在分布式数据库中的存储方式不同,相应在回收后存储在的回收数据库位置也不同。本发明实施例中针对待清理单机数据库的确定方式与数据回收过程中进行目标单机数据库的确定方式类似,可同时基于数据清理指令的类型以及索引回收记录中的待清理数据表类型进行确定。具体可分为如下几种情况:
1)若数据清理指令为数据库清理指令,则将分布式数据库中所有单机数据库确定为待清理单机数据库。
具体的,若根据数据清理指令确定其对应需要清理的数据为数据库类型的数据,则可认为数据清理指令为数据库清理指令,而数据库清理指令所对应数据在回收过程中可能存在与分布式数据库中所有单机数据库中,此时将分布式数据库中所有单机数据库均确定为待清理单机数据库。
2)若数据清理指令为数据表清理指令,则根据清理索引回收记录确定待清理数据表类型,并根据待清理数据表类型确定至少一个待清理单机数据库。
具体的,若根据数据清理指令确定其对应需要清理的数据为数据表类型的数据,则可对清理索引回收记录进行解析,由其中包含的待回收数据元数据信息中解析得到被回收数据的数据表类型,进而将该数据表类型确定为待清理数据表类型。而由于不同类型数据表在分布式数据库中的存储方式不同,故可根据待清理数据表类型确定待清理数据在分布式数据库中各单机数据库对应回收数据库中的分布情况,进以将包含有待清理数据表的回收数据库对应的单机数据库确定为待清理单机数据库。
可选的,根据清理索引回收记录确定待清理数据表类型,并根据待清理数据表类型确定至少一个待清理单机数据库,具体可包括如下两种情况:
2.1)若待清理数据表类型为单库表类型,则将清理索引回收记录对应的单机数据库确定为待清理单机数据库。
2.2)若待清理数据表类型为跨库表类型或复制表类型,则将分布式数据库中所有单机数据库确定为待清理单机数据库。
进一步地,在确定待清理单机数据库后,若数据清理指令为数据库清理指令,则将数据清理指令发送至各待清理单机数据库,以使各待清理单机数据库根据数据清理指令由对应的回收数据库中,对数据清理指令对应数据进行删除,具体可通过如下方式实现:
1)针对每个待清理单机数据库,将数据库清理指令发送至待清理单机数据库中,并根据数据库清理指令确定待清理数据名。
具体的,分布式数据库的Gate将数据库清理指令分别发送至各待清理单机数据库中,各待清理单机数据库在接收到数据库清理指令后的处理方式应大体一致。故针对每个待清理单机数据库,在将数据库清理指令对应发送后,可由待清理单机数据库对数据库清理指令语句进行解析,由其中提取得到需要进行清理数据的待清理数据名。
2)根据待清理数据名在待清理单机数据库对应的回收记录表中确定待清理回收记录,以及待清理回收记录在回收记录表中的记录标识。
具体的,根据待清理数据名在与待清理单机数据库相对应的回收记录表中匹配相对应的回收记录,将匹配成功的回收记录确定为待清理回收记录,此时可得到待清理回收记录在回收记录表中的记录标识,该记录标识将用以在对应回收子对象记录表中表明其所对应的父对象。
3)根据记录标识在待清理单机数据库对应的回收子对象记录表中确定至少一个单库回收数据表名。
具体的,由于待清理单机数据库对应的回收子对象记录表中,每一个回收子对象记录中均包含父对象唯一的记录标识,故可依据记录标识确定其在回收记录表中所对应的父对象,也即各记录标识一致的回收子对象记录对应数据表为同一个原始数据库下的数据表。在数据清理指令为数据库清理指令时,需对数据库清理指令对应数据下的所有数据进行清除,也即需要将属于同一记录标识下的多个数据表进行清除,此时可在回收子对象记录表中提取包含记录标识的所有回收子对象记录,并由各回收子对象记录中提取其对应的单库回收数据表名。
4)针对每个单库回收数据表名,由待清理单机数据库对应的回收数据库中,删除与单库回收数据表名对应的数据。
具体的,在明确单库回收数据表名后,可依据单库回收数据表名在待清理单机数据库对应的回收数据库中查找对应的数据表,并完成对表名为单库回收数据表名数据表的删除。
5)删除回收子对象记录表中与各单库回收数据表名对应的回收子对象记录,以及回收记录表中的待清理回收记录。
具体的,在完成回收数据库中各数据表数据的删除后,可认为回收数据库中已不包括与数据库清理指令对应的数据,数据库清理指令对应的回收子对象记录和待清理回收记录在回收子对象记录表和回收记录表中均为无效记录数据,此时可删除回收子对象记录表中与各单库回收数据表名对应的回收子对象记录,以及回收记录表中的待清理回收记录,以避免数据冗余存储。
6)根据数据库清理指令生成清理归档日志,并将清理归档日志发送至与待清理单机数据库对应的单机数据备库,以使单机数据备库根据清理归档日志进行与待清理单机数据库相同的数据删除操作。
具体的,针对每个待清理单机数据库,在其接收到数据库清理指令并执行与数据库清理指令对应数据清理操作时,将生成对应的清理归档日志,该清理归档日志中应与数据库清理指令内容一致。由待清理单机数据库将清理归档日志发送至与其对应的至少一个单机数据备库中,使得单机数据备库可依据清理归档日志中包含的数据库清理指令执行与待清理单机数据库相同的数据删除操作,进而使得待清理单机数据库与其对应的各单机数据备库之间保持有数据一致性,同时使得待清理单机数据库所进行的数据清理操作与清理归档日志的生成具有原子性。
进一步地,在确定待清理单机数据库后,若数据清理指令为数据表清理指令,则将数据清理指令发送至各待清理单机数据库,以使各待清理单机数据库根据数据清理指令由对应的回收数据库中,对数据清理指令对应数据进行删除,具体可通过如下方式实现:
1)针对每个待清理单机数据库,将数据表清理指令发送至待清理单机数据库中,并根据数据表清理指令确定待清理数据名。
具体的,分布式数据库的Gate将数据表清理指令分别发送至各待清理单机数据库中,各待清理单机数据库在接收到数据表清理指令后的处理方式应大体一致。故针对每个待清理单机数据库,在将数据表清理指令对应发送后,可由待清理单机数据库对数据表清理指令语句进行解析,由其中提取得到需要进行清理数据表的待清理数据名。
2)根据待清理数据名在待清理单机数据库对应的回收记录表中确定待清理回收记录。
具体的,根据待清理数据名在与待清理单机数据库相对应的回收记录表中匹配相对应的回收记录,将匹配成功的回收记录确定为待清理回收记录。
3)由待清理数据库对应的回收数据库中,删除与待清理回收记录对应的数据。
具体的,在明确待清理回收记录后,可根据待清理回收记录中包含的回收数据名在待清理单机数据库中查找对应的数据表,并完成对表名为回收数据名的数据表的删除。
4)删除回收记录表中的待清理回收记录。
具体的,在完成回收数据库中针对表名为回收数据名的数据表的删除后,可认为回收数据库中已不包括与数据表清理指令对应的数据,也即回收记录表中的待清理回收记录为无效记录数据,此时可自回收记录表中删除待清理回收记录,以避免数据冗余存储。
5)根据数据表清理指令生成清理归档日志,并将清理归档日志发送至与待清理单机数据库对应的单机数据备库,以使单机数据备库根据清理归档日志进行与待清理单机数据库相同的数据删除操作。
具体的,针对每个待清理单机数据库,在其接收到数据表清理指令并执行与数据表清理指令对应数据清理操作时,将生成对应的清理归档日志,该清理归档日志中应与数据表清理指令内容一致。由待清理单机数据库将清理归档日志发送至与其对应的至少一个单机数据备库中,使得单机数据备库可依据清理归档日志中包含的数据表清理指令执行与待清理单机数据库相同的数据删除操作,进而使得待清理单机数据库与其对应的各单机数据备库之间保持有数据一致性,同时使得待清理单机数据库所进行的数据清理操作与清理归档日志的生成具有原子性。
本实施例的技术方案,通过构造包含有回收状态信息、回收数据名和待回收数据元数据信息的待回收数据注释信息,并将待回收数据注释信息添加至数据回收指令中以生成重构数据回收指令,使得需回收数据对应的元数据信息可被通过重构数据回收指令一并下发至进行数据回收操作的单机数据库中。同时在单机数据库进行数据回收的过程中,通过在系统库中构建与单机数据库对应且独立存在的回收记录表和回收子对象记录表,实现对单机数据库所回收数据库表定义信息的全量保存,进而使得数据在回收完成后,不仅可对回收的数据表类型数据进行全量还原,还可依据完整保存的待回收数据定义信息对数据库类型的回收数据进行正确且全量的还原,避免了数据还原过程中的元数据丢失,保障了数据还原准确性,提升了数据库运行稳定性,降低了运维成本。
实施例三
图6为本发明实施例三提供的一种数据还原方法的流程图,本发明实施例可适用于对分布式数据库中已回收库表数据进行还原的情况,该方法可以由数据还原装置来执行,该数据还原装置可以由软件和/或硬件来实现,该数据还原装置可以配置在电子设备中。可选的,电子设备可以为笔记本、台式计算机、智能平板及其他具有数据计算功能的设备等,本发明实施例对此不进行限制。
如图6所示,本发明实施例提供的一种数据还原方法,具体包括如下步骤:
S401、在接收到数据还原指令时,根据数据还原指令依次对各单机数据库对应的回收记录表进行匹配,将第一个匹配的回收记录确定为索引回收记录。
其中,回收记录表中包括至少一条回收记录,回收记录中至少包括对应待还原数据的待还原数据元数据信息。
在本实施例中,数据还原指令具体可理解为由客户端给出的,希望对分布式数据库中已进行数据回收的数据进行还原的指令,可选的,数据还原指令可通过SQL语句给出。索引回收记录具体可理解为分布式数据库中第一个与数据还原指令匹配的回收记录,可由其中确定所需还原数据完整定义信息的回收记录。
具体的,在分布式数据的入口接收到由客户端给出的SQL语句时,将对SQL语句进行分析,若SQL语句为用于指示已回收数据库数据还原,或已回收数据表数据还原的数据还原指令,则可根据数据还原指令确定待还原数据在分布式数据库中各单机数据库对应回收记录表中全局唯一的名称,可根据该名称依次对各单机数据库对应的回收记录表中的每条回收记录进行匹配,进而将匹配到的第一条回收记录确定为索引回收记录。
可选的,由于每一条回收记录中至少包括对应待还原数据的待还原数据元数据信息,故可认为索引回收记录中包含有与数据还原指令对应数据的所有定义相关信息。
S402、根据索引回收记录确定至少一个目标单机数据库,并将数据还原指令发送至各目标单机数据库,以使各目标单机数据库根据数据还原指令由对应的回收记录表中确定目标回收记录,并根据目标回收记录进行数据还原。
在本实施例中,目标单机数据库具体可理解为分布式数据库中保存有需要还原的待还原数据的单机数据库。
具体的,由于与数据还原指令相对应的待还原数据,在被回收过程中可基于其定义信息由分布式数据库中不同单机数据库进行回收,故在明确与待回收数据对应的索引回收记录后,可基于索引回收记录中包含的,与待回收数据相对应的定义信息,明确分布式数据库中回收有待还原数据的至少一个单机数据库,并将确定出的单机数据库确定为目标单机数据库。此时将由Gate将数据还原指令分别下发至各目标单机数据库中。使得各目标单机数据库在接收到数据还原指令时,将依据数据还原指令中包含的信息,由目标单机数据库对应的回收记录表中确定与数据还原指令对应数据回收操作相关的回收记录,并将确定出的回收记录确定为目标回收记录,并使得目标单机数据库可依据目标回收记录中记载的信息将对应数据还原至目标单机数据库中。
S403、根据索引回收记录中的待还原数据元数据信息创建还原数据定义信息。
具体的,由于索引回收记录中至少包含与待还原数据定义相关的待还原数据元数据信息,故在分布式数据库中各目标单机数据库完成针对数据还原指令的数据还原后,Gate将调用元数据服务,依据索引回收记录中记录的待还原数据元数据信息,对待还原数据进行定义重构,也即创建得到还原数据定义信息。
可以理解的是,由于在回收过程中已将分布式库表中易丢失的如分片键及分片算法等元数据信息作为待还原数据元数据信息保存于回收记录中,故在由索引回收记录中获取到待还原数据元数据信息后,可依据其创建待还原数据全量的还原数据定义信息,保障了数据还原的完整性。
本实施例的技术方案,通过在接收到数据还原指令时,根据数据还原指令依次对各单机数据库对应的回收记录表进行匹配,将第一个匹配的回收记录确定为索引回收记录;根据索引回收记录确定至少一个目标单机数据库,并将数据还原指令发送至各目标单机数据库,以使各目标单机数据库根据数据还原指令由对应的回收记录表中确定目标回收记录,并根据目标回收记录进行数据还原;根据索引回收记录中的待还原数据元数据信息创建还原数据定义信息;其中,回收记录表中包括至少一条回收记录,回收记录中至少包括对应待还原数据的待还原数据元数据信息。通过采用上述技术方案,在需要对分布式数据库中已回收数据进行还原时,由分布式数据库中各单机数据库对应的回收记录表中查找与数据还原指令对应的索引回收记录,由于回收记录在生成时已通过待还原数据元数据信息将被回收数据的完整信息进行保存,故使得分布式数据库在明确索引回收记录后即可确定与数据还原指令对应的数据需被还原至的单机数据库,进而使得各目标单机数据库可依据其各自对应的回收记录表中的目标回收记录,在目标单机数据库内部完成与数据还原指令对应的数据还原,同时使得分布式数据库可依据待还原数据元数据信息完成包含完整定义信息的还原数据定义信息重建,避免了数据还原过程中的元数据丢失,保障了数据还原准确性,提升了数据库运行稳定性,降低了运维成本。
实施例四
图7为本发明实施例四提供的一种数据还原方法的流程图,本发明实施例的技术方案在上述各可选技术方案的基础上进一步优化,依据数据还原指令的指令类型,以及对索引回收记录解析后确定的待还原数据表类型等信息确定需要进行数据还原的目标单机数据库。并在将数据还原指令下发至各目标单机数据库后,通过存储于系统库中的与各目标单机数据库对应且独立存在的回收记录表和回收子对象记录表,完成与数据还原指令对应数据在目标单机数据库中的还原。且由于通过回收记录表和回收子对象记录表两个维度对回收数据进行记录,可实现对数据库类型的回收数据进行还原。而通过在回收数据表中以元数据信息的形式保存所回收数据库表的全量定义信息,使得被回收数据在还原过程中,不仅可以对数据表类型的数据进行全量还原,还可以局完整保存的待还原数据元数据信息对数据库类型的回收数据的定义进行全量还原,避免了数据还原过程中的元数据丢失,保障了数据还原准确性,提升了数据库运行稳定性,降低了运维成本。
如图7所示,本发明实施例四提供的一种数据还原方法,具体包括如下步骤:
S501、在接收到数据还原指令时,根据数据还原指令确定待还原数据名。
具体的,在接收到数据还原指令时,对数据还原指令记性解析,确定出其中包含的待还原数据名。
可以理解的是,数据还原指令中至少应包括需要还原数据的数据类型和数据名称,故可将其中的数据名称确定为待还原数据名。
示例性的,若数据还原指令表示为:flashback table recycled_tb,则可明确其中待还原数据名为recycled_tb,其所对应需要还原的数据为数据表类型的数据。若数据还原指令表示为:flashback database recycled_db,则可明确其中的待还原数据名为recycled_db,起所对应需要还原的数据为数据库类型的数据。
S502、将待还原数据名依次与各单机数据库对应的回收记录表中的回收数据名进行匹配。
具体的,由于各单机数据库均有与其相对应的回收记录表,且各回收记录表中均包含至少一条回收记录,故可依据待还原数据名依次与各回收记录中的回收数据名进行匹配,以确定待还原数据名对应数据存储于哪个单机数据库对应的回收数据库中。
S503、将第一个匹配成功的回收数据名对应的回收记录确定为索引回收记录。若数据还原指令为数据库还原指令,则执行S504;若数据还原指令为删表还原指令或清表还原指令,则执行S510。
具体的,在第一个回收数据名与回收记录匹配成功时,即可确定待还原数据一定需要被还原至与回收记录名对应的回收记录所对应的单机数据库中,且由于回收记录中包含由全量的数据定义信息,此时可将确定出的回收记录作为索引回收记录。而根据数据还原指令中的数据类型,可将其划分为数据库还原指令和数据表还原指令,其中,数据表还原指令又可分为数据表已完全自单机数据库中回收的删表还原指令,和仅将数据表中数据自单机数据库中回收的清表还原指令。在数据还原指令为数据库还原指令时,执行S504;在数据库还原指令为删表还原指令或清表还原指令时,执行S510。
S504、将分布式数据库中所有单机数据库确定为目标单机数据库。
具体的,在数据还原指令为数据库还原指令时,可认为分布式数据库中所有单机数据库中均可能包含有与数据库还原指令所对应需要还原的数据,此时将分布式数据库中的所有单机数据库均作为需要执行数据库还原指令的目标单机数据库。
S505、针对每个目标单机数据库,将数据库还原指令发送至目标单机数据库中,并根据数据库还原指令确定待还原数据名。
具体的,分布式数据库的Gate将数据库还原指令分别发送至各目标单机数据库中,各目标单机数据库在接收到数据库还原指令后的处理方式应大体一致,本发明实施例仅以一个目标单机数据库执行数据库还原指令的处理方式为例。目标单机数据库在接收到数据库还原指令时,将对其进行解析,得到需要进行还原数据库的待还原数据名。
S506、根据待还原数据名在目标单机数据库对应的回收记录表中确定目标回收记录。
具体的,由于回收记录表中各回收记录中应包含被回收数据在回收后的回收数据名,故可将目标单机数据库对应的回收记录表中,各回收记录中的回收数据名与待还原数据名进行匹配,将匹配成功的回收记录确定为目标回收记录。
S507、确定目标回收记录在回收记录表中的记录标识,并对目标回收记录进行解析,确定还原数据名。
具体的,由回收记录表中确定目标回收记录唯一对应的记录标识,并对目标回收记录进行解析,由于在执行数据还原操作后,希望存在于目标单机数据库中被还原的数据应与未回收前呈现方式一致,故可将目标回收记录中存储的待回收数据名确定为所对应待还原数据在被还原至目标单机数据库时所需呈现的还原数据名,进以保证依据目标回收记录进行数据还原后所呈现名称与数据回收时保持一致。
S508、根据还原数据名在目标单机数据库中创建数据目录,并根据记录标识将与待还原数据名对应的各待还原数据表还原至数据目录中。
具体的,由于目标单机数据库中原有的逻辑数据库已被删除,故在确定出还原数据名,也即需要还原逻辑数据库的库名后,可根据还原数据名在目标单机数据库中创建以其为名的数据目录,进而根据其记录标识由目标单机数据库对应的回收子对象记录表中确定需要被还原至该数据目录下的多个数据表,进而将目标数据库对应回收数据库中根据上述方式确定出的待还原数据表还原至数据目录中。
可选的,图8为本发明实施例四提供的一种根据记录标识将与待还原数据名对应的各待还原数据表还原至数据目录中的流程示例图,如图8所示,具体包括如下步骤:
S5081、根据记录标识在目标单机数据库对应的回收子对象记录表中确定至少一个单库回收数据表名。
具体的,在目标单机数据库对应的回收子对象记录表中,查找所有包含记录标识的回收子对象记录,并由确定出的回收子对象记录中解析得到其各自对应的单库回收数据表名。
S5082、针对每个单库回收数据表名,将目标单机数据库对应的回收数据库中,与单库回收数据表名对应的数据表确定为待还原数据表。
具体的,每个单库回收数据表名对应于目标单机数据库对应回收数据库中存储的一个数据表,该数据表也即为需要被还原至名称为还原数据名的数据目录下的数据表,此时可将回收数据库中与单库回收数据表名对应的数据表确定为待还原数据表。
S5083、确定待还原数据表对应私有属性中的原始数据表名和原始库名。
其中,原始库名与还原数据名相同。
具体的,由于在进行回收过程中,会在被回收逻辑数据库中的每个数据表对应的私有属性中,存储其被回收前的原始数据表名和原始库名,故此时可在确定出待还原数据表后,由其私有属性中确定其被还原后所需的原始数据表名和原始库名,若还原正确的情况下,其中包含的原始库名应与在先确定的还原数据名相同。
S5084、根据原始数据表名和原始库名,将待还原数据表以原始数据表名还原至数据目录中。
具体的,根据原始库名确定待还原数据表在目标单机数据库中需要写入的数据目录,并在将待还原数据表由回收数据库移至数据目录下时,将其重命名为原始数据表名,进而实现待还原数据表的还原。
S5085、删除回收子对象记录表中与单库回收数据表名对应的回收子对象记录。
具体的,在完成回收数据库中各待还原数据表的还原后,可认为回收数据库中已不包括与回收子对象记录相对应的数据,为避免数据的无效存储,此时可将回收子对象记录表中与单库回收数据表名对应的回收子对象记录进行删除。
S509、删除回收记录表中的目标回收记录,并执行S522。
具体的,在目标单机数据库中创建的数据目录下已完成全部数据表的还原后,可认为与数据库还原指令对应的逻辑数据库已还原完毕,回收数据库中已不包括与目标回收记录相对应的数据,为避免数据的无效存储,此时可将目标回收记录自回收记录表中进行删除,并在其后执行步骤S522。
S510、根据索引回收记录确定待还原数据表类型,并根据待还原数据表类型确定至少一个目标单机数据库。在数据还原指令为删表还原指令时,执行S511;在数据还原指令为清表还原指令时,执行S516。
具体的,针对索引回收记录进行解析,即可确定待还原数据表的类型,且由于不同类型数据表在分布式数据库中的存储方式不同,故可根据待还原数据表类型确定待还原数据表需要分布式数据库中的存储情况,并将确定出的需要包含待还原数据表的单机数据库确定为目标单机数据库。
可选的,根据待还原数据表类型确定至少一个目标单机数据库,具体可包括如下两种情况:
1)若待还原数据表类型为单库表类型,则将索引回收记录对应的单机数据库确定为目标单机数据库。
2)若待还原数据表类型为跨库表类型或复制表类型,则将分布式数据库中所有单机数据库确定为目标单机数据库。
可以理解的是,上述关于目标单机数据库的确定方式与数据回收方法中确定目标单机数据库的方式基本一致,此处不再进行详细解释。
S511、针对每个目标单机数据库,将删表还原指令发送至目标单机数据库中,并根据删表还原指令确定待还原数据名。
具体的,在数据还原指令为删表还原指令时,分布式数据库的Gate将删表还原指令分别发送至各目标单机数据库中,各目标单机数据库在接收到删表还原指令后的处理方式应大体一致,本发明实施例仅以一个目标单机数据库执行删表还原指令的处理方式为例。目标单机数据库在接收到删表还原指令时,将对其进行解析,得到需要进行还原数据表的待还原数据名。
S512、根据待还原数据名在目标单机数据库对应的回收记录表中确定目标回收记录。
具体的,由于回收记录表中各回收记录中应包含被回收数据在回收后的回收数据名,故可将目标单机数据库对应的回收记录表中,各回收记录中的回收数据名与待还原数据名进行匹配,将匹配成功的回收记录确定为目标回收记录。
S513、对目标回收记录进行解析,确定还原数据库名和还原数据表名。
具体的,由于回收记录在生成时,即包括被回收数据的待回收数据名、回收状态信息、回收数据名、回收数据类型和待回收数据元数据信息,其中的待回收数据名即为未被回收前存储于目标单机数据库中的数据名,也即为还原后希望呈现于目标单机数据库中的数据名,此时在对目标回收记录进行解析后,皆可根据目标回收记录中的待回收数据名,确定待还原数据名对应的还原数据库名和还原数据表名。
S514、根据还原数据表名,将目标单机数据库对应的回收数据库中与待还原数据表名对应的数据表,还原至目标单机数据库中与还原数据库名对应的数据库中。
具体的,将目标单机数据库对应的回收数据库中,与待还原数据表名对应的数据表确定为待还原数据表,并将该待还原数据表由回收数据库中移至目标单机数据库中与还原数据库名对应数据库的数据目录下,并将还原后数据表的表名重命名为还原数据表名,以实现对删除数据表的还原。
S515、删除回收记录表中的目标回收记录,并执行S522。
具体的,在目标单机数据库中对应还原数据库名的数据库中完成数据表的还原后,可认为删表还原指令对应的数据表已被还原完毕,回收数据库中已不包括与删表回收记录相对应的数据,为避免数据的无效存储,此时可将目标回收记录自回收记录表中进行删除,并在其后执行步骤S522。
S516、针对每个目标单机数据库,将清表还原指令发送至目标单机数据库中,并根据清表还原指令确定待还原数据名和更新还原数据表名。
具体的,在数据还原指令为清表还原指令时,分布式数据库的Gate将清表还原指令分别发送至各目标单机数据库中,各目标单机数据库在接收到清表还原指令后的处理方式应大体一致,本发明实施例仅以一个目标单机数据库执行清表还原指令的处理方式为例。目标单机数据库在接收到清表还原指令时,将对其进行解析,得到需要进行还原数据表的待还原数据名,以及若目标单机数据库中已有与待还原数据名对应还原数据表名的数据表情况下,需要将被还原数据表重新命名的更新还原数据表名。
S517、根据待还原数据名在目标单机数据库对应的回收记录表中确定目标回收记录。
具体的,由于回收记录表中各回收记录中应包含被回收数据在回收后的回收数据名,故可将目标单机数据库对应的回收记录表中,各回收记录中的回收数据名与待还原数据名进行匹配,将匹配成功的回收记录确定为目标回收记录。
S518、对目标回收记录进行解析,确定还原数据库名和还原数据表名。
具体的,由于回收记录在生成时,即包括被回收数据的待回收数据名、回收状态信息、回收数据名、回收数据类型和待回收数据元数据信息,其中的待回收数据名即为未被回收前存储于目标单机数据库中的数据名,也即为还原后希望呈现于目标单机数据库中的数据名,此时在对目标回收记录进行解析后,皆可根据目标回收记录中的待回收数据名,确定待还原数据名对应的还原数据库名和还原数据表名。
S519、若目标单机数据库中与还原数据库名对应的数据库中存在还原数据表名的数据表,则将目标单机数据库对应的回收数据库中与待还原数据表名对应的数据表重命名为更新还原数据表名,并还原至目标单机数据库中与还原数据库名对应的数据库中,并执行S521。
具体的,由于分布式数据库在执行清表类型的重构数据表回收指令时,将在目标单机数据库中保留被清除数据表的表名不变,而在还原时目标单机数据库的同一个逻辑数据库中不可出现两个名称相同的数据表。因此,若目标单机数据库中与还原数据库名对应的逻辑数据库中,已存在还原数据表名的数据表,此时可将目标单机数据库对应的回收数据库中,与待还原数据表名对应的数据表重命名为更新还原数据表名,并将该更新还原数据表名的数据表由回收数据库中移至目标单机数据库中与还原数据库名对应的逻辑数据库中,并在其后执行S521。
S520、若目标单机数据库中与还原数据库名对应的数据库中不存在还原数据表名的数据表,则将目标单机数据库对应的回收数据库中与待还原数据表名对应的数据表重命名为还原数据表名,并还原至目标单机数据库中与还原数据库名对应的数据库中,并执行S521。
具体的,在目标单机数据库中与还原数据库名对应的逻辑数据库内不存在还原数据表名的数据表,则可认为可直接将回收数据库中与待还原数据表名对应的数据表,以其对应回收记录中的还原数据表名还原至目标单机数据库中,此时可将目标单机数据库对应的回收数据库中,与待还原数据表名对应的数据表重命名为还原数据表名,并将该还原数据表名的数据表由回收数据库中移至目标单机数据库中与还原数据库名对应的逻辑数据库中,并在其后执行S521。
S521、删除回收记录表中的目标回收记录。
具体的,在目标单机数据库中对应还原数据库名的数据库中完成数据表的还原后,可认为清表还原指令对应的数据表已被还原完毕,回收数据库中已不包括与清表回收记录相对应的数据,为避免数据的无效存储,此时可将目标回收记录自回收记录表中进行删除,并在其后执行步骤S522。
S522、根据索引回收记录中的待还原数据元数据信息创建还原数据定义信息。
可以理解的是,Gate在依据索引回收记录确定待还原数据元数据信息后,可调用分布式数据库的元数据服务进行待还原数据定义的重建。在待还原数据元数据信息为针对一个数据表的信息时,将由Gate调用元数据服务根据其中的tb_info创建针对数据表tb的定义;而在待还原数据元数据信息为针对一个数据库的信息时,将由Gate调用元数据服务根据其中的tb_info_map创建数据库db及db下所有数据表的定义信息,最终完成还原数据定义信息的创建。
可选的,在将数据还原指令发送至各目标单机数据库,以使各目标单机数据库根据数据还原指令由对应的回收记录表中确定目标回收记录,并根据目标回收记录进行数据还原之时,还包括:
针对每个目标单机数据库,根据数据还原指令生成归档日志;将归档日志发送至与目标单机数据库对应的单机数据备库,以使单机数据备库根据归档日志进行与目标单机数据库相同的数据还原操作;其中,目标单机数据库和各单机数据备库具有数据一致性。
具体的,针对每个目标单机数据库,在其收到数据还原指令并执行与数据还原指令对应操作时,将生成对应的归档日志,该归档日志中包含信息应与数据还原指令内容一致。由目标单机数据库将归档日志发送至与其对应的至少一个单机数据备库中,使得单机数据备库可依据归档日志中包含的数据还原指令执行与目标单机数据库相同的数据还原操作,进而使得目标单机数据库与其对应的各单机数据备库之间保持有数据一致性,同时可以明确的是,目标单机数据库所进行的数据还原操作和归档日志的生成具有原子性,也即二者需得同时成功,否则就会同时失败。
本实施例的技术方案,依据数据还原指令的指令类型,以及对索引回收记录解析后确定的待还原数据表类型等信息确定需要进行数据还原的目标单机数据库。并在将数据还原指令下发至各目标单机数据库后,通过存储于系统库中的与各目标单机数据库对应且独立存在的回收记录表和回收子对象记录表,完成与数据还原指令对应数据在目标单机数据库中的还原。且由于通过回收记录表和回收子对象记录表两个维度对回收数据进行记录,可实现对数据库类型的回收数据进行还原。而通过在回收数据表中以元数据信息的形式保存所回收数据库表的全量定义信息,使得被回收数据在还原过程中,不仅可以对数据表类型的数据进行全量还原,还可以根据完整保存的待还原数据元数据信息对数据库类型的回收数据的定义进行全量还原,避免了数据还原过程中的元数据丢失,保障了数据还原准确性,提升了数据库运行稳定性,降低了运维成本。
实施例五
图9为本发明实施例五提供的一种数据回收装置的结构示意图,如图9所示,数据回收装置包括:回收定义确定模块61、重构指令生成模块62和数据回收模块63。
其中,回收定义确定模块61,用于在接收到数据回收指令时,根据数据回收指令确定待回收数据定义信息;其中,待回收数据定义信息中至少包括待回收数据元数据信息;重构指令生成模块62,用于获取回收状态信息,根据数据回收指令、回收状态信息和待回收数据元数据信息生成重构数据回收指令;数据回收模块63,用于根据待回收数据定义信息确定至少一个目标单机数据库,并将重构数据回收指令发送至各目标单机数据库,以使各目标单机数据库根据重构数据回收指令进行数据回收。
本实施例的技术方案,在需要对分布式数据库中数据进行回收时,将与需回收数据对应的元数据信息通过重构数据回收指令一并下发至进行数据回收操作的单机数据库中,使得单机数据库在进行数据回收过程中可以实现针对被回收数据的完整信息保存,进而可使得数据在回收完成后,可依据完整保存的元数据信息对回收数据进行正确且全量的还原,避免了数据还原过程中的元数据丢失,保障了数据还原准确性,提升了数据库运行稳定性,降低了运维成本。
可选的,重构指令生成模块62,包括:
回收名确定单元,用于根据数据回收指令确定待回收数据名,并根据待回收数据名生成对应的回收数据名;
注释信息构造单元,用于根据回收状态信息、回收数据名和待回收数据元数据信息构造待回收数据注释信息;
重构指令生成单元,用于将待回收数据注释信息添加至数据回收指令中,生成重构数据回收指令。
可选的,数据回收模块63,包括:
目标库确定单元,用于若数据回收指令为数据库回收指令,则将分布式数据库中所有单机数据库确定为目标单机数据库;若数据回收指令为数据表回收指令,则根据待回收数据定义信息中的待回收数据表类型确定至少一个目标单机数据库。
数据回收单元,用于将重构数据回收指令发送至各目标单机数据库,以使各目标单机数据库根据重构数据回收指令进行数据回收。
可选的,目标库确定单元,具体用于:
若待回收数据表类型为单库表类型,则根据待回收数据定义信息中的待回收数据名确定目标单机数据库;
若待回收数据表类型为跨库表类型或复制表类型,则将分布式数据库中所有单机数据库确定为目标单机数据库。
可选的,在重构数据回收指令为与数据库回收指令对应的重构数据库回收指令时,数据回收单元,具体用于:
将重构数据库回收指令发送至目标单机数据库中,并对重构数据库回收指令进行解析,确定待回收数据名、回收状态信息、回收数据名、回收数据类型和待回收数据元数据信息;
若回收状态信息中的回收变量为开,则将根据待回收数据名、回收状态信息、回收数据名、回收数据类型和待回收元数据信息构建数据库回收记录写入目标单机数据库对应的回收记录表中,确定数据库回收记录在回收记录表中的记录标识,并对目标单机数据库中与待回收数据名对应的各数据表进行回收操作;
若回收状态信息中的回收变量为关,则对目标单机数据库中与待回收数据名对应的各数据表进行删除操作;
删除待回收数据名对应的数据目录。
可选的,对目标单机数据库中与待回收数据名对应的各数据表进行回收操作,包括:
针对目标单机数据库中与待回收数据名对应的每个数据表,生成与数据表对应的单库回收数据表名;
将数据表移动至与目标单机数据库对应的回收数据库,并将回收数据库中的数据表重命名为单库回收数据表名;其中,回收数据库中的数据表的私有属性包括数据表的原始数据表名和原始库名;
根据单库回收数据表名、待回收数据名对应的记录标识以及数据表的对象类型构建回收子对象记录,并将回收子对象记录写入目标单机数据库对应的回收子对象记录表中;
其中,单库回收数据表名与目标单机数据库唯一对应。
可选的,在重构数据回收指令为与数据表回收指令对应的重构数据表回收指令时,数据回收单元,具体用于:
将重构数据表回收指令发送至目标单机数据库中,并对重构数据表回收指令进行解析,确定数据表回收操作类型、待回收数据名、回收状态信息、回收数据名、回收数据类型和待回收数据元数据信息;
若回收状态信息中的回收变量为开,则根据待回收数据名对目标单机数据库中对应的待回收数据表执行与数据表回收操作类型对应的回收操作,并将根据待回收数据名、回收状态信息、回收数据名、回收数据类型和待回收数据元数据信息构建的数据表回收记录写入目标单机数据库对应的回收记录表中;
若回收状态信息中的回收变量为关,则根据待回收数据名对目标单机数据库中对应的待回收数据表执行与数据表回收操作类型对应的删除操作。
可选的,根据待回收数据名对目标单机数据库中对应的待回收数据表执行与数据表回收操作类型对应的回收操作,包括:
若数据表回收操作类型为删表类型,则将待回收数据名对应的待回收数据表移动至目标单机数据库对应的回收数据库,并将回收数据库中的数据表重命名为回收数据名;
若数据表回收操作类型为清表类型,则将待回收数据名对应的待回收数据表移动至目标单机数据库对应的回收数据库,将回收数据库中的数据表重命名为回收数据名,并在目标单机数据库中重建一个表名为待回收数据名的数据表。
可选的,数据回收装置,还包括:回收同步模块,用于:
在将重构数据回收指令发送至各目标单机数据库,以使目标单机数据库根据重构数据回收指令进行数据回收之时,针对每个目标单机数据库,根据重构数据回收指令生成归档日志;
将归档日志发送至与目标单机数据库对应的单机数据备库,以使单机数据备库根据归档日志进行与目标单机数据库相同的数据回收操作;
其中,目标单机数据库和各单机数据备库具有数据一致性。
可选的,数据回收装置,还包括:定义删除模块,用于在将重构数据回收指令发送至各目标单机数据库,以使目标单机数据库根据重构数据回收指令进行数据回收之后,删除待回收数据定义信息。
可选的,数据回收装置,还包括:回收数据查询模块,用于:
在接收到回收数据查询指令时,根据回收数据查询指令对回收记录表进行查询,确定目标回收记录;
将目标回收记录中的待回收数据名、回收数据名、回收数据类型和回收状态信息以预设查询展示形式进行展示。
可选的,数据回收装置,还包括:回收数据清理模块,用于:
在接收到数据清理指令时,根据数据清理指令依次对各单机数据库对应的回收记录表进行匹配,将第一个匹配的回收记录确定为清理索引回收记录;
根据清理索引回收记录确定至少一个待清理单机数据库,并将数据清理指令发送至各待清理单机数据库,以使各待清理单机数据库根据数据清理指令由对应的回收数据库中,对数据清理指令对应数据进行删除。
可选的,根据数据清理指令依次对各单机数据库对应的回收记录表进行匹配,将第一个匹配的回收记录确定为清理索引回收记录,包括:
根据数据清理指令确定待清理数据名;
将待清理数据名依次与各单机数据库对应的回收记录表中的回收数据名进行匹配;
将第一个匹配成功的回收数据名对应的回收记录确定为清理索引回收记录。
可选的,根据清理索引回收记录确定至少一个待清理单机数据库,包括:
若数据清理指令为数据库清理指令,则将分布式数据库中所有单机数据库确定为待清理单机数据库;
若数据清理指令为数据表清理指令,则根据清理索引回收记录确定待清理数据表类型,并根据待清理数据表类型确定至少一个待清理单机数据库。
可选的,根据待清理数据表类型确定至少一个待清理单机数据库,包括:
若待清理数据表类型为单库表类型,则将清理索引回收记录对应的单机数据库确定为待清理单机数据库;
若待清理数据表类型为跨库表类型或复制表类型,则将分布式数据库中所有单机数据库确定为待清理单机数据库。
可选的,在数据清理指令为数据库清理指令时,将数据清理指令发送至各待清理单机数据库,以使各待清理单机数据库根据数据清理指令由对应的回收数据库中,对数据清理指令对应数据进行删除,包括:
针对每个待清理单机数据库,将数据库清理指令发送至待清理单机数据库中,并根据数据库清理指令确定待清理数据名;
根据待清理数据名在待清理单机数据库对应的回收记录表中确定待清理回收记录,以及待清理回收记录在回收记录表中的记录标识;
根据记录标识在待清理单机数据库对应的回收子对象记录表中确定至少一个单库回收数据表名;
针对每个单库回收数据表名,由待清理单机数据库对应的回收数据库中,删除与单库回收数据表名对应的数据;
删除回收子对象记录表中与各单库回收数据表名对应的回收子对象记录,以及回收记录表中的待清理回收记录;
根据数据库清理指令生成清理归档日志,并将清理归档日志发送至与待清理单机数据库对应的单机数据备库,以使单机数据备库根据清理归档日志进行与待清理单机数据库相同的数据删除操作。
可选的,在数据清理指令为数据表清理指令时,将数据清理指令发送至各待清理单机数据库,以使各待清理单机数据库根据数据清理指令由对应的回收数据库中,对数据清理指令对应数据进行删除,包括:
针对每个待清理单机数据库,将数据表清理指令发送至待清理单机数据库中,并根据数据表清理指令确定待清理数据名;
根据待清理数据名在待清理单机数据库对应的回收记录表中确定待清理回收记录;
由待清理数据库对应的回收数据库中,删除与待清理回收记录对应的数据;
删除回收记录表中的待清理回收记录;
根据数据表清理指令生成清理归档日志,并将清理归档日志发送至与待清理单机数据库对应的单机数据备库,以使单机数据备库根据清理归档日志进行与待清理单机数据库相同的数据删除操作。
本发明实施例提供的数据回收装置可执行本发明任意实施例所提供的数据回收方法,具备执行相应方法的功能模块和有益效果。
实施例六
图10为本发明实施例六提供的一种数据还原装置的结构示意图,如图10所示,数据还原装置包括:索引记录确定模块71,数据还原模块72和数据定义还原模块73。
其中,索引记录确定模块71,用于在接收到数据还原指令时,根据数据还原指令依次对各单机数据库对应的回收记录表进行匹配,将第一个匹配的回收记录确定为索引回收记录;数据还原模块72,用于根据索引回收记录确定至少一个目标单机数据库,并将数据还原指令发送至各目标单机数据库,以使各目标单机数据库根据数据还原指令由对应的回收记录表中确定目标回收记录,并根据目标回收记录进行数据还原;数据定义还原模块73,用于根据索引回收记录中的待还原数据元数据信息创建还原数据定义信息;其中,回收记录表中包括至少一条回收记录,回收记录中至少包括对应待还原数据的待还原数据元数据信息。
本实施例的技术方案,在需要对分布式数据库中已回收数据进行还原时,由分布式数据库中各单机数据库对应的回收记录表中查找与数据还原指令对应的索引回收记录,由于回收记录在生成时已通过待还原数据元数据信息将被回收数据的完整信息进行保存,故使得分布式数据库在明确索引回收记录后即可确定与数据还原指令对应的数据需被还原至的单机数据库,进而使得各目标单机数据库可依据其各自对应的回收记录表中的目标回收记录,在目标单机数据库内部完成与数据还原指令对应的数据还原,同时使得分布式数据库可依据待还原数据元数据信息完成包含完整定义信息的还原数据定义信息重建,避免了数据还原过程中的元数据丢失,保障了数据还原准确性,提升了数据库运行稳定性,降低了运维成本。
可选的,索引记录确定模块71,包括:
数据名确定单元,用于根据数据还原指令确定待还原数据名;
数据名匹配单元,用于将待还原数据名依次与各单机数据库对应的回收记录表中的回收数据名进行匹配;
索引记录确定单元,用于将第一个匹配成功的回收数据名对应的回收记录确定为索引回收记录。
可选的,数据还原模块72,包括:
目标库确定单元,用于若数据还原指令为数据库还原指令,则将分布式数据库中所有单机数据库确定为目标单机数据库;若数据还原指令为删表还原指令或清表还原指令,则根据索引回收记录确定待还原数据表类型,并根据待还原数据表类型确定至少一个目标单机数据库。
数据还原单元,用于将数据还原指令发送至各目标单机数据库,以使各目标单机数据库根据数据还原指令由对应的回收记录表中确定目标回收记录,并根据目标回收记录进行数据还原。
可选的,目标库确定单元,具体用于:
若待还原数据表类型为单库表类型,则将索引回收记录对应的单机数据库确定为目标单机数据库;
若待还原数据表类型为跨库表类型或复制表类型,则将分布式数据库中所有单机数据库确定为目标单机数据库。
可选的,在数据还原指令为数据库还原指令时,数据还原单元,具体用于:
针对每个目标单机数据库,将数据库还原指令发送至目标单机数据库中,并根据数据库还原指令确定待还原数据名;
根据待还原数据名在目标单机数据库对应的回收记录表中确定目标回收记录;
确定目标回收记录在回收记录表中的记录标识,并对目标回收记录进行解析,确定还原数据名;
根据还原数据名在目标单机数据库中创建数据目录,并根据记录标识将与待还原数据名对应的各待还原数据表还原至数据目录中;
删除回收记录表中的目标回收记录。
可选的,根据记录标识将与待还原数据名对应的各待还原数据表还原至数据目录中,包括:
根据记录标识在目标单机数据库对应的回收子对象记录表中确定至少一个单库回收数据表名;
针对每个单库回收数据表名,将目标单机数据库对应的回收数据库中,与单库回收数据表名对应的数据表确定为待还原数据表;
确定待还原数据表对应私有属性中的原始数据表名和原始库名;其中,原始库名与还原数据名相同;
根据原始数据表名和原始库名,将待还原数据表以原始数据表名还原至数据目录中;
删除回收子对象记录表中与单库回收数据表名对应的回收子对象记录。
可选的,在数据还原指令为删表还原指令时,数据还原单元,具体用于:
针对每个目标单机数据库,将删表还原指令发送至目标单机数据库中,并根据删表还原指令确定待还原数据名;
根据待还原数据名在目标单机数据库对应的回收记录表中确定目标回收记录;
对目标回收记录进行解析,确定还原数据库名和还原数据表名;
根据还原数据表名,将目标单机数据库对应的回收数据库中与待还原数据表名对应的数据表,还原至目标单机数据库中与还原数据库名对应的数据库中;
删除回收记录表中的目标回收记录。
可选的,在数据还原指令为清表还原指令时,数据还原单元,具体用于:
针对每个目标单机数据库,将清表还原指令发送至目标单机数据库中,并根据清表还原指令确定待还原数据名和更新还原数据表名;
根据待还原数据名在目标单机数据库对应的回收记录表中确定目标回收记录;
对目标回收记录进行解析,确定还原数据库名和还原数据表名;
若目标单机数据库中与还原数据库名对应的数据库中存在还原数据表名的数据表,则将目标单机数据库对应的回收数据库中与待还原数据表名对应的数据表重命名为更新还原数据表名,并还原至目标单机数据库中与还原数据库名对应的数据库中;
若目标单机数据库中与还原数据库名对应的数据库中不存在还原数据表名的数据表,则将目标单机数据库对应的回收数据库中与待还原数据表名对应的数据表重命名为还原数据表名,并还原至目标单机数据库中与还原数据库名对应的数据库中;
删除回收记录表中的目标回收记录。
可选的,数据还原装置,还包括:还原同步模块,用于:
在将数据还原指令发送至各目标单机数据库,以使各目标单机数据库根据数据还原指令由对应的回收记录表中确定目标回收记录,并根据目标回收记录进行数据还原之时,针对每个目标单机数据库,根据数据还原指令生成归档日志;
将归档日志发送至与目标单机数据库对应的单机数据备库,以使单机数据备库根据归档日志进行与目标单机数据库相同的数据还原操作;
其中,目标单机数据库和各单机数据备库具有数据一致性。
本发明实施例提供的数据还原装置可执行本发明任意实施例所提供的数据还原方法,具备执行相应方法的功能模块和有益效果。
实施例七
图11为本发明实施例七提供的一种电子设备的结构示意图。电子设备80旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图11所示,电子设备80包括至少一个处理器81,以及与至少一个处理器81通信连接的存储器,如只读存储器(ROM)82、随机访问存储器(RAM)83等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器81可以根据存储在只读存储器(ROM)82中的计算机程序或者从存储单元88加载到随机访问存储器(RAM)83中的计算机程序,来执行各种适当的动作和处理。在RAM 83中,还可存储电子设备80操作所需的各种程序和数据。处理器81、ROM 82以及RAM 83通过总线84彼此相连。输入/输出(I/O)接口85也连接至总线84。
电子设备80中的多个部件连接至I/O接口85,包括:输入单元86,例如键盘、鼠标等;输出单元87,例如各种类型的显示器、扬声器等;存储单元88,例如磁盘、光盘等;以及通信单元89,例如网卡、调制解调器、无线通信收发机等。通信单元89允许电子设备80通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器81可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器81的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器81执行上文所描述的各个方法和处理,例如数据回收方法和数据还原方法。
在一些实施例中,数据回收方法和数据还原方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元88。在一些实施例中,计算机程序的部分或者全部可以经由ROM 82和/或通信单元89而被载入和/或安装到电子设备80上。当计算机程序加载到RAM 83并由处理器81执行时,可以执行上文描述的数据回收方法和数据还原方法的一个或多个步骤。备选地,在其他实施例中,处理器81可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据回收方法和数据还原方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (30)

1.一种数据回收方法,其特征在于,包括:
在接收到数据回收指令时,根据所述数据回收指令确定待回收数据定义信息;其中,所述待回收数据定义信息中至少包括待回收数据元数据信息;
获取回收状态信息,根据所述数据回收指令、所述回收状态信息和所述待回收数据元数据信息生成重构数据回收指令;
根据所述待回收数据定义信息确定至少一个目标单机数据库,并将所述重构数据回收指令发送至各所述目标单机数据库,以使各所述目标单机数据库根据所述重构数据回收指令进行数据回收。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据回收指令、所述回收状态信息和所述待回收数据元数据信息生成重构数据回收指令,包括:
根据所述数据回收指令确定待回收数据名,并根据所述待回收数据名生成对应的回收数据名;
根据所述回收状态信息、所述回收数据名和所述待回收数据元数据信息构造待回收数据注释信息;
将所述待回收数据注释信息添加至所述数据回收指令中,生成重构数据回收指令。
3.根据权利要求1所述的方法,其特征在于,所述根据所述待回收数据定义信息确定至少一个目标单机数据库,包括:
若所述数据回收指令为数据库回收指令,则将分布式数据库中所有单机数据库确定为目标单机数据库;
若所述数据回收指令为数据表回收指令,则根据所述待回收数据定义信息中的待回收数据表类型确定至少一个目标单机数据库。
4.根据权利要求3所述的方法,其特征在于,所述根据所述待回收数据定义信息中的待回收数据表类型确定至少一个目标单机数据库,包括:
若所述待回收数据表类型为单库表类型,则根据所述待回收数据定义信息中的待回收数据名确定目标单机数据库;
若所述待回收数据表类型为跨库表类型或复制表类型,则将分布式数据库中所有单机数据库确定为目标单机数据库。
5.根据权利要求3所述的方法,其特征在于,在所述重构数据回收指令为与所述数据库回收指令对应的重构数据库回收指令时,
所述将所述重构数据回收指令发送至各所述目标单机数据库,以使各所述目标单机数据库根据所述重构数据回收指令进行数据回收,包括:
将所述重构数据库回收指令发送至所述目标单机数据库中,并对所述重构数据库回收指令进行解析,确定待回收数据名、回收状态信息、回收数据名、回收数据类型和待回收数据元数据信息;
若所述回收状态信息中的回收变量为开,则将根据所述待回收数据名、所述回收状态信息、所述回收数据名、所述回收数据类型和所述待回收元数据信息构建数据库回收记录写入所述目标单机数据库对应的回收记录表中,确定所述数据库回收记录在所述回收记录表中的记录标识,并对所述目标单机数据库中与所述待回收数据名对应的各数据表进行回收操作;
若所述回收状态信息中的回收变量为关,则对所述目标单机数据库中与所述待回收数据名对应的各数据表进行删除操作;
删除所述待回收数据名对应的数据目录。
6.根据权利要求5所述的方法,其特征在于,所述对所述目标单机数据库中与所述待回收数据名对应的各数据表进行回收操作,包括:
针对所述目标单机数据库中与所述待回收数据名对应的每个数据表,生成与所述数据表对应的单库回收数据表名;
将所述数据表移动至与所述目标单机数据库对应的回收数据库,并将所述回收数据库中的数据表重命名为所述单库回收数据表名;其中,所述回收数据库中的数据表的私有属性包括所述数据表的原始数据表名和原始库名;
根据所述单库回收数据表名、所述待回收数据名对应的记录标识以及所述数据表的对象类型构建回收子对象记录,并将所述回收子对象记录写入所述目标单机数据库对应的回收子对象记录表中;
其中,所述单库回收数据表名与所述目标单机数据库唯一对应。
7.根据权利要求3所述的方法,其特征在于,在所述重构数据回收指令为与所述数据表回收指令对应的重构数据表回收指令时,
将所述重构数据回收指令发送至各所述目标单机数据库,以使各所述目标单机数据库根据所述重构数据回收指令进行数据回收,包括:
将所述重构数据表回收指令发送至所述目标单机数据库中,并对所述重构数据表回收指令进行解析,确定数据表回收操作类型、待回收数据名、回收状态信息、回收数据名、回收数据类型和待回收数据元数据信息;
若所述回收状态信息中的回收变量为开,则根据所述待回收数据名对所述目标单机数据库中对应的待回收数据表执行与所述数据表回收操作类型对应的回收操作,并将根据所述待回收数据名、所述回收状态信息、所述回收数据名、所述回收数据类型和所述待回收数据元数据信息构建的数据表回收记录写入所述目标单机数据库对应的回收记录表中;
若所述回收状态信息中的回收变量为关,则根据所述待回收数据名对所述目标单机数据库中对应的待回收数据表执行与所述数据表回收操作类型对应的删除操作。
8.根据权利要求7所述的方法,其特征在于,所述根据所述待回收数据名对所述目标单机数据库中对应的待回收数据表执行与所述数据表回收操作类型对应的回收操作,包括:
若所述数据表回收操作类型为删表类型,则将所述待回收数据名对应的待回收数据表移动至所述目标单机数据库对应的回收数据库,并将所述回收数据库中的数据表重命名为所述回收数据名;
若所述数据表回收操作类型为清表类型,则将所述待回收数据名对应的待回收数据表移动至所述目标单机数据库对应的回收数据库,将所述回收数据库中的数据表重命名为所述回收数据名,并在所述目标单机数据库中重建一个表名为所述待回收数据名的数据表。
9.根据权利要求1-8中任一项所述的方法,其特征在于,在所述将所述重构数据回收指令发送至各所述目标单机数据库,以使所述目标单机数据库根据所述重构数据回收指令进行数据回收之时,还包括:
针对每个所述目标单机数据库,根据所述重构数据回收指令生成归档日志;
将所述归档日志发送至与所述目标单机数据库对应的单机数据备库,以使所述单机数据备库根据所述归档日志进行与所述目标单机数据库相同的数据回收操作;
其中,所述目标单机数据库和各所述单机数据备库具有数据一致性。
10.根据权利要求1-8中任一项所述的方法,其特征在于,在所述将所述重构数据回收指令发送至各所述目标单机数据库,以使所述目标单机数据库根据所述重构数据回收指令进行数据回收之后,还包括:
删除所述待回收数据定义信息。
11.根据权利要求5-8中任一项所述的方法,其特征在于,所述方法还包括:
在接收到回收数据查询指令时,根据所述回收数据查询指令对所述回收记录表进行查询,确定目标回收记录;
将所述目标回收记录中的待回收数据名、回收数据名、回收数据类型和回收状态信息以预设查询展示形式进行展示。
12.根据权利要求5-8中任一项所述的方法,其特征在于,所述方法还包括:
在接收到数据清理指令时,根据所述数据清理指令依次对各所述单机数据库对应的回收记录表进行匹配,将第一个匹配的回收记录确定为清理索引回收记录;
根据所述清理索引回收记录确定至少一个待清理单机数据库,并将所述数据清理指令发送至各所述待清理单机数据库,以使各所述待清理单机数据库根据所述数据清理指令由对应的回收数据库中,对所述数据清理指令对应数据进行删除。
13.根据权利要求12所述的方法,其特征在于,所述根据所述数据清理指令依次对各所述单机数据库对应的回收记录表进行匹配,将第一个匹配的回收记录确定为清理索引回收记录,包括:
根据所述数据清理指令确定待清理数据名;
将所述待清理数据名依次与各所述单机数据库对应的回收记录表中的回收数据名进行匹配;
将第一个匹配成功的回收数据名对应的回收记录确定为清理索引回收记录。
14.根据权利要求12所述的方法,其特征在于,所述根据所述清理索引回收记录确定至少一个待清理单机数据库,包括:
若所述数据清理指令为数据库清理指令,则将分布式数据库中所有单机数据库确定为待清理单机数据库;
若所述数据清理指令为数据表清理指令,则根据所述清理索引回收记录确定待清理数据表类型,并根据所述待清理数据表类型确定至少一个待清理单机数据库。
15.根据权利要求14所述的方法,其特征在于,所述根据所述待清理数据表类型确定至少一个待清理单机数据库,包括:
若所述待清理数据表类型为单库表类型,则将所述清理索引回收记录对应的单机数据库确定为待清理单机数据库;
若所述待清理数据表类型为跨库表类型或复制表类型,则将分布式数据库中所有单机数据库确定为待清理单机数据库。
16.根据权利要求14所述的方法,其特征在于,在所述数据清理指令为数据库清理指令时,所述将所述数据清理指令发送至各所述待清理单机数据库,以使各所述待清理单机数据库根据所述数据清理指令由对应的回收数据库中,对所述数据清理指令对应数据进行删除,包括:
针对每个所述待清理单机数据库,将所述数据库清理指令发送至所述待清理单机数据库中,并根据所述数据库清理指令确定待清理数据名;
根据所述待清理数据名在所述待清理单机数据库对应的回收记录表中确定待清理回收记录,以及所述待清理回收记录在所述回收记录表中的记录标识;
根据所述记录标识在所述待清理单机数据库对应的回收子对象记录表中确定至少一个单库回收数据表名;
针对每个所述单库回收数据表名,由所述待清理单机数据库对应的回收数据库中,删除与所述单库回收数据表名对应的数据;
删除所述回收子对象记录表中与各所述单库回收数据表名对应的回收子对象记录,以及所述回收记录表中的所述待清理回收记录;
根据所述数据库清理指令生成清理归档日志,并将所述清理归档日志发送至与所述待清理单机数据库对应的单机数据备库,以使所述单机数据备库根据所述清理归档日志进行与所述待清理单机数据库相同的数据删除操作。
17.根据权利要求14所述的方法,其特征在于,在所述数据清理指令为数据表清理指令时,所述将所述数据清理指令发送至各所述待清理单机数据库,以使各所述待清理单机数据库根据所述数据清理指令由对应的回收数据库中,对所述数据清理指令对应数据进行删除,包括:
针对每个所述待清理单机数据库,将所述数据表清理指令发送至所述待清理单机数据库中,并根据所述数据表清理指令确定待清理数据名;
根据所述待清理数据名在所述待清理单机数据库对应的回收记录表中确定待清理回收记录;
由所述待清理数据库对应的回收数据库中,删除与所述待清理回收记录对应的数据;
删除所述回收记录表中的所述待清理回收记录;
根据所述数据表清理指令生成清理归档日志,并将所述清理归档日志发送至与所述待清理单机数据库对应的单机数据备库,以使所述单机数据备库根据所述清理归档日志进行与所述待清理单机数据库相同的数据删除操作。
18.一种数据还原方法,其特征在于,包括:
在接收到数据还原指令时,根据所述数据还原指令依次对各单机数据库对应的回收记录表进行匹配,将第一个匹配的回收记录确定为索引回收记录;
根据所述索引回收记录确定至少一个目标单机数据库,并将所述数据还原指令发送至各所述目标单机数据库,以使各所述目标单机数据库根据所述数据还原指令由对应的回收记录表中确定目标回收记录,并根据所述目标回收记录进行数据还原;
根据所述索引回收记录中的待还原数据元数据信息创建还原数据定义信息;
其中,所述回收记录表中包括至少一条回收记录,所述回收记录中至少包括对应待还原数据的待还原数据元数据信息。
19.根据权利要求18所述的方法,其特征在于,所述根据所述数据还原指令依次对各单机数据库对应的回收记录表进行匹配,将第一个匹配的回收记录确定为索引回收记录,包括:
根据所述数据还原指令确定待还原数据名;
将所述待还原数据名依次与各单机数据库对应的回收记录表中的回收数据名进行匹配;
将第一个匹配成功的回收数据名对应的回收记录确定为索引回收记录。
20.根据权利要求18所述的方法,其特征在于,所述根据所述索引回收记录确定至少一个目标单机数据库,包括:
若所述数据还原指令为数据库还原指令,则将分布式数据库中所有单机数据库确定为目标单机数据库;
若所述数据还原指令为删表还原指令或清表还原指令,则根据所述索引回收记录确定待还原数据表类型,并根据所述待还原数据表类型确定至少一个目标单机数据库。
21.根据权利要求20所述的方法,其特征在于,所述根据所述待还原数据表类型确定至少一个目标单机数据库,包括:
若所述待还原数据表类型为单库表类型,则将所述索引回收记录对应的单机数据库确定为目标单机数据库;
若所述待还原数据表类型为跨库表类型或复制表类型,则将分布式数据库中所有单机数据库确定为目标单机数据库。
22.根据权利要求20所述的方法,其特征在于,在所述数据还原指令为数据库还原指令时,
所述将所述数据还原指令发送至各所述目标单机数据库,以使各所述目标单机数据库根据所述数据还原指令由对应的回收记录表中确定目标回收记录,并根据所述目标回收记录进行数据还原,包括:
针对每个所述目标单机数据库,将所述数据库还原指令发送至所述目标单机数据库中,并根据所述数据库还原指令确定待还原数据名;
根据所述待还原数据名在所述目标单机数据库对应的回收记录表中确定目标回收记录;
确定所述目标回收记录在所述回收记录表中的记录标识,并对所述目标回收记录进行解析,确定还原数据名;
根据所述还原数据名在所述目标单机数据库中创建数据目录,并根据所述记录标识将与所述待还原数据名对应的各待还原数据表还原至所述数据目录中;
删除所述回收记录表中的所述目标回收记录。
23.根据权利要求22所述的方法,其特征在于,所述根据所述记录标识将与所述待还原数据名对应的各待还原数据表还原至所述数据目录中,包括:
根据所述记录标识在所述目标单机数据库对应的回收子对象记录表中确定至少一个单库回收数据表名;
针对每个所述单库回收数据表名,将所述目标单机数据库对应的回收数据库中,与所述单库回收数据表名对应的数据表确定为待还原数据表;
确定所述待还原数据表对应私有属性中的原始数据表名和原始库名;其中,所述原始库名与所述还原数据名相同;
根据所述原始数据表名和所述原始库名,将所述待还原数据表以所述原始数据表名还原至所述数据目录中;
删除所述回收子对象记录表中与所述单库回收数据表名对应的回收子对象记录。
24.根据权利要求20所述的方法,其特征在于,在所述数据还原指令为删表还原指令时,
所述将所述数据还原指令发送至各所述目标单机数据库,以使各所述目标单机数据库根据所述数据还原指令由对应的回收记录表中确定目标回收记录,并根据所述目标回收记录进行数据还原,包括:
针对每个所述目标单机数据库,将所述删表还原指令发送至所述目标单机数据库中,并根据所述删表还原指令确定待还原数据名;
根据所述待还原数据名在所述目标单机数据库对应的回收记录表中确定目标回收记录;
对所述目标回收记录进行解析,确定还原数据库名和还原数据表名;
根据所述还原数据表名,将所述目标单机数据库对应的回收数据库中与所述待还原数据表名对应的数据表,还原至所述目标单机数据库中与所述还原数据库名对应的数据库中;
删除所述回收记录表中的所述目标回收记录。
25.根据权利要求20所述的方法,其特征在于,在所述数据还原指令为清表还原指令时,
所述将所述数据还原指令发送至各所述目标单机数据库,以使各所述目标单机数据库根据所述数据还原指令由对应的回收记录表中确定目标回收记录,并根据所述目标回收记录进行数据还原,包括:
针对每个所述目标单机数据库,将所述清表还原指令发送至所述目标单机数据库中,并根据所述清表还原指令确定待还原数据名和更新还原数据表名;
根据所述待还原数据名在所述目标单机数据库对应的回收记录表中确定目标回收记录;
对所述目标回收记录进行解析,确定还原数据库名和还原数据表名;
若所述目标单机数据库中与所述还原数据库名对应的数据库中存在所述还原数据表名的数据表,则将所述目标单机数据库对应的回收数据库中与所述待还原数据表名对应的数据表重命名为所述更新还原数据表名,并还原至所述目标单机数据库中与所述还原数据库名对应的数据库中;
若所述目标单机数据库中与所述还原数据库名对应的数据库中不存在所述还原数据表名的数据表,则将所述目标单机数据库对应的回收数据库中与所述待还原数据表名对应的数据表重命名为所述还原数据表名,并还原至所述目标单机数据库中与所述还原数据库名对应的数据库中;
删除所述回收记录表中的所述目标回收记录。
26.根据权利要求18-25中任一项所述的方法,其特征在于,在所述将所述数据还原指令发送至各所述目标单机数据库,以使各所述目标单机数据库根据所述数据还原指令由对应的回收记录表中确定目标回收记录,并根据所述目标回收记录进行数据还原之时,还包括:
针对每个所述目标单机数据库,根据所述数据还原指令生成归档日志;
将所述归档日志发送至与所述目标单机数据库对应的单机数据备库,以使所述单机数据备库根据所述归档日志进行与所述目标单机数据库相同的数据还原操作;
其中,所述目标单机数据库和各所述单机数据备库具有数据一致性。
27.一种数据回收装置,其特征在于,包括:
回收定义确定模块,用于在接收到数据回收指令时,根据所述数据回收指令确定待回收数据定义信息;其中,所述待回收数据定义信息中至少包括待回收数据元数据信息;
重构指令生成模块,用于获取回收状态信息,根据所述数据回收指令、所述回收状态信息和所述待回收数据元数据信息生成重构数据回收指令;
数据回收模块,用于根据所述待回收数据定义信息确定至少一个目标单机数据库,并将所述重构数据回收指令发送至各所述目标单机数据库,以使各所述目标单机数据库根据所述重构数据回收指令进行数据回收。
28.一种数据还原装置,其特征在于,包括:
索引记录确定模块,用于在接收到数据还原指令时,根据所述数据还原指令依次对各单机数据库对应的回收记录表进行匹配,将第一个匹配的回收记录确定为索引回收记录;
数据还原模块,用于根据所述索引回收记录确定至少一个目标单机数据库,并将所述数据还原指令发送至各所述目标单机数据库,以使各所述目标单机数据库根据所述数据还原指令由对应的回收记录表中确定目标回收记录,并根据所述目标回收记录进行数据还原;
数据定义还原模块,用于根据所述索引回收记录中的待还原数据元数据信息创建还原数据定义信息;
其中,所述回收记录表中包括至少一条回收记录,所述回收记录中至少包括对应待还原数据的待还原数据元数据信息。
29.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-17任一项所述的数据回收方法或权利要求18-26任一项所述的数据还原方法。
30.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-17任一项所述的数据回收方法或权利要求18-26任一项所述的数据还原方法。
CN202311624336.0A 2023-11-29 2023-11-29 数据回收方法、数据还原方法、装置、设备及存储介质 Pending CN117609209A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311624336.0A CN117609209A (zh) 2023-11-29 2023-11-29 数据回收方法、数据还原方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311624336.0A CN117609209A (zh) 2023-11-29 2023-11-29 数据回收方法、数据还原方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN117609209A true CN117609209A (zh) 2024-02-27

Family

ID=89945924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311624336.0A Pending CN117609209A (zh) 2023-11-29 2023-11-29 数据回收方法、数据还原方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117609209A (zh)

Similar Documents

Publication Publication Date Title
JP2022141957A (ja) メタデータのスナップショット方法及びそのスナップ装置
EP3026582B1 (en) Transaction control block for multiversion concurrency commit status
CN108920698B (zh) 一种数据同步方法、装置、系统、介质及电子设备
JP5652228B2 (ja) データベースサーバ装置、データベース更新方法及びデータベース更新プログラム
CN111651519B (zh) 数据同步方法、数据同步装置、电子设备及存储介质
US11132376B2 (en) System and method for management of a database system
US20230012642A1 (en) Method and device for snapshotting metadata, and storage medium
CN110597797A (zh) 表空间碎片回收方法、装置、电子设备及存储介质
CN114925073A (zh) 支持灵活动态分片的分布式数据库架构及其实现方法
CN117609209A (zh) 数据回收方法、数据还原方法、装置、设备及存储介质
CN116028517A (zh) 一种融合数据库系统及电子设备
CN115543918A (zh) 一种文件快照方法、系统、电子设备及存储介质
CN115640280A (zh) 数据迁移方法及装置
CN114817223A (zh) 业务数据提取方法、装置、电子设备和存储介质
US11113311B2 (en) Technology agnostic system and method for achieving eventually-consistent data replication
CN112685431B (zh) 异步缓存方法、装置、系统、电子设备和存储介质
CN115629910B (zh) 一种事务恢复方法、装置、数据库节点及介质
CN111258814B (zh) 一种数据库备份容错方法、系统、终端及存储介质
CN115421979A (zh) 一种日志文件的断点确定方法、装置、设备及存储介质
CN117520055A (zh) 一种基于数据集群的数据恢复方法、装置、设备和介质
CN114996734A (zh) 半透明加密列的数据管理方法、装置、设备及存储介质
CN115687282A (zh) 一种文件同步方法、装置、电子设备及存储介质
CN112685431A (zh) 异步缓存方法、装置、系统、电子设备和存储介质
CN115454725A (zh) 数据库备份方法、装置、电子设备和存储介质
CN114706832A (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