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

文档序号:9326764阅读:473来源:国知局
数据库恢复方法及装置的制造方法
【技术领域】
[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] 从库异步备份模块,用于以主库操作获取模块当前获取的所述操作的完成时间为 基础,延迟预设时长后在所述从库上执行相同的操作;
[0026] 恢复判断模块,用于当所述主库出现错误时,确定导致错误的错误操作,判断所述 错误操作是否已经在所述从库上执行,如果所述错误操作尚未在所述从库上执行,则触发 数据恢复模块;
[0027] 数据恢复模块,用于使用所述从库的数据对所述主库的数据进行恢复。
[0028] 可选的,所述主库操作获取模块包括:
[0029] 顺序读取子模块,用于顺序读取记载在主库操作日志中的操作;
[0030] 备份触发子模块,用于每次获取到所述操作后,触发从库异步备份模块。
[0031] 可选的,所述从库异步备份模块包括:
[0032] 时间获取子模块,用于获取所述从库的当前时间;
[0033] 时间对比子模块,用于判断判断当前获取的所述操作的完成时间与所述当前时间 之差是否小于所述预设时长,如果小于所述预设时长,则触发时间获取子模块,如果大于或 等于所述预设时长,则在所述从库上执行与所述操作相同的操作。
[0034] 可选的,所述数据恢复模块包括:
[0035] 恢复准备子模块,用于在所述从库上执行完所述错误操作之前的操作;
[0036] 数据修复子模块,用于使用所述从库当前的数据对所述主库的数据进行修复,以 使所述主库的数据恢复到执行所述错误操作之前的状态。
[0037] 可选的,所述装置还包括:
[0038] 时长修改模块,用于根据用户的输入对所述预设时长进行修改。
[0039] 根据本公开实施例的第三方面,提供一种数据库恢复装置,所述装置用于由主库 和从库组成的数据库系统,初始时所述从库的数据与所述主库的数据相同,所述装置包 括:
[0040] 处理器;
[0041] 用于存储处理器可执行指令的存储器;
[0042] 其中,所述处理器被配置为:
[0043] 按时间顺序获取所述主库上已完成的操作;
[0044] 每次获取到所述操作后,以当前获取的所述操作的完成时间为基础延迟预设时长 后在所述从库上执行相同的操作;
[0045] 当所述主库出现错误时,确定导致错误的错误操作;
[0046] 判断所述错误操作是否已经在所述从库上执行;
[0047] 如果所述错误操作尚未在所述从库上执行,则使用所述从库的数据对所述主库的 数据进行恢复。
[0048] 本公开的实施例提供的技术方案可以包括以下有益效果:
[0049] 在相关技术中,当出现错误需要恢复数据时,因为当前时刻与备份时刻之间很可 能已经发生了很多操作,但相关技术只能恢复到备份时刻,所以可能会造成数据的丢失。而 在本公开方案中,可以恢复到错误操作的前一操作的状态。换句话说,相关技术在恢复数据 时只能精确到前一"时刻",而本公开方案则可以精确到前一"操作",这就在很大程度上避 免了数据的丢失,将损失减少到尽可能小,提升了数据库运行时的安全性和可靠性。
[0050] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不 能限制本公开。
【附图说明】
[0051] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施 例,并与说明书一起用于解释本发明的原理。
[0052] 图1是根据一示例性实施例示出的一种数据库恢复方法的流程图;
[0053] 图2是根据一示例性实施例示出的从库复制主库操作的示意图;
[0054] 图3是根据一示例性实施例示出的一种数据库恢复方法的流程图;
[0055] 图4是根据一示例性实施例示出的一种数据库恢复方法的流程图;
[0056] 图5是根据一示例性实施例示出的一种数据库恢复装置的框图;
[0057] 图6是根据一示例性实施例示出的一种数据库恢复装置的框图;
[0058] 图7是根据一示例性实施例示出的一种数据库恢复装置的框图;
[0059] 图8是根据一示例性实施例示出的一种数据库恢复装置的框图;
[0060] 图9是根据一示例性实施例示出的一种数据库恢复装置的框图;
[0061] 图10是根据一示例性实施例示出的一种用于数据库恢复的装置的框图。
【具体实施方式】
[0062] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及 附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例 中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附 权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0063] 图1是根据一示例性实施例示出的一种数据库恢复方法的流程图。所述方法可用 于由主库和从库组成的数据库系统,初始时所述从库的数据与所述主库的数据相同。
[0064] 参见图1所示,所述方法可以包括:
[0065] 在步骤SlOl中,按时间顺序获
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1