The invention discloses a method, device and medium for avoiding the collapse of CTDB data recovery. The steps of the method include: acquiring the current state of the target recovery task corresponding to the target task ID when the CTDB master node performs the data recovery task; and searching the target task ID corresponding to the task list when the current state is abnormal. The mapping list includes data recovery functions for performing target recovery tasks and pre-applied memory space addresses for caching recovery data, and there is a mapping relationship between data recovery functions and memory space addresses. The mapping list is removed from the task list to avoid memory space. Site access causes the CTDB master node to crash. This method ensures the reliability of CTDB in data recovery. In addition, the invention also provides a data recovery device and medium for CTDB, which has the same beneficial effect as mentioned above.
【技术实现步骤摘要】
一种避免CTDB数据恢复时崩溃的方法、装置及介质
本专利技术涉及数据库领域,特别是涉及一种避免CTDB数据恢复时崩溃的方法、装置及介质。
技术介绍
Samba服务是在Linux或Unix系统上实现SMB协议的软件,能够实现客户端对服务器中数据的访问。Samba服务会将运行时所使用或产生的用户数据以及工作记录存储至CTDB(临时数据库集群)中,CTDB往往被搭载于集群环境下的多个设备节点中,其中CTDB数据节点用于控制不同的TDB(临时数据库)的数据存取,CTDB主节点用于监控以及控制CTDB数据节点。当有CTDB主节点出现故障或发生改变时,往往需要恢复其对TDB整体化的记录。进行数据恢复的所需要的相关参数往往被注册在任务列表中。如图1所示的,是当前情况下进行数据恢复所参照的任务列表的结构,其中,srvid_handler_List为任务列表;srvid为任务ID(身份识别号);srvid_handler*h为记录数据恢复函数(pull_database_handler)与预先申请的内存空间地址(tevent_req*req)之间对应关系的映射链表,任务ID与映射链表之间存在唯一对应关系。在进行数据恢复时,CTDB主节点依照上述任务列表的结构根据任务ID查找对应的映射链表,并根据映射链表获悉对应的恢复函数以及内存空间地址,进而执行该恢复函数以将所获得的数据缓存至该内存空间地址。但是由于在恢复过程中,CTDB数据节点仍可能对TDB中数据进行IO操作,因此可能出现数据恢复错误的情况。在此情况下,CTDB主节点会释放内存空间地址(tevent_req*req)下用 ...
【技术保护点】
1.一种避免CTDB数据恢复时崩溃的方法,其特征在于,包括:当CTDB主节点执行数据恢复任务时,获取目标任务ID所对应的目标恢复任务的当前状态;当所述当前状态异常时,在任务列表中查找所述目标任务ID对应的映射链表;其中,所述映射链表中包括用于执行所述目标恢复任务的数据恢复函数以及用于缓存恢复数据而预先申请的内存空间地址,且所述数据恢复函数与所述内存空间地址存在映射关系;将所述映射链表移除出所述任务列表,以避免对所述内存空间地址进行访问而造成所述CTDB主节点崩溃。
【技术特征摘要】
1.一种避免CTDB数据恢复时崩溃的方法,其特征在于,包括:当CTDB主节点执行数据恢复任务时,获取目标任务ID所对应的目标恢复任务的当前状态;当所述当前状态异常时,在任务列表中查找所述目标任务ID对应的映射链表;其中,所述映射链表中包括用于执行所述目标恢复任务的数据恢复函数以及用于缓存恢复数据而预先申请的内存空间地址,且所述数据恢复函数与所述内存空间地址存在映射关系;将所述映射链表移除出所述任务列表,以避免对所述内存空间地址进行访问而造成所述CTDB主节点崩溃。2.根据权利要求1所述的方法,其特征在于,当所述当前状态异常时,该方法进一步包括:将所述目标恢复任务的相关信息记录至表征未完成任务的任务日志;其中,所述相关信息中至少包括所述内存空间地址所对应的内存空间容量以及所述数据恢复函数。3.根据权利要求2所述的方法,其特征在于,在所述将所述目标恢复任务的相关信息记录至表征未完成任务的任务日志后,该方法进一步包括:依照所述内存空间容量在所述CTDB主节点中申请新内存空间地址,并建立所述新内存空间地址与所述数据恢复函数之间的映射关系,生成新映射链表;将所述新映射链表与新目标任务ID对应记录至所述任务列表,以用于再次执行所述目标恢复任务。4.根据权利要求1所述的方法,其特征在于,所述获取目标任务ID所对应的目标恢复任务的当前状态具体为:以随机的方式获取所述目标任务ID所对应的所述当前状态。5.根据权利要求1所述的方法,其特征在于,所述目标任务ID...
【专利技术属性】
技术研发人员:窦本君,
申请(专利权)人:郑州云海信息技术有限公司,
类型:发明
国别省市:河南,41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。