一种数据库管理平台的故障修复方法和装置制造方法

文档序号:6505151阅读:242来源:国知局
一种数据库管理平台的故障修复方法和装置制造方法
【专利摘要】本发明公开了一种数据库管理平台的故障修复方法和装置。本发明实施例提供的一种数据库管理平台的故障修复方法包括:当接收到对数据库管理平台中故障数据库实例的修复命令时,判断故障数据库实例在发生故障前在实例组中的角色;当故障数据库实例的角色为主库时,判断是否能从保存的切换记录表中获取故障数据库实例对应的切换记录;当获取到故障数据库实例对应的切换记录时,利用该切换记录建立该故障数据库实例与实例组中当前主库的主从关系,执行故障数据库实例与当前主库的同步操作,在满足上线条件后,将该故障数据库实例上线。
【专利说明】一种数据库管理平台的故障修复方法和装置

【技术领域】
[0001] 本发明涉及数据库【技术领域】,特别涉及一种数据库管理平台的故障修复方法和装 置。

【背景技术】
[0002] MySQL数据库服务于互联网企业已有十年之久,在众多关系型数据库产品当中 MySQL的存储引擎特点使得其逐渐成为各种业务模型选择的数据存储介质。
[0003] 最初数据量还处于微小阶段,MySQL为一单台且与应用程序共用服务器的单实例 服务形式提供应用程序访问,当服务器出现硬件故障,或者应用程序与MySQL运行争抢资 源使得MySQL资源耗尽服务崩溃,或者当时低版本的种种限制导致MySQL运行异常,这时需 要DBA (Database Administrator,数据库管理员)人工干预使用预先保存的完整备份文件 进行数据恢复。
[0004] 随着互联网产品的不断更新,数据库中存储的数据类型也由简单的存储信息,演 变存储交易、积分、日志、用户动态等多维数据,数据量也随之变得庞大,那么数据库就剥离 出来单独配备服务器,同时数据库架构也由单实例增加到多实例。
[0005] 由于数据库架构的复杂化,导致DBA人工执行数据修复时的操作复杂度较高、出 错率高;并且,由于数据量庞大,前一天的完整备份已经不能满足快速恢复并追平同步, DBA 只能选择业务空闲期获取一份完整备份,甚至需要停止数据库服务,以进行数据恢复,影响 了数据库的运行。


【发明内容】

[0006] 本发明提供了一种数据库管理平台的故障修复方法和装置,以解决现有方案由于 数据库架构较复杂及数据量庞大造成的人工数据恢复时,操作复杂度高、出错率高以及导 致数据库服务中断的问题等。
[0007] 为达到上述目的,本发明实施例采用了如下技术方案:
[0008] 本发明实施例提供了一种数据库管理平台的故障修复方法,该方法包括:
[0009] 当接收到对数据库管理平台中故障数据库实例的修复命令时,判断所述故障数据 库实例在发生故障前在实例组中的角色;
[0010] 当所述故障数据库实例的角色为主库时,判断是否能从保存的切换记录表中获取 故障数据库实例对应的切换记录;
[0011] 当获取到故障数据库实例对应的切换记录时,利用该切换记录建立该故障数据库 实例与实例组中当前主库的主从关系,执行故障数据库实例与当前主库的同步操作,在满 足上线条件后,将该故障数据库上线。
[0012] 本发明实施例还提供了一种数据库管理平台的故障修复装置,该装置包括:
[0013] 接收判断单元,用于当接收到对数据库管理平台中故障数据库实例的修复命令 时,判断所述故障数据库实例在发生故障前在实例组中的角色; 夕
[0014]切换记录获取单元,用于当所述故障数据库实例的角色为主库时,判断是否能从 保存的切换记录表中获取故障数据库实例对应的切换记录;
[0015]第一故障修复单元,用于当获取到故障数据库实例对应的切换记录时,利用该切 换记录建立该故障数据库实例与实例组中当前主库的主从关系,执行故障数据库实例与当 前主库的同步操作,在满足上线条件后,将该故障数据库上线。
[0016] 本发明实施例的有益效果是:
[0017]本发明实施例在数据库实例层次上对数据库的故障进行修复,通过保存数据库实 例出现故障时数据库实例之间的切换记录,对主库角色的故障数据库实例利用切换记录建 立主从关系、自动数据同步及上线,从而实现了对故障数据库实例的修复。
[0018]由上,本发明实施例提供了一种基于数据库管理平台的故障自动修复方案,无需 人工千预数据库的修复操作,显著降低了数据修复时的出错率和人力成本;并且,在执行数 据库修复时,无需中断在线提供服务的数据库,保证了数据库的正常运行。

【专利附图】

【附图说明】
[0019]图1为本发明一个实施例提供的一种数据库管理平台的故障修复方法流程图; [0020]图2为本发明另一个实施例提供的一种数据库管理平台的故障修复方法流程图;
[0021]图3为本发明又一个实施例提供的一种数据库管理平台的故障修复装置结构示 意图。

【具体实施方式】
[0022]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。
[0023]本发明实施例提供的数据库管理平台之故障自动修复功能,无需人工干预数据的 恢复操作,利用数据库管理平台自动检测故障数据库实例状态,通过修复命令触发数据恢 复操作的启动,平台即可完成在线完整备份,拷贝数据,建立主从关系,自动开启数据同步 等多种操作,实现故障的自动修复。
[0024]本发明一个实施例提供了一种数据库管理平台的故障修复方法,参见图丨,该方法 包括:
[0025] S100 :接收对数据库管理平台中故障数据库实例的修复命令。
[0026] S101 :判断故障数据库实例在发生故障前在实例组中的角色。
[0027] Sl〇2 :当故障数据库实例的角色为主库时,判断是否能从保存的切换记录表中获 取故障数据库实例对应的切换记录。
[0028] Sl〇3 :当获取到故障数据库实例对应的切换记录时,利用该切换记录建立该故障 数据库实例与实例组中当前主库的主从关系,执行故障数据库实例与当前主库的同步操 作,在满足上线条件后,将该故障数据库实例上线。
[0029]需要说明的是,本发明实施例中的数据库实例指计算机中处于运行状态的数据库 程序,以及为这些程序分配的一些内存空间。数据库实例是在数据库处于运行状态时才存 在的。数据库实例负责实现给用户提供网络连接、读写数据文件等等各种功能。本发明实 施例中故障数据库实例主要指数据库管理平台外部的应用或者数据库管理平台内部的脚 本矛王序寸无法通过 TCP/IP(Transmission Control Protocol/Internet Protocol,传输控 制协议/因特网互联协议)方式对其行正常访问的数据库实例。而正常运行的数据库实例 是能够被平台外部的应用或平台中的脚本程序通过TCP/IP方式正常访问的数据库实例。 [00 30]数据库管理平台对数据库实例进行配置和管理(如数据库实例的创建、启动、上 线、下线等),并维护数据库实例、实例组、域名等各种信息。
[0031 ]本发明实施例在数据库实例层次上对数据库的故障进行修复,通过保存数据库实 例出现故障时数据库实例之间的切换记录,对主库角色的故障数据库实例利用切换记录建 立主从关系、自动数据同步及上线,从而实现了对故障数据库实例的修复。
[0032]由上,本发明实施例提供了一种基于数据库管理平台的故障自动修复方案,无需 人工干预数据库的修复操作,显著降低了数据修复时的出错率和人力成本;并且,在执行数 据库修复时,无需中断在线提供服务的数据库,保证了数据库的正常运行。
[0033]在图1所示实施例的基础上,本发明另一个实施例提供的方法中,在步骤"⑶中, 可以至少通过如下两种方式触发上述修复命令:
[0034]方式一、利用数据库管理平台对数据库实例的状态进行监测,并将监测到的故障 数据库实例的信息在数据库管理平台的交互界面上显示,如在交互界面上针对故障数据库 实例设置一个按钮,该按钮上具有指示需要修复的信息,则接收DBA通过点击该信息(如按 钮)发送的修复命令。
[0035] 这种方式,只需DBA点击按钮发送一个修复命令,数据库管理平台即会在后台自 动完成故障数据库实例的修复操作。
[0036]方式二、利用数据库管理平台对数据库实例的状态进行监测,定时向监测到的故 障数据库实例发送修复命令。
[0037]这种方式,数据库管理平台每隔预定时间(或指定具体时间点)自动发送对故障 数据库实例的修复命令,彻底将DBA从人工干预数据修复的操作中解放了出来,使人力成 本最小化。
[0038] 需要说明的是,在上述监测数据库实例的故障状态时,可以通过调用数据库管理 平台中的一个轮询管理模块实现。该轮询管理模块定时对数据库实例的状态进行轮询,检 测数据库实例是否出现异常,当出现异常的数据库实例为从库时,轮询管理模块对该数据 库实例进行下线操作,当出现异常的数据库实例为主库时,轮询管理模块对该数据库实例 进行下线操作,并在该数据库实例归属的实例组中选取新的主库,将新的主库的信息录入 切换记录表中,根据该切换记录表建立该实例组中新的主库与从库的主从关系。
[0039] 步骤S101中,在数据库管理平台中为每个数据库实例维护一个实例记录,该实例 记录被保存在实例表中。实例表的一个示例可以参见下述表1 :
[0040] 表1、实例表
[0041]

【权利要求】
1. 一种数据库管理平台的故障修复方法,其特征在于,所述方法包括: 当接收到对数据库管理平台中故障数据库实例的修复命令时,判断所述故障数据库实 例在发生故障前在实例组中的角色; 当所述故障数据库实例的角色为主库时,判断是否能从保存的切换记录表中获取故障 数据库实例对应的切换记录; 当获取到故障数据库实例对应的切换记录时,利用该切换记录建立该故障数据库实例 与实例组中当前主库的主从关系,执行故障数据库实例与当前主库的同步操作,在满足上 线条件后,将该故障数据库实例上线。
2. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 对角色为主库的故障数据库实例,当没有获取到故障数据库实例对应的切换记录时, 从所述实例组中正常运行的从库中获取备份文件,利用该备份文件对故障数据库实例进行 修复,建立修复后故障数据库实例与实例组中当前主库的主从关系,执行故障数据库实例 与当前主库的同步操作,在满足上线条件后,将该故障数据库实例上线。
3. 根据权利要求2所述的方法,其特征在于, 当所述故障数据库实例的角色为从库时,判断故障数据库实例保存的主库信息是否与 当前主库信息一致, 若一致,执行故障数据库实例与当前主库的同步操作,在满足上线条件后,将该故障数 据库上线; 若不一致,从当前主库中获取备份文件,利用该备份文件对故障数据库实例进行修复, 建立修复后故障数据库实例与实例组中当前主库的主从关系,执行故障数据库实例与当前 主库的同步操作,在满足上线条件后,将该故障数据库实例上线。
4. 根据权利要求2所述的方法,其特征在于,为数据库管理平台中每个数据库实例维 护一条实例记录,该实例记录中包括实例标识ID和实例组ID ;所述切换记录表中包括实例 组ID和切换记录, 所述从保存的切换记录表中获取故障数据库实例对应的切换记录包括: 根据故障数据库实例的实例ID查询该故障数据库实例的实例记录,得到该故障数据 库实例的实例组ID ; 根据所述故障数据库实例的实例组ID查询切换记录表得到该故障数据库实例对应的 切换记录。
5. 根据权利要求4所述的方法,其特征在于,所述从所述实例组中正常运行的从库中 获取备份文件,利用该备份文件对故障数据库实例进行修复包括: 接收管理侧发送的或定时任务发送的触发命令; 根据所述触发命令利用故障数据库实例的实例ID和实例组ID从实例表中获取该实例 组中正常运行的从库IP和端口; 根据获取到的从库IP和端口,建立该从库和故障数据库实例之间的连接,并向该从库 发送备份命令; 将所述从库根据所述备份命令返回的备份文件压缩包放置在故障数据库实例所在的 待修复主机中。
6. 根据权利要求5所述的方法,其特征在于, 在将所述从库根据所述备份命令返回的备份文件压缩包放置在故障数据库实例的主 机中之后,所述方法还包括: 获取数据库管理平台为备份操作生成的备份日志,根据该备份日志中的日志完成标识 验证备份文件的完整性,并按照MD5算法验证备份文件的正确性,其中,所述返回的备份文 件压缩包采用消息摘要算法第五版MD5加密得到; 当确认备份文件的完整性和正确性后,向所述故障数据库实例发送解压、恢复/数据 导入命令,以使该故障数据库实例将所述备份文件压缩包解压缩后,将备份文件导入至故 障数据库实例中,执行故障数据库实例的数据恢复操作; 根据数据库管理平台为恢复操作生成的恢复执行日志,确认恢复的数据的完整性,并 确认恢复的数据的目录权限满足数据库管理平台规定的目录权限; 向所述故障数据库实例发送启动命令,判断数据库管理平台为启动操作生成的实例启 动日志中不存在报错信息,确认该故障数据库实例正确启动; 根据备份时刻记录的主从关系信息,向故障数据库实例发起建立主从关系命令,建立 修复后故障数据库实例与实例组中当前主库的主从关系。
7. 根据权利要求1所述的方法,其特征在于,所述执行故障数据库实例与当前主库的 同步操作包括: 验证日志传输健康状态I〇_Running值和日志执行健康状态SQL_Running值,并获取同 步延迟时间值; 当日志传输健康状态值和日志执行健康状态值都指示同步健康,且获取到的同步延迟 时间值指示延迟时间为零时,确认满足上线条件。
8. 根据权利要求1所述的方法,其特征在于,所述接收到对数据库管理平台中故障数 据库实例的修复命令包括: 利用数据库管理平台对数据库实例的状态进行监测,并将监测到的故障数据库实例的 信息在数据库管理平台的交互界面上显示,接收通过点击所述信息发送的所述修复命令; 和/或 利用数据库管理平台对数据库实例的状态进行监测,接收定时向监测到的故障数据库 实例发送的所述修复命令。
9. 一种数据库管理平台的故障修复装置,其特征在于,所述装置包括: 接收判断单元,用于当接收到对数据库管理平台中故障数据库实例的修复命令时,判 断所述故障数据库实例在发生故障前在实例组中的角色; 切换记录获取单元,用于当所述故障数据库实例的角色为主库时,判断是否能从保存 的切换记录表中获取故障数据库实例对应的切换记录; 第一故障修复单元,用于当获取到故障数据库实例对应的切换记录时,利用该切换记 录建立该故障数据库实例与实例组中当前主库的主从关系,执行故障数据库实例与当前主 库的同步操作,在满足上线条件后,将该故障数据库实例上线。
10. 根据权利要求9所述的装置,其特征在于,所述装置还包括: 第二故障修复单元,用于对角色为主库的故障数据库实例,当没有获取到故障数据库 实例对应的切换记录时,从所述实例组中正常运行的从库中获取备份文件,利用该备份文 件对故障数据库实例进行修复,建立修复后故障数据库实例与实例组中当前主库的主从关 系,执行故障数据库实例与当前主库的同步操作,在满足上线条件后,将该故障数据库实例 上线; 第三故障修复单元,用于当所述故障数据库实例的角色为从库时,判断故障数据库实 例保存的主库信息是否与当前主库信息一致,若一致,执行故障数据库实例与当前主库的 同步操作,在满足上线条件后,将该故障数据库实例上线;若不一致,从当前主库中获取备 份文件,利用该备份文件对故障数据库实例进行修复,建立修复后故障数据库实例与实例 组中当前主库的主从关系,执行故障数据库实例与当前主库的同步操作,在满足上线条件 后,将该故障数据库实例上线。
【文档编号】G06F17/30GK104252500SQ201310270209
【公开日】2014年12月31日 申请日期:2013年6月29日 优先权日:2013年6月29日
【发明者】乔婧 申请人:北京新媒传信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1