数据库中数据的恢复方法及装置的制造方法

文档序号:9910876阅读:553来源:国知局
数据库中数据的恢复方法及装置的制造方法
【技术领域】
[0001]本发明涉及数据库存储技术领域,具体涉及一种数据库中数据的恢复方法及装置。
【背景技术】
[0002]数据库备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。尤其在一些对数据可靠性要求很高的行业如银行、证券、电信等,如果发生意外停机或数据丢失其损失会十分惨重。为此数据库管理员应针对具体的业务要求制定详细的数据库备份与灾难恢复策略,并通过模拟故障对每种可能的情况进行严格测试,只有这样才能保证数据的高可用性。数据库的备份是一个长期的过程,而恢复只在发生事故后进行,恢复可以看作是备份的逆过程,恢复的程度的好坏很大程度上依赖于备份的情况。此外,数据库管理员在恢复时采取的步骤正确与否也直接影响最终的恢复结果。
[0003]分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表,每个表都对应三个文件,分别为数据文件,索引文件,表结构文件。这些表可以分布在同一块磁盘上,也可以在不同的机器上。读写的时候根据事先定义好的规则得到对应的子表名,然后去操作它。
[0004]对于Mysql数据库的备份来说,是将多个表看成是一个整体,备份时将这些表进行整体备份。具体是,将这些表备份成一个压缩文件,在该压缩文件未进行恢复前无法区分各个表的数据。如果因为误操作将某个表(如Tn)中的一条数据删除而需要利用备份数据进行恢复时,现有技术需要将用于存储备份数据的存储机上的整个压缩文件(包含全量数据)拷贝到另一台机器上,然后在该台机器上对压缩文件进行解压缩、解密和恢复处理,在恢复得到数据库可识别的数据之后,启动查找表Tn,再查找对应的数据,将数据灌入到数据库中。
[0005]现有技术的数据恢复需要经历全量数据的拷贝、解压、解密和恢复,以及后续的启动程序处理。为了恢复一条数据,需要操作全量数据,操作复杂且十分耗时,恢复效率极低。

【发明内容】

[0006]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据库中数据的恢复方法及装置。
[0007]根据本发明的一个方面,提供了一种数据库中数据的恢复方法,用于基于所述数据库的备份文件对所述数据库中的数据进行恢复,所述方法包括:
[0008]获取待恢复的数据所属的表的标识;
[0009]根据所述表的标识,从备份文件中拷贝所述公共元数据压缩文件以及该表对应的压缩文件;
[0010]对所述公共元数据压缩文件以及该表对应的压缩文件进行解压缩处理,得到公共元数据文件和表文件;[0011 ]读取所述公共元数据文件和所述表文件,查找到待恢复的数据对应的备份数据,将所述备份数据存储到数据库中。
[0012]根据本发明的另一方面,提供了一种数据库中数据的恢复装置,用于基于所述数据库的备份文件对所述数据库中的数据进行恢复,所述装置包括:
[0013]获取模块,适于获取待恢复的数据所属的表的标识;
[0014]拷贝模块,适于根据所述表的标识,从备份文件中拷贝所述公共元数据压缩文件以及该表对应的压缩文件;
[0015]解压缩处理模块,适于对所述公共元数据压缩文件以及该表对应的压缩文件进行解压缩处理,得到公共元数据文件和表文件;
[0016]恢复模块,适于读取所述公共元数据文件和所述表文件,查找到待恢复的数据对应的备份数据,将所述备份数据存储到数据库中。
[0017]根据本发明提供的数据库中数据的恢复方法及装置,对于待恢复的数据,获取其所属的表的标识;根据表的标识,从备份文件中拷贝公共元数据压缩文件以及该表对应的压缩文件;对公共元数据压缩文件以及该表对应的压缩文件进行解压缩处理,得到公共元数据文件和表文件;读取公共元数据文件和表文件,查找到待恢复的数据对应的备份数据,将备份数据存储到数据库中。与现有技术相比,本发明无需对全量数据进行拷贝和解压缩,仅处理一张表的压缩文件和公共元数据压缩文件即可,处理的数据量大大减小,对应的处理时间也大大缩短,因此提高了数据恢复的效率。
[0018]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0019]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0020]图1示出了根据本发明一个实施例的数据库中数据的恢复方法的流程示意图;
[0021]图2示出了根据本发明一个实施例的数据库中数据的恢复装置的功能框图。
【具体实施方式】
[0022]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0023]图1示出了根据本发明一个实施例的数据库中数据的恢复方法的流程示意图。该方法用于基于数据库的备份文件对数据库中的数据进行恢复,如图1所示,该方法包括如下步骤:
[0024]步骤SlOl,获取待恢复的数据所属的表的标识。
[0025]本实施例以支持分表技术的Mysql数据库为例进行说明,但本发明提供的方案不仅限于应用在Mysql数据库中,还可应用于其他同类型的数据库中。
[0026]本发明与现有技术的一个区别在于,数据库备份操作是以表为单位进行,将数据库中的每个表进行备份得到一个表数据文件以及该表的元数据文件,如表结构文件和表索引文件等等,经过加密和压缩处理后最终得到的备份文件包括每个表对应的压缩文件。本发明中,可以对每个表的表数据文件、表结构文件、表索引文件以及一些辅助文件整体压缩形成的一个单独的文件,作为这个表对应的压缩文件;也可以是对每个表的各个文件分别进行压缩得到表数据压缩文件、表结构压缩文件和表索引压缩文件,还可包括一些其它的辅助文件,这些文件组合形成这个表对应的压缩文件。
[0027]除此之外,备份文件还包括公共元数据压缩文件,该公共元数据压缩文件用于记录Mysql数据库的所有表的公共元数据,如数据库实例大小、表数量、每张表的数据量大小以及包含的索引信息等全局属性信息。
[0028]例如,设Mysql数据库共有η个表,分别为Tl、Τ2、…、Tn,经过数据库备份操作后得到的备份文件包括Tl对应的压缩文件(可选包含表数据压缩文件、表结构压缩文件、表索引压缩文件以及其它辅助文件)、Τ2对应的压缩文件、…、Tn对应的压缩文件。各个表的压缩文件彼此是独立的,根据表的标识可查找到这个表的压缩文件。
[0029]如果因为误操作将某个表中的一条数据删除,在进行数据恢复时,首先获取待恢复的数据所属的表的标识。
[0030]步骤S102,根据表的标识,从备份文件中拷贝公共元数据压缩文件以及该表对应的压缩文件。
[0031]如果需要恢复Tl这张表中的某一条数据,则从备份文件中拷贝公共元数据压缩文件和Tl对应的压缩文件,Tl对应的压缩文件包括Tl的表数据压缩文件、表结构压缩文件、表索引压缩文件以及其它辅助文件。具体地,在实际数据恢复时,将用于存储备份文件的存储机上的上述公共元数据压缩文件和Tl对应的压缩文件拷贝到另一台机器上,在另一台机器中实现数据恢复。
[0032]与现有技术相比,本步骤无需拷贝全量数据的压缩文件,仅拷贝一张表
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1