[发明专利]数据库锁等待处理方法及装置在审
申请号: | 202011031242.9 | 申请日: | 2020-09-27 |
公开(公告)号: | CN112100192A | 公开(公告)日: | 2020-12-18 |
发明(设计)人: | 李振达 | 申请(专利权)人: | 中国建设银行股份有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/22;G06F16/242;G06F16/245;G06F16/28 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 贾磊;刘飞 |
地址: | 100033 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 等待 处理 方法 装置 | ||
本申请提供了一种数据库锁等待处理方法及装置,其中,该方法包括:判断目标数据库中的锁等待关系表是否存在第一锁等待事务记录,若是,则确定所述目标数据库存在锁等待事务;基于所述第一锁等待事务记录中的源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程,其中,所述锁等待关系表包括:源事务与锁等待事务之间的对应关系。本申请能够提高数据库锁等待处理的效率和准确性,进而能够提高数据库运行的可靠性。
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据库锁等待处理方法及装置。
背景技术
通常在瞬间高并发,或者多台应用服务操作同一个数据库的情况下,如果应用系统使用了MYSQL数据库集群作为应用数据库DB,那么当同一个事务中同时包含有SELECT以及UPDATE两种操作,且操作数据为同一张表时,可能出现锁等待的现象。在应用系统运行阶段遇到一些问题时,通常不会第一时间判定为是由数据库锁等待机制导致的,而是会先查看系统应用日志,判断是否为代码运行问题或者是数据库数据、锁的问题,排查过程需要相应事务的开发人员介入。
因此,这种排查处理机制在应对锁等待问题时,往往很难及时命中问题根源,导致问题处理速度不理想。
发明内容
针对现有技术中的问题,本申请提出了一种数据库锁等待处理方法及装置,能够提高数据库锁等待处理的效率和准确性,进而能够提高数据库运行的可靠性。
为了解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种数据库锁等待处理方法,包括:
判断目标数据库中的锁等待关系表是否存在第一锁等待事务记录,若是,则确定所述目标数据库存在锁等待事务;
基于所述第一锁等待事务记录中的源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程,其中,所述锁等待关系表包括:源事务与锁等待事务之间的对应关系。
进一步地,所述的数据库锁等待处理方法,还包括:
判断目标数据库中的当前事务表是否存在第二锁等待事务记录,若是,且所述第一锁等待事务记录和第二锁等待事务记录中的锁等待事务标识相同,源事务标识相同,则确定所述目标数据库存在锁等待事务;
根据所述源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程。
进一步地,所述的数据库锁等待处理方法,还包括:
根据所述第一锁等待事务记录中的锁等待事务标识,判断所述目标数据库中的当前锁表中是否存在该锁等待事务标识对应的第三锁等待事务记录,若是,且所述第一锁等待事务记录和第三锁等待事务记录中的源事务标识相同,则确定所述目标数据库存在锁等待事务;
基于所述源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程。
进一步地,所述的数据库锁等待处理方法,还包括:
若所述第一锁等待事务记录和第二锁等待事务记录中的锁等待事务标识不相同或者源事务标识不相同,则将所述锁等待事务对应的异常信息输出。
进一步地,所述判断目标数据库中的锁等待关系表是否存在第一锁等待事务记录,若是,则确定所述目标数据库存在锁等待事务,包括:
判断所述目标数据库中的锁等待关系表的行数是否大于零,若是,则确定所述目标数据库存在锁等待事务。
进一步地,所述的数据库锁等待处理方法,还包括:
获取所述源事务的事务日志信息;
应用所述事务日志信息,确定所述源事务对应的数据库DML操作语句。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国建设银行股份有限公司,未经中国建设银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011031242.9/2.html,转载请声明来源钻瓜专利网。