一种通过使用日志恢复数据库数据的方法及设备的制作方法

文档序号:6489372阅读:227来源:国知局
一种通过使用日志恢复数据库数据的方法及设备的制作方法
【专利摘要】本申请涉及一种通过使用日志对数据库数据进行恢复的方法和设备,其将分布并运行在一台或多台服务器上的应用程序中的业务数据实时地以预定格式转换成日志数据;接收所述日志数据并存储于一个或多个灾备日志文件中;将预定时间段内的灾备日志文件中的日志数据解析为具备数据库格式的数据作为解析得到的数据;将解析得到的数据依据预定规则进行重建以获得重建的业务数据;以及将重建的业务数据更新到备用数据库。由于日志转换和接收是实时的,所以在数据库损坏时,可对数据库定期备份机制在最后一次备份时间点后丢失的数据进行恢复。
【专利说明】一种通过使用日志恢复数据库数据的方法及设备
【技术领域】
[0001]本申请一般涉及数据处理领域,尤其涉及一种数据的存储、处理和恢复的方法和设备。
【背景技术】
[0002]对于涉及数据的系统来说,对数据的妥善保存是必不可少的。例如淘宝网系统对其用户的购物信息的保存,支付宝系统对用户账户信息的保存等等,这些数据通常保存在数据库中,然而,当数据库损坏时,就会造成数据的损失。
[0003]目前,一般会采用数据库定期备份机制对数据库进行备份避免数据库损坏造成的损失。这种机制通常会包括主数据库和备用数据库,主数据库存储实时的完整的数据,数据库备份程序及设备每隔一段设定的时间间隔将主数据库的数据备份到备用数据库,当主数据库损坏时,系统就可以使用备用数据库。两个数据库通常具有相同的完备的数据格式和结构,所以可以很直接地从主数据库切换使用备用数据库中的数据。
[0004]然而,备份的时间间隔通常为几分钟、几小时,所以这种备份动作不是实时发生的,(作为特别情形,也可以将时间间隔设定为极短的时间以实现实时备份,但这样会消耗大量系统资源,所以通常不采用这种方式。)所以,当主数据库损坏的情形下,从数据库备份程序及设备最后一次进行备份的时间点到主数据库损坏的时间点期间的数据没有被备份到备用数据库,该部分数据丢失了,这是这种数据库定期备份机制存在的问题。

【发明内容】

[0005]本申请的主要目的在于提供一种通过使用日志恢复数据库数据的方法及设备,以解决现有技术存在的数据库定期备份机制中从数据库备份程序最后一次进行备份的时间点到主数据库损坏的时间点期间的数据丢失问题,其中:
[0006]根据本申请的一个方面,提供一种对数据库数据进行恢复的方法,包括以下步骤:将分布并运行在一台或多台服务器上的应用程序中的业务数据实时地以预定格式转换成日志数据;接收所述日志数据并存储于一个或多个灾备日志文件中;将预定时间段内的灾备日志文件中的日志数据解析为具备数据库格式的数据作为解析得到的数据;将解析得到的数据依据预定规则进行重建以获得重建的业务数据;以及将重建的业务数据更新到备用数据库。
[0007]根据本申请【具体实施方式】的方法,还包括,具备数据库格式的数据的每一个具有唯一标识符,并且其中,所述解析步骤还包括:将所述具备数据库格式的数据和备用数据库的数据进行比对,将唯一标识符不同的具备数据库格式的数据作为解析得到的数据。
[0008]根据本申请【具体实施方式】的方法,解析步骤还包括,将解析得到的数据存储到灾备临时数据库。
[0009]根据本申请【具体实施方式】的方法,重建步骤还包括,将灾备临时数据库中的数据与备用数据库的数据进行比对,将灾备临时数据库中无误的数据标记为重建的业务数据;将灾备临时数据库中有误的数据标记为未重建的业务数据。
[0010]根据本申请【具体实施方式】的方法,还包括,所述解析步骤在多台服务器中并行地进行,并且其中,所述重建步骤在单台服务器中进行。
[0011]根据本申请【具体实施方式】的方法,还包括,所述一个或多个灾备日志文件位于应用程序的一台或多台本地服务器或者一台或多台远程灾备服务器中。
[0012]根据本申请【具体实施方式】的方法,还包括,所述预定时间段的开始时间早于或等于数据库最后一次备份到备用数据库的时间点,并且所述预定时间段的结束时间晚于或等于数据库发生故障的时间点。
[0013]根据本申请【具体实施方式】的方法,还包括,业务数据中的每一业务数据具有时间标识符,并且重建步骤还包括按照所述时间标识符对解析得到的数据进行排序。
[0014]根据本申请【具体实施方式】的方法,还包括,将重建的业务数据更新到备用数据库过程中,当备用数据库的部分数据被修改的情形下,对修改前的该部分数据进行备份。
[0015]根据本申请的一个方面,提供一种对数据库数据进行恢复的设备,包括:日志转换模块,其将分布并运行在一台或多台服务器上的应用程序中的业务数据实时地以预定格式转换成日志数据;日志接收模块,其接收日志转换模块输出的日志数据并存储于一个或多个灾备日志文件中;日志解析模块,其将设定时间段内的灾备日志文件中的日志数据解析为具备数据库格式的数据作为解析得到的数据;重建业务数据模块,其将日志解析模块解析得到的数据依据预定规则进行重建以获得重建的业务数据;以及更新业务数据模块,其将重建业务数据模块重建的业务数据更新到备用数据库。
[0016]在根据本申请实施例的设备中,具备数据库格式的数据的每一个具有唯一标识符,并且其中,日志解析模块包括第一比对模块,被配置成将所述具备数据库格式的数据和备用数据库的数据进行比对,将唯一标识符不同的具备数据库格式的数据作为解析得到的数据。
[0017]在根据本申请实施例的设备中,日志解析模块被配置成将解析得到的数据存储到灾备临时数据库。
[0018]在根据本申请实施例的设备中,重建业务数据模块包括,第二比对模块,被配置成将灾备临时数据库中的数据与备用数据库的数据进行比对,将灾备临时数据库中无误的数据标记为重建的业务数据;对灾备临时数据库中有误的数据标记为未重建的业务数据。
[0019]在根据本申请实施例的设备中,日志解析模块并行地工作于多台服务器,并且其中,重建业务数据模块工作于单台服务器中。
[0020]在根据本申请实施例的设备中,还包括,所述预定时间段的开始时间早于或等于数据库最后一次备份到备用数据库的时间点,并且所述预定时间段的结束时间晚于或等于数据库发生故障的时间点。
[0021]在根据本申请实施例的设备中,业务数据中的每一业务数据具有时间标识符,并且重建业务数据模块还被配置成按照所述时间标识符对解析得到的数据进行排序。
[0022]在根据本申请实施例的设备中,更新业务数据模块被配置成当备用数据库的部分数据被修改的情形下,对修改前的该部分数据进行备份。
[0023]与现有技术相比,根据本申请的技术方案,可在应用程序运行时将业务数据实时地以预定格式转换成日志数据并输出到灾备日志文件中,在数据库损坏时,可将灾备日志文件的数据解析为具备数据库格式的数据,经过重建,更新到备用数据库。由于本方法是在应用程序运行中实时进行的,即从数据库备份程序及设备最后一次进行备份的时间点到主数据库损坏的时间点本方法也在进行,其最终结果可以恢复从数据库备份程序及设备最后一次进行备份的时间点到主数据库损坏的时间点期间的业务数据。
【专利附图】

【附图说明】
[0024]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0025]图1是可以实施本申请实施例的系统整体结构示意图。
[0026]图2是根据本申请实施例的模块工作原理图。
[0027]图3是可以实施本申请的方法流程图。
【具体实施方式】
[0028]本申请的主要思想在于,在应用程序运行过程中,实时地将业务数据以日志数据形式输出存储,以备在数据库丢失数据时进行恢复。日志数据形式的输出存储与数据库格式的备份不同,其占用的系统资源近乎可以忽略不计。另一方面,在主数据库损坏时,虽然备用数据库中的数据可以直接调用,而日志数据需要经过一定的处理步骤才能进行使用,但这些日志数据弥补了数据库定期备份机制所丢失的数据。
[0029]为使本申请的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本申请作进一步地详细说明。
[0030]根据本申请的实施例,提供了 一种对数据库数据进行恢复的设备。
[0031]参考图1,图1是可以实施本申请实施例的系统整体结构示意图。
[0032]服务器110上运行一个应用程序111,应用程序111实时地把数据存储到主数据库130。服务器120具有与服务器110相同的结构,也实时地把数据存储到主数据库130。主数据库130通过数据库更新程序及设备140每隔一段设定的时间间隔将主数据库130的数据备份到备用数据库150。上述系统中,服务器的数量可以不限于两台,可以是更多以组成集群,每台服务器上的应用程序可以相同或不同,并且应用程序可以是一个或多个,但应用程序会将数据以具备数据库格式的数据存储到主数据库130。另外,一个应用程序的各个部分可以分别位于不同的服务器上。
[0033]本申请的设备可以包括以下模块:日志转换模块112,日志接收模块113,日志解析模块114,重建业务数据模块115,更新业务数据模块116。备选地,上述模块可以位于服务器上,例如服务器110上。日志解析模块114可被配置成包含第一比对模块114b,重建业务数据模块可被配置成包含第二比对模块115b。备选地,模块113?116也可以不配置在服务器110上,而配置在服务器110的备机上;日志转换模块112 —般可以配置在服务器110上。在应用程序111运行时,日志转换模块112和日志接收模块113随应用程序一同实时工作,并形成灾备日志文件。在主数据库损坏时,日志解析模块114、重建业务数据模块115、更新业务数据模块116启动工作,所述模块能与灾备临时数据库160进行通讯以存储、读取、处理数据,所述模块将由灾备日志文件获得的重建的业务数据更新到备用数据库150。
[0034]下文将参考图2详细描述本申请设备的各个模块的工作原理。图2是根据本申请实施例的模块工作原理图。
[0035]应用程序111运行时,实时产生业务数据201,日志转换模块112实时将业务数据201转换为日志数据202,日志接收模块11 3将日志数据202存储到灾备日志文件203。
[0036]当主数据库发生故障时,日志解析模块114将灾备日志文件203中的设定时间段的数据解析为具备数据库格式的数据204,设定的时间段一般为数据库更新程序及设备140最后一次将主数据库130备份到备用数据库150的时间点至主数据库I 30损坏的时间点,为了确保恢复数据段的完备,也可以将设定的时间段设置为起始时间早于数据库更新程序及设备140最后一次将主数据库130备份到备用数据库150的时间点,并且(或者)结束时间晚于主数据库130损坏的时间点。根据本申请的实施例,起始时间早于最后一次备份的时间点和/或结束时间晚于主数据库损坏的时间点,具体需要早多久和/或晚多久,这例如可以按照系统需要来设定,或者例如可以在考虑成本的情况来设定。例如,数据库定期主数据库130最后一次备份到备用数据库150的时间点为12:55,主数据库损坏于12:59,则可以选择恢复以下时段的数据进行恢复:a:12:55~12:59 ;b =12:50^12:59 ;c:12:55~13:00 ;d:12:50~13:00。
[0037]实践中,上述选择的解析时间段一般长于数据实际损失的时间段,所以系统可采用唯一标识符通过比对模块排除重复的数据。系统中,具备数据库格式的数据204的每一条具有一个唯一的标示符,备用数据库的数据150的每一条也具有一个唯一标识符;日志解析模块能被配置成包含第一比对模块114b,其对具备数据库格式的数据204和备用数据库150的数据进行比对,如果存在某条唯一标识符相同的数据,说明该条数据已经存在于备用数据库150中,不用进一步处理;如果具备数据库格式的数据204的某条数据的唯一标识符没有与任何一条备用数据库150中的数据的唯一标识符相同,则说明备用数据库I 50中没有该数据,第一比对模块114b将其作为解析的到的数据205继续处理。
[0038]实践中,多台服务器运行时,会产生各自的灾备日志文件,所以日志解析模块通常也并行地运行于多台服务器,获得解析得到的数据。
[0039]本实施例中,日志解析模块114将解析得到的数据205存储在灾备临时数据库160 ;其他并行的服务器的日志解析模块也将解析得到的数据205η存储到灾备临时数据库160。
[0040]所有服务器的日志解析模块都完成上述步骤后,重建业务数据模块开始进行重建,重建步骤由选定的一台服务器上的重建业务数据模块进行处理。本实施例中,选择110服务器上的重建业务数据模块115进行重建。
[0041]重建一般依据不同的数据需求进行。本实施例中,重建业务数据模块115被配置成包含排序和数据比对功能。对时间顺序有要求的系统,可在应用程序111或日志转换模块112工作时为每条数据中加入时间标识符,重建业务数据模块可依据时间标识符对临时灾备数据库160中的解析得到的数据205进行排序。重建业务数据模块115还可被配置成具有第二比对模块115b,其对灾备临时数据库160中的数据(经过排序或没有经过排序)与备用数据库150中的相关数据进行比对,比对有误的灾备临时数据库160中的数据则标记为“未重建的业务数据”待其他方式处理;比对无误的数据标记为“重建的业务数据”。 [0042]更新业务数据模块116将重建的业务数据206更新到备用数据库150。为了确保数据的可追溯性、安全性,本实施例中,更新业务数据模块116被配置成当备用数据库I 50的部分数据被修改的情形下,对修改前的该部分数据进行备份。
[0043]下文将参考图3描述本申请方法的流程。图3是实施本申请的方法流程图。
[0044]在服务器应用程序运行时,日志转换步骤301、日志接收步骤302实时进行。
[0045]在日志转换步骤301中,将分布并运行在一台或多台服务器上的应用程序中的业务数据实时地以预定格式转换成日志数据。
[0046]在日志接收步骤302中,将接收所述日志数据并存储于一个或多个灾备日志文件中。备选地,所述一个或多个灾备日志文件可以位于应用程序的一台或多台本地服务器或者一台或多台远程灾备服务器中。
[0047]在解析步骤303中,将预定时间段内的灾备日志文件中的日志数据解析为具备数据库格式的数据作为解析得到的数据。备选地,所述预定时间段的开始时间可以早于或等于数据库最后一次备份到备用数据库的时间点,并且所述预定时间段的结束时间可以晚于或等于数据库发生故障的时间点;备选地,具备数据库格式的数据的每一个具有唯一标识符,解析步骤303可以将所述具备数据库格式的数据和备用数据库的数据进行比对,将唯一标识符不同的具备数据库格式的数据作为解析得到的数据;备选地,解析步骤303可以将解析得到的数据存储到灾备临时数据库。
[0048]在重建业务数据步骤304中,本方法将解析得到的数据依据预定规则进行重建以获得重建的业务数据。备选地,业务数据中的每一业务数据具有时间标识符,重建业务数据步骤304可以按照所述时间标识符对解析得到的数据进行排序;备选地,重建业务数据步骤304可以将灾备临时数据库中的数据与备用数据库的数据进行比对,将灾备临时数据库中无误的数据标记为重建的业务数据;将灾备临时数据库中有误的数据标记为未重建的业务数据。
[0049]备选地,步骤303可以在多台服务器中并行地进行,并且,步骤304可以在单台服务器中进行。
[0050]更新业务数据步骤305中,本方法将重建的业务数据更新到备用数据库。备选地,将重建的业务数据更新到备用数据库过程中,当备用数据库的部分数据被修改的情形下,更新业务数据步骤305可以对修改前的该部分数据进行备份。
[0051]本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0052]以上所述仅为本申请的实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
【权利要求】
1.一种对数据库数据进行恢复的方法,其特征在于包括以下步骤: 将分布并运行在一台或多台服务器上的应用程序中的业务数据实时地以预定格式转换成日志数据; 接收所述日志数据并存储于一个或多个灾备日志文件中; 将预定时间段内的灾备日志文件中的日志数据解析为具备数据库格式的数据作为解析得到的数据; 将解析得到的数据依据预定规则进行重建以获得重建的业务数据;以及 将重建的业务数据更新到备用数据库。
2.如权利要求1的方法,其中,具备数据库格式的数据的每一个具有唯一标识符,并且其中,所述解析步骤还包括:将所述具备数据库格式的数据和备用数据库的数据进行比对,将唯一标识符不同的具备数据库格式的数据作为解析得到的数据。
3.如权利要求1所述方法,其中,解析步骤包括: 将解析得到的数据存储到灾备临时数据库。
4.如权利要求3所述的方法,其中,重建步骤包括: 将灾备临时数据库中的数据与备用数据库的数据进行比对,将灾备临时数据库中无误的数据标记为重建的业务数据;将灾备临时数据库中有误的数据标记为未重建的业务数据。
5.如权利要求1至4任一项所述的方法,其中,所述解析步骤在多台服务器中并行地进行,并且其中,所述重建步骤在单台服务器中进行。
6.如权利要求1至4任一项所述的方法,其特征在于,所述一个或多个灾备日志文件位于应用程序的一台或多台本地服务器或者一台或多台远程灾备服务器中。
7.如权利要求1至4任一项所述的方法,其中,所述预定时间段的开始时间早于或等于数据库最后一次备份到备用数据库的时间点,并且所述预定时间段的结束时间晚于或等于数据库发生故障的时间点。
8.如权利要求1至4任一项所述的方法,其中,业务数据中的每一业务数据具有时间标识符,并且重建步骤还包括按照所述时间标识符对解析得到的数据进行排序。
9.如权利要求1至4任一项所述的方法,其中,将重建的业务数据更新到备用数据库过程中,当备用数据库的部分数据被修改的情形下,对修改前的该部分数据进行备份。
10.一种对数据库数据进行恢复的设备,包括: 日志转换模块,其将分布并运行在一台或多台服务器上的应用程序中的业务数据实时地以预定格式转换成日志数据; 日志接收模块,其接收日志转换模块输出的日志数据并存储于一个或多个灾备日志文件中; 日志解析模块,其将设定时间段内的灾备日志文件中的日志数据解析为具备数据库格式的数据作为解析得到的数据; 重建业务数据模块,其将解析得到的数据依据预定规则进行重建以获得重建的业务数据;以及 更新业务数据模块,其将重建业务数据模块重建的业务数据更新到备用数据库。
11.如权利要求10所述的设备,其中,具备数据库格式的数据的每一个具有唯一标识符,并且其中,日志解析模块包括第一比对模块,被配置成将所述具备数据库格式的数据和备用数据库的数据进行比对,将唯一标识符不同的具备数据库格式的数据作为解析得到的数据。
12.如权利要求10所述的设备,其中,日志解析模块被配置成将解析得到的数据存储到灾备临时数据库。
13.如权利要求12所述的设备,其中,重建业务数据模块包括: 第二比对模块,被配置成将灾备临时数据库中的数据与备用数据库的数据进行比对,将灾备临时数据库中无误的数据标记为重建的业务数据;对灾备临时数据库中有误的数据标记为未重建的业务数据。
14.如权利要求10至13任一项所述的设备,其中,日志解析模块并行地工作于多台服务器,并且其中,重建业务数据模块工作于单台服务器中。
15.如权利要求10至13任一项所述的设备,其中,所述设定时间段的开始时间早于或等于数据库最后一次备份到备用数据库的时间点,并且所述预定时间段的结束时间晚于或等于数据库发生故障的时间点。
16.如权利要求10至13任一项所述的设备,其中,业务数据中的每一业务数据具有时间标识符,并且重建业务数据模块还被配置成按照所述时间标识符对解析得到的数据进行排序。
17.如权利要求10至13任一项所述的设备,其中,更新业务数据模块被配置成当备用数据库的部分数据被修改的情形下,对修改前的该部分数据进行备份。
【文档编号】G06F17/30GK103699548SQ201210369540
【公开日】2014年4月2日 申请日期:2012年9月27日 优先权日:2012年9月27日
【发明者】李奕, 李铮 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1