CN112100192A - 数据库锁等待处理方法及装置 - Google Patents
数据库锁等待处理方法及装置 Download PDFInfo
- Publication number
- CN112100192A CN112100192A CN202011031242.9A CN202011031242A CN112100192A CN 112100192 A CN112100192 A CN 112100192A CN 202011031242 A CN202011031242 A CN 202011031242A CN 112100192 A CN112100192 A CN 112100192A
- Authority
- CN
- China
- Prior art keywords
- transaction
- lock
- database
- waiting
- source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 40
- 238000012545 processing Methods 0.000 claims abstract description 57
- 238000004590 computer program Methods 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 12
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 238000000034 method Methods 0.000 abstract description 31
- 238000004891 communication Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000004519 manufacturing process Methods 0.000 description 6
- 239000000872 buffer Substances 0.000 description 4
- 230000014759 maintenance of location Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Abstract
本申请提供了一种数据库锁等待处理方法及装置,其中,该方法包括:判断目标数据库中的锁等待关系表是否存在第一锁等待事务记录,若是,则确定所述目标数据库存在锁等待事务;基于所述第一锁等待事务记录中的源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程,其中,所述锁等待关系表包括:源事务与锁等待事务之间的对应关系。本申请能够提高数据库锁等待处理的效率和准确性,进而能够提高数据库运行的可靠性。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据库锁等待处理方法及装置。
背景技术
通常在瞬间高并发,或者多台应用服务操作同一个数据库的情况下,如果应用系统使用了MYSQL数据库集群作为应用数据库DB,那么当同一个事务中同时包含有SELECT以及UPDATE两种操作,且操作数据为同一张表时,可能出现锁等待的现象。在应用系统运行阶段遇到一些问题时,通常不会第一时间判定为是由数据库锁等待机制导致的,而是会先查看系统应用日志,判断是否为代码运行问题或者是数据库数据、锁的问题,排查过程需要相应事务的开发人员介入。
因此,这种排查处理机制在应对锁等待问题时,往往很难及时命中问题根源,导致问题处理速度不理想。
发明内容
针对现有技术中的问题,本申请提出了一种数据库锁等待处理方法及装置,能够提高数据库锁等待处理的效率和准确性,进而能够提高数据库运行的可靠性。
为了解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种数据库锁等待处理方法,包括:
判断目标数据库中的锁等待关系表是否存在第一锁等待事务记录,若是,则确定所述目标数据库存在锁等待事务;
基于所述第一锁等待事务记录中的源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程,其中,所述锁等待关系表包括:源事务与锁等待事务之间的对应关系。
进一步地,所述的数据库锁等待处理方法,还包括:
判断目标数据库中的当前事务表是否存在第二锁等待事务记录,若是,且所述第一锁等待事务记录和第二锁等待事务记录中的锁等待事务标识相同,源事务标识相同,则确定所述目标数据库存在锁等待事务;
根据所述源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程。
进一步地,所述的数据库锁等待处理方法,还包括:
根据所述第一锁等待事务记录中的锁等待事务标识,判断所述目标数据库中的当前锁表中是否存在该锁等待事务标识对应的第三锁等待事务记录,若是,且所述第一锁等待事务记录和第三锁等待事务记录中的源事务标识相同,则确定所述目标数据库存在锁等待事务;
基于所述源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程。
进一步地,所述的数据库锁等待处理方法,还包括:
若所述第一锁等待事务记录和第二锁等待事务记录中的锁等待事务标识不相同或者源事务标识不相同,则将所述锁等待事务对应的异常信息输出。
进一步地,所述判断目标数据库中的锁等待关系表是否存在第一锁等待事务记录,若是,则确定所述目标数据库存在锁等待事务,包括:
判断所述目标数据库中的锁等待关系表的行数是否大于零,若是,则确定所述目标数据库存在锁等待事务。
进一步地,所述的数据库锁等待处理方法,还包括:
获取所述源事务的事务日志信息;
应用所述事务日志信息,确定所述源事务对应的数据库DML操作语句。
第二方面,本申请提供一种数据库锁等待处理装置,包括:
第一判断模块,用于判断目标数据库中的锁等待关系表是否存在第一锁等待事务记录,若是,则确定所述目标数据库存在锁等待事务;
第一确定模块,用于基于所述第一锁等待事务记录中的源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程,其中,所述锁等待关系表包括:源事务与锁等待事务之间的对应关系。
进一步地,所述的数据库锁等待处理装置,还包括:
第二判断模块,用于判断目标数据库中的当前事务表是否存在第二锁等待事务记录,若是,且所述第一锁等待事务记录和第二锁等待事务记录中的锁等待事务标识相同,源事务标识相同,则确定所述目标数据库存在锁等待事务;
第二确定模块,用于根据所述源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的数据库锁等待处理方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现所述的数据库锁等待处理方法。
由上述技术方案可知,本申请提供一种数据库锁等待处理方法及装置。其中,该方法包括:判断目标数据库中的锁等待关系表是否存在第一锁等待事务记录,若是,则确定所述目标数据库存在锁等待事务;基于所述第一锁等待事务记录中的源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程,其中,所述锁等待关系表包括:源事务与锁等待事务之间的对应关系;能够提高数据库锁等待处理的效率和准确性,进而能够提高数据库运行的可靠性;能够适应使用MySQL数据库集的应用服务,能够实时处理数据库出现的锁等待问题并对数据库锁等待问题进行预警,另外,通过优化对应的DML操作语句能够进一步优化相关的服务,从而降低应用程序开发和扩展的成本,具体地,1、能够提高数据库锁等待处理的自动化程度,降低运维过程中人工介入的时间成本,同时,也能够避免生产运行过程中由于锁等待问题造成某些服务因手动处理暂停服务的时间成本;2、能够快速且灵活地应用到使用MySQL的应用服务中,具备良好的扩展性;3、能够为用户提供友好的处理机制,操作简单、便捷且易用,能够提高用户体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中数据库锁等待处理方法的流程示意图;
图2是本申请实施例中数据库锁等待处理方法的步骤201和步骤202的流程示意图;
图3是本申请实施例中数据库锁等待处理方法的步骤301和步骤302的流程示意图;
图4是本申请具体应用实例中数据库锁等待处理方法的第一流程示意图;
图5是本申请具体应用实例中数据库锁等待处理方法的第二流程示意图;
图6是本申请实施例中数据库锁等待处理装置的结构示意图;
图7为本申请实施例的电子设备的系统构成示意框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解本申请提供的技术方案,下面先对MYSQL数据库中不同操作涉及的锁类型进行说明。
共享锁(S锁):SELECT语句时对查询行加的锁类型为共享锁。共享锁的特性为:不允许其他事务对该记录加排他锁,但是允许加共享锁。保持时间:可重复度级别中共享锁会保持到事务结束。
排他锁(X锁):MYSQL的默认隔离级别(可重复度)中,UPDATE,INSERT和DELETE语句对操作语句加的锁类型为排他锁。排他锁的特性为:不允许其他事务对该记录加共享锁和排他锁。保持时间:会保持到事务结束。
更新锁(U锁):UPDATE语句在更新前需要对整表上更新锁,在找到记录后对需要操作记录上排他锁并释放更新锁。更新锁特性为:用来预定要对此页施加排他锁,它允许其他事务加共享锁,但不允许再施加更新锁或排他锁。保持时间:会保持到事务结束。
假设当前并行执行两个事务A和B。
1.当A开始执行事务中的SELECT语句时,会给该条记录加共享锁,这样事务B不能够对该记录加排他锁,需要等待A事务提交。
2.当A开始执行事务中的UPDATE语句时,首先会给该页记录加更新锁,这样事务B不能够对该页记录加排他锁,需要等待A事务提交;同时在定位记录后给记录增加排他锁,这样事务B不能对该记录加共享锁和排他锁,需要等待A事务提交。
3.由于A事务执行时间过长,在整个执行事务中还存在调用其他服务,查询其他表的操作。导致事务提交时间过长,B事务一直等待,导致B事务锁等待时间过长。
基于此,本申请提出一种数据库锁等待处理方法及装置,能够监控预警锁等待出现的相关信息并立即处理,同时,在锁等待出现时快速定位到相关的数据库DML语句以及相应的数据库事务,及时解决生产环境的问题。
为了提高数据库锁等待处理的效率和准确性,进而提高数据库运行的可靠性,本申请实施例提供一种数据库锁等待处理装置,该装置可以是一服务器或客户端设备,所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备和智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表和智能手环等。
在实际应用中,进行数据库锁等待处理的部分可以在如上述内容所述的服务器侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
所述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
具体通过下述各个实施例进行说明。
为了提高数据库锁等待处理的效率和准确性,进而提高数据库运行的可靠性,本实施例提供一种执行主体是数据库锁等待处理装置的数据库锁等待处理方法,该数据库锁等待处理装置包括但不限于服务器,如图1所示,该方法具体包含有如下内容:
步骤101:判断目标数据库中的锁等待关系表是否存在第一锁等待事务记录,若是,则确定所述目标数据库存在锁等待事务。
具体地,可以定时或实时判断目标数据库中的锁等待关系表是否存在第一锁等待事务记录;所述目标数据库可以是MYSQL数据库,所述锁等待关系表可以是MYSQL数据库中的innodb_lock_waits表,可以包含每个被阻止事务的一个或多个行,指示它已请求的锁以及阻止该请求的任何锁;所述第一锁等待事务记录可以是锁等待关系表中当前处于锁等待状态的事务记录,可以包含有锁等待事务标识与对应的源事务标识。
步骤102:基于所述第一锁等待事务记录中的源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程,其中,所述锁等待关系表包括:源事务与锁等待事务之间的对应关系。
具体地,所述源事务标识可以是源事务的唯一标识,锁等待事务标识可以是锁等待事务的唯一标识,用于区分不同的事务,如事务号;源事务可以是指造成锁等待的事务,源事务的线程可以是阻塞其他线程实例的事务线程;锁等待事务可以是被阻塞的事务线程;所述第一锁等待事务记录可以包括源事务标识和锁等待事务标识。
为了在保证数据库锁等待处理的效率的基础上,进一步提高数据库锁等待处理的可靠性,对数据库的锁等待情况实时监控,参见图2,在本申请一个实施例中,所述的数据库锁等待处理方法,还包括:
步骤201:判断目标数据库中的当前事务表是否存在第二锁等待事务记录,若是,且所述第一锁等待事务记录和第二锁等待事务记录中的锁等待事务标识相同,源事务标识相同,则确定所述目标数据库存在锁等待事务。
具体地,所述当前事务表可以是MYSQL数据库中的innodb_trx表,用于提供有关当前正在内部执行的每个事务的信息;第二锁等待事务记录可以是当前事务表中状态为“LOCK_WAIT”的事务记录;通过进一步判断第一锁等待事务记录和第二锁等待事务记录中的锁等待事务标识是否相同,能够监控当前数据库运行是否出现异常,进而能够提高锁等待事务处理的可靠性。所述第二锁等待事务记录可以包括:锁等待事务标识和源事务标识。
其中,本实施例对判断目标数据库中的当前事务表是否存在第二锁等待事务记录,以及判断目标数据库中的锁等待关系表是否存在第一锁等待事务记录的顺序不作限制;可以在同时判断之后,比较两个记录中的锁等待事务标识是否相同,以及源事务标识是否相同,若是,则确定所述目标数据库存在锁等待事务。
步骤202:根据所述源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程。
为了在保证数据库锁等待处理的效率的基础上,进一步提高数据库锁等待处理的可靠性,参见图3,在本申请一个实施例中,所述的数据库锁等待处理方法,还包括:
步骤301:根据所述第一锁等待事务记录中的锁等待事务标识,判断所述目标数据库中的当前锁表中是否存在该锁等待事务标识对应的第三锁等待事务记录,若是,且所述第一锁等待事务记录和第三锁等待事务记录中的源事务标识相同,则确定所述目标数据库存在锁等待事务。
具体地,第三锁等待事务记录可以是当前锁表中当前处于锁等待状态的事务记录,可以包括锁等待事务标识和源事务标识。所述当前锁表可以是MYSQL数据库中的innodb_waits表。
步骤302:基于所述源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程。
进一步地,还可以判断目标数据库中的当前锁表是否存在第三锁等待事务记录,若是,且所述第一锁等待事务记录、第二锁等待事务记录和第三锁等待事务记录中的锁等待事务标识相同,源事务标识相同,源事务标识相同,则确定所述目标数据库存在锁等待事务,以进一步提高锁等待处理的可靠性和自动化程度。
为了进一步提高数据库锁等待处理的效率,在本申请一个实施例中,所述的数据库锁等待处理方法,还包括:
步骤401:若所述第一锁等待事务记录和第二锁等待事务记录中的锁等待事务标识不相同或者源事务标识不相同,则将所述锁等待事务对应的异常信息输出。
具体地,可以向开发人员发送短信或邮件等及时提示当前数据库运行异常。若锁等待关系表中存在多条第一锁等待事务记录,则判断每条第一锁等待事务记录的锁等待事务标识是否在当前事务表中且对应的源事务标识相同,若否,则将所述锁等待事务对应的异常信息输出。
为了进一步提高锁等待事务处理的效率,在本申请一个实施例中,步骤101包括:
步骤001:判断所述目标数据库中的锁等待关系表的行数是否大于零,若是,则确定所述目标数据库存在锁等待事务。
为了提高锁等待处理的准确性,便于接下来数据库DML操作语句的优化,在本申请一个实施例中,所述的数据库锁等待处理方法,还包括:
步骤501:获取所述源事务的事务日志信息。
步骤502:应用所述事务日志信息,确定所述源事务对应的数据库DML操作语句。
在生产环境出现锁等待问题时,需要在短时间内先将问题处理,保证生产环境的正常运行,基于此,本申请提供一种数据库锁等待处理方法的具体应用实例,参见图4,在本具体应用实例中,该方法包括:
S11:查看MySQL锁等待关系innodb_lock_waits表。
具体地,若锁等待记录不为0,那么就触发相应的处理流程。
S12:通过innodb_lock_waits中的事务号,关联查询当前锁innodb_waits表中对应的锁情况。
S13:查询当前事务innodb_trx表中状态为“LOCK_WAIT”的事务。
在执行步骤S11、S12和S13中任一步骤之后,若能够定位到对应的线程实例,则将该线程实例释放,以解决当前的锁等待问题;进一步地,还可以基于记录的相关日志信息,监控造成阻塞的数据库DML操作语句,进行进一步的优化。具体地,参见图5,可以应用上述锁等待关系表、当前锁表和当前事务表中的任意一表实现以下内容:
S21:锁等待情况查询,标记当前锁等待的行数。
S22:判断标记行数是否大于0。若是,则执行步骤S23;否则执行步骤S24。
S23:查询被阻塞的事务线程。
S24:确定无锁等待问题需要处理。
S25:查询造成锁等待的源事务。
S26:查询源事务的线程ID。
S27:根据线程ID得到具体的DML语句,对该DML语句进行相关优化。
S28:释放该线程。
在本具体应用实例中,数据库锁等待处理方法的部分代码如下表1所示:
表1
由上述描述可知,本具体应用实例提供的数据库锁等待处理,能够通过查看数据库当前锁等待状态,定位到相应会阻塞其他线程实例的具体事务线程即造成锁等待的相关SQL线程,并释放,能够实现快速且自动化地处理生成环境中的锁等待问题。
从软件层面来说,为了提高数据库锁等待处理的效率和准确性,进而提高数据库运行的可靠性,本申请提供一种用于实现所述数据库锁等待处理方法中全部或部分内容的数据库锁等待处理装置的实施例,参见图6,所述数据库锁等待处理装置具体包含有如下内容:
第一判断模块10,用于判断目标数据库中的锁等待关系表是否存在第一锁等待事务记录,若是,则确定所述目标数据库存在锁等待事务。
第一确定模块20,用于基于所述第一锁等待事务记录中的源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程,其中,所述锁等待关系表包括:源事务与锁等待事务之间的对应关系。
在本申请一个实施例中,所述的数据库锁等待处理装置,还包括:
第二判断模块,用于判断目标数据库中的当前事务表是否存在第二锁等待事务记录,若是,且所述第一锁等待事务记录和第二锁等待事务记录中的锁等待事务标识相同,源事务标识相同,则确定所述目标数据库存在锁等待事务。
第二确定模块,用于根据所述源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程。
本说明书提供的数据库锁等待处理装置的实施例具体可以用于执行上述数据库锁等待处理方法的实施例的处理流程,其功能在此不再赘述,可以参照上述数据库锁等待处理方法实施例的详细描述。
由上述描述可知,本申请提供的数据库锁等待处理方法及装置,能够提高数据库锁等待处理的效率和准确性,进而能够提高数据库运行的可靠性;能够适应使用MySQL数据库集的应用服务,能够实时处理数据库出现的锁等待问题并对数据库锁等待问题进行预警,另外,通过优化对应的DML操作语句能够进一步优化相关的服务,从而降低应用程序开发和可扩展性的成本,具体地,1、能够提高数据库锁等待处理的自动化程度,降低运维过程中人工介入的时间成本,同时,也能够避免生产运行过程中由于锁等待问题造成某些服务因手动处理暂停服务的时间成本;2、能够快速且灵活地应用到使用MySQL的应用服务中,具备良好的扩展性;3、能够为用户提供友好的处理机制,操作简单、便捷且易用,能够提高用户体验。
从硬件层面来说,为了提高数据库锁等待处理的效率和准确性,进而提高数据库运行的可靠性,本申请提供一种用于实现所述数据库锁等待处理方法中的全部或部分内容的电子设备的实施例所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现所述数据库锁等待处理装置以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例用于实现所述数据库锁等待处理方法的实施例及用于实现所述数据库锁等待处理装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图7为本申请实施例的电子设备9600的系统构成的示意框图。如图7所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图7是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在本申请一个或多个实施例中,数据库锁等待处理功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
步骤101:判断目标数据库中的锁等待关系表是否存在第一锁等待事务记录,若是,则确定所述目标数据库存在锁等待事务。
步骤102:基于所述第一锁等待事务记录中的源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程,其中,所述锁等待关系表包括:源事务与锁等待事务之间的对应关系。
从上述描述可知,本申请的实施例提供的电子设备,能够提高数据库锁等待处理的效率和准确性,进而提高数据库运行的可靠性。
在另一个实施方式中,数据库锁等待处理装置可以与中央处理器9100分开配置,例如可以将数据库锁等待处理装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现数据库锁等待处理功能。
如图7所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图7中所示的所有部件;此外,电子设备9600还可以包括图7中没有示出的部件,可以参考现有技术。
如图7所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
上述描述可知,本申请的实施例提供的电子设备,能够提高数据库锁等待处理的效率和准确性,进而提高数据库运行的可靠性。
本申请的实施例还提供能够实现上述实施例中的数据库锁等待处理方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的数据库锁等待处理方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤101:判断目标数据库中的锁等待关系表是否存在第一锁等待事务记录,若是,则确定所述目标数据库存在锁等待事务。
步骤102:基于所述第一锁等待事务记录中的源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程,其中,所述锁等待关系表包括:源事务与锁等待事务之间的对应关系。
从上述描述可知,本申请实施例提供的计算机可读存储介质,能够提高数据库锁等待处理的效率和准确性,进而提高数据库运行的可靠性。
本申请中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本申请中应用了具体实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据库锁等待处理方法,其特征在于,包括:
判断目标数据库中的锁等待关系表是否存在第一锁等待事务记录,若是,则确定所述目标数据库存在锁等待事务;
基于所述第一锁等待事务记录中的源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程,其中,所述锁等待关系表包括:源事务与锁等待事务之间的对应关系。
2.根据权利要求1所述的数据库锁等待处理方法,其特征在于,还包括:
判断目标数据库中的当前事务表是否存在第二锁等待事务记录,若是,且所述第一锁等待事务记录和第二锁等待事务记录中的锁等待事务标识相同,源事务标识相同,则确定所述目标数据库存在锁等待事务;
根据所述源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程。
3.根据权利要求1所述的数据库锁等待处理方法,其特征在于,还包括:
根据所述第一锁等待事务记录中的锁等待事务标识,判断所述目标数据库中的当前锁表中是否存在该锁等待事务标识对应的第三锁等待事务记录,若是,且所述第一锁等待事务记录和第三锁等待事务记录中的源事务标识相同,则确定所述目标数据库存在锁等待事务;
基于所述源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程。
4.根据权利要求2所述的数据库锁等待处理方法,其特征在于,还包括:
若所述第一锁等待事务记录和第二锁等待事务记录中的锁等待事务标识不相同或者源事务标识不相同,则将所述锁等待事务对应的异常信息输出。
5.根据权利要求1所述的数据库锁等待处理方法,其特征在于,所述判断目标数据库中的锁等待关系表是否存在第一锁等待事务记录,若是,则确定所述目标数据库存在锁等待事务,包括:
判断所述目标数据库中的锁等待关系表的行数是否大于零,若是,则确定所述目标数据库存在锁等待事务。
6.根据权利要求1所述的数据库锁等待处理方法,其特征在于,还包括:
获取所述源事务的事务日志信息;
应用所述事务日志信息,确定所述源事务对应的数据库DML操作语句。
7.一种数据库锁等待处理装置,其特征在于,包括:
第一判断模块,用于判断目标数据库中的锁等待关系表是否存在第一锁等待事务记录,若是,则确定所述目标数据库存在锁等待事务;
第一确定模块,用于基于所述第一锁等待事务记录中的源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程,其中,所述锁等待关系表包括:源事务与锁等待事务之间的对应关系。
8.根据权利要求7所述的数据库锁等待处理装置,其特征在于,还包括:
第二判断模块,用于判断目标数据库中的当前事务表是否存在第二锁等待事务记录,若是,且所述第一锁等待事务记录和第二锁等待事务记录中的锁等待事务标识相同,源事务标识相同,则确定所述目标数据库存在锁等待事务;
第二确定模块,用于根据所述源事务标识,确定所述锁等待事务对应的源事务并释放该源事务的线程。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6任一项所述的数据库锁等待处理方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现权利要求1至6任一项所述的数据库锁等待处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011031242.9A CN112100192A (zh) | 2020-09-27 | 2020-09-27 | 数据库锁等待处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011031242.9A CN112100192A (zh) | 2020-09-27 | 2020-09-27 | 数据库锁等待处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112100192A true CN112100192A (zh) | 2020-12-18 |
Family
ID=73756302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011031242.9A Pending CN112100192A (zh) | 2020-09-27 | 2020-09-27 | 数据库锁等待处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112100192A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576830A (zh) * | 2009-06-04 | 2009-11-11 | 中兴通讯股份有限公司 | 数据库事务锁机制的死锁检测方法及装置 |
CN108205464A (zh) * | 2016-12-20 | 2018-06-26 | 阿里巴巴集团控股有限公司 | 一种数据库死锁的处理方法、装置和数据库系统 |
US20190303470A1 (en) * | 2018-04-03 | 2019-10-03 | Sap Se | Database change capture with transaction-consistent order |
CN110399378A (zh) * | 2018-04-17 | 2019-11-01 | 北京京东尚科信息技术有限公司 | 数据库系统锁操作分析方法及装置 |
CN111221869A (zh) * | 2018-11-27 | 2020-06-02 | 北京京东振世信息技术有限公司 | 一种追踪数据库事务时间和分析数据库锁的方法和装置 |
CN111259030A (zh) * | 2020-01-16 | 2020-06-09 | 平安医疗健康管理股份有限公司 | 基于分布式锁的线程执行方法及装置、存储介质 |
-
2020
- 2020-09-27 CN CN202011031242.9A patent/CN112100192A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576830A (zh) * | 2009-06-04 | 2009-11-11 | 中兴通讯股份有限公司 | 数据库事务锁机制的死锁检测方法及装置 |
CN108205464A (zh) * | 2016-12-20 | 2018-06-26 | 阿里巴巴集团控股有限公司 | 一种数据库死锁的处理方法、装置和数据库系统 |
US20190303470A1 (en) * | 2018-04-03 | 2019-10-03 | Sap Se | Database change capture with transaction-consistent order |
CN110399378A (zh) * | 2018-04-17 | 2019-11-01 | 北京京东尚科信息技术有限公司 | 数据库系统锁操作分析方法及装置 |
CN111221869A (zh) * | 2018-11-27 | 2020-06-02 | 北京京东振世信息技术有限公司 | 一种追踪数据库事务时间和分析数据库锁的方法和装置 |
CN111259030A (zh) * | 2020-01-16 | 2020-06-09 | 平安医疗健康管理股份有限公司 | 基于分布式锁的线程执行方法及装置、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110765023B (zh) | 基于混沌实验的分布式系统测试方法及系统 | |
CN111031058A (zh) | 基于WebSocket的分布式服务器集群交互方法及装置 | |
CN110908875B (zh) | 基于操作终端的巡检方法及装置 | |
CN110764881A (zh) | 分布式系统后台重试方法及装置 | |
CN110990482A (zh) | 异步数据库之间的数据同步方法及装置 | |
EP2779583A1 (en) | Telecommunication method and system | |
CN111782470A (zh) | 分布式容器日志数据处理方法及装置 | |
CN113435989A (zh) | 金融数据处理方法及装置 | |
CN111445331A (zh) | 交易撮合方法及装置 | |
CN114153856A (zh) | 主机数据双写方法及装置 | |
CN113485952A (zh) | 数据批量传输方法及装置 | |
CN111767558B (zh) | 数据访问监控方法、装置及系统 | |
CN112689012A (zh) | 跨网络的代理通讯方法及装置 | |
CN112100192A (zh) | 数据库锁等待处理方法及装置 | |
CN115562898A (zh) | 分布式支付系统异常处理方法及装置 | |
CN113515447B (zh) | 系统自动化测试方法及装置 | |
CN112416641B (zh) | 主从架构中被控端节点重启检测方法及主控端节点 | |
CN113138844A (zh) | 虚拟机集群的任务下发方法、管理构件及工作构件 | |
CN113918436A (zh) | 日志处理方法及装置 | |
CN113377385A (zh) | 客户端自动部署方法及装置 | |
CN113434423A (zh) | 接口测试方法及装置 | |
CN113553152A (zh) | 作业调度方法及装置 | |
CN113672488A (zh) | 日志文本处理方法及装置 | |
CN113535558A (zh) | 软件版本传输方法及装置 | |
CN112766827A (zh) | 资产盘点数据自动化处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |