CN115421879A - MySQL数据库异常事务自动处理方法及装置 - Google Patents

MySQL数据库异常事务自动处理方法及装置 Download PDF

Info

Publication number
CN115421879A
CN115421879A CN202211060770.6A CN202211060770A CN115421879A CN 115421879 A CN115421879 A CN 115421879A CN 202211060770 A CN202211060770 A CN 202211060770A CN 115421879 A CN115421879 A CN 115421879A
Authority
CN
China
Prior art keywords
abnormal
transaction
affair
information
affairs
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
Application number
CN202211060770.6A
Other languages
English (en)
Inventor
容达锋
林镇熙
潘洪添
卢智彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202211060770.6A priority Critical patent/CN115421879A/zh
Publication of CN115421879A publication Critical patent/CN115421879A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种MySQL数据库异常事务自动处理方法及装置,方法包括:以预设的时间间隔为周期查询数据库的运行状态获得已经运行但未提交的事务信息;根据事务信息抓取异常事务;判断异常事务是否已存在,并根据判断结果更新或记录异常事务;根据事务信息确定异常事务的处理方式。本申请通过集中控制、事件集中监控、自动查杀大事务,有效缓解大事务带来的危害,保障业务的稳定性与可靠性,同时,相比于现有的人工审核方式,本申请提供的方法能够有效降低失误率,避免了数据库风险的发生。

Description

MySQL数据库异常事务自动处理方法及装置
技术领域
本申请属于数据库管理技术领域,具体地讲,涉及一种MySQL数据库异常事务自动处理方法及装置。
背景技术
随着MySQL数据库的流行及大规模使用,在数据库运行过程中,如何维护业务运行的稳定性与可靠性,及时有效地发现及避免大事务的出现成为了数据库行业一直以来的棘手问题,而且目前业界并没有通用的解决方案。
大事务对数据库的常见危害有:
高并发场景下撑爆数据库连接池;
·锁定太多数据,造成大量的阻塞和锁超时;
·事务执行时间长造成主从延迟;
·事务回滚所需要的时间长。
常规的缓解大事务危害的控制方法为在开发测试环境DBA人工审核提高SQL的质量或将操作数据较多的事务拆分以减少单个事务影响的数据量等,但是人工审核的出错率高。
发明内容
本申请提供了一种MySQL数据库异常事务自动处理方法及装置,以至少解决当前缓解大事务危害的方法主要依赖人工审核的问题。
根据本申请的一个方面,提供了一种MySQL数据库异常事务自动处理方法,包括:
以预设的时间间隔为周期查询数据库的运行状态获得已经运行但未提交的事务信息;
根据事务信息抓取异常事务;
判断异常事务是否已存在,并根据判断结果更新或记录异常事务;
根据事务信息确定异常事务的处理方式。
在一实施例中,MySQL数据库异常事务自动处理方法还包括:
从事务信息中提取异常事务信息发送关键词;
根据发送关键词判断是否将该异常事务信息发送至集中监控系统;
如果是,则获取异常事务的历史SQL信息,并将其记录到本地日志中且发送告警到集中监控系统。
在一实施例中,根据事务信息抓取异常事务,包括:
从事务信息中提取事务影响的行数;
比较事务影响的行数与预设阈值的大小,根据比较结果判定是否属于异常事务。
在一实施例中,比较事务影响的行数与预设阈值的大小,根据比较结果判定是否属于异常事务,包括:
如果事务影响的行数大于预设阈值,则属于异常事务;
如果事务影响的行数小于预设阈值,则不属于异常事务。
在一实施例中,判断异常事务是否已存在,包括:
从异常事务列表中查找是否存在异常事务。
在一实施例中,根据判断结果更新或记录异常事务,包括:
如果在异常事务列表中存在该异常事务,更新异常事务列表中该异常事务对应的时间戳;
如果在异常事务列表中不存在该异常事务,则在异常事务列表中新增一条记录,记录该异常事务的信息。
在一实施例中,根据事务信息确定异常事务的处理方式,包括:
根据事务信息查找用户定义的处理行为;
如果处理行为为不杀死异常事务,则监测到异常事务后,判断异常事务本次监控周期之前是否已经被记录到异常事务列表,若已经被记录则仅更新异常事务列表中该异常事务对应的时间戳,若异常事务是新监测到的事务,则异常事务列表新增一条记录;
如果处理行为为杀死异常事务,则向数据库发送指令杀死对应的事务。
根据本申请的另一个方面,还提供了一种MySQL数据库异常事务自动处理装置,包括:
运行状态查询单元,用于以预设的时间间隔为周期查询数据库的运行状态获得已经运行但未提交的事务信息;
异常事务抓取单元,用于根据事务信息抓取异常事务;
判断存在单元,用于判断异常事务是否已存在,并根据判断结果更新或记录异常事务;
处理方式确定单元,用于根据事务信息确定异常事务的处理方式。
在一实施例中,MySQL数据库异常事务自动处理装置还包括:
发送判断模块,用于从事务信息中提取异常事务信息发送关键词;
发送模块,用于根据发送关键词判断是否将该异常事务信息发送至集中监控系统;
告警发送模块,用于如果是,则获取异常事务的历史SQL信息,并将其记录到本地日志中且发送告警到集中监控系统。
在一实施例中,异常事务抓取单元包括:
行数提取模块,用于从事务信息中提取事务影响的行数;
异常事务判断模块,用于比较事务影响的行数与预设阈值的大小,根据比较结果判定是否属于异常事务。
在一实施例中,异常事务判断模块包括:
第一比较模块,用于如果事务影响的行数大于预设阈值,则属于异常事务;
第二比较模块,用于如果事务影响的行数小于预设阈值,则不属于异常事务。
在一实施例中,判断存在单元包括:
异常事务列表查询模块,用于从异常事务列表中查找是否存在异常事务。
在一实施例中,判断存在单元包括:
时间戳更新模块,用于如果在异常事务列表中存在该异常事务,更新异常事务列表中该异常事务对应的时间戳;
记录模块,用于如果在异常事务列表中不存在该异常事务,则在异常事务列表中新增一条记录,记录该异常事务的信息。
在一实施例中,处理方式确定单元包括:
处理行为查找模块,用于根据事务信息查找用户定义的处理行为;
NOT模块,用于如果处理行为为不杀死异常事务,则监测到异常事务后,判断异常事务本次监控周期之前是否已经被记录到异常事务列表,若已经被记录则仅更新异常事务列表中该异常事务对应的时间戳,若异常事务是新监测到的事务,则异常事务列表新增一条记录;
KILL模块,用于如果处理行为为杀死异常事务,则向数据库发送指令杀死对应的事务。
本申请通过集中控制、事件集中监控、自动查杀大事务,有效缓解大事务带来的危害,保障业务的稳定性与可靠性,同时,相比于现有的人工审核方式,本申请提供的方法能够有效降低失误率,避免了数据库风险的发生。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种MySQL数据库异常事务自动处理方法流程图。
图2为本申请实施例中另一MySQL数据库异常事务自动处理方法流程图。
图3为本申请实施例中根据事务信息抓取异常事务的方法流程图。
图4为本申请实施例中根据比较结果判定是否属于异常事务的方法流程图。
图5为本申请实施例中根据判断结果更新或记录异常事务的方法流程图。
图6为本申请实施例中根据事务信息确定异常事务的处理方式的方法流程图。
图7为本申请实施例中系统的模块图。
图8为本申请提供的一种MySQL数据库异常事务自动处理装置的结构框图。
图9为本申请实施例中另一MySQL数据库异常事务自动处理装置的结构框图。
图10为本申请实施例中异常事务抓取单元的结构框图。
图11为本申请实施例中异常事务判断模块的结构框图。
图12为本申请实施例中判断存在单元的结构框图。
图13为本申请实施例中处理方式确定单元的结构框图。
图14为本申请实施例中一种电子设备的具体实施方式。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着MySQL数据库的流行及大规模使用,在数据库运行过程中,如何维护业务运行的稳定性与可靠性,及时有效地发现及避免大事务的出现成为了数据库行业一直以来的棘手问题。常规的缓解大事务危害的控制方法为在开发测试环境DBA人工审核提高SQL的质量或将操作数据较多的事务拆分以减少单个事务影响的数据量等,但是人工审核的出错率高。
为了克服人工审核的弊端,本申请提供了一种MySQL数据库异常事务自动处理方法,如图1所示,包括:
S101:以预设的时间间隔为周期查询数据库的运行状态获得已经运行但未提交的事务信息。
S102:根据事务信息抓取异常事务。
S103:判断异常事务是否已存在,并根据判断结果更新或记录异常事务。
S104:根据事务信息确定异常事务的处理方式。
在一具体实施例中,
在一实施例中,如图2所示,MySQL数据库异常事务自动处理方法还包括:
S201:从事务信息中提取异常事务信息发送关键词。
S202:根据发送关键词判断是否将该异常事务信息发送至集中监控系统。
S203:如果是,则获取异常事务的历史SQL信息,并将其记录到本地日志中且发送告警到集中监控系统。
在一实施例中,根据事务信息抓取异常事务,如图3所示,包括:
S301:从事务信息中提取事务影响的行数。
S302:比较事务影响的行数与预设阈值的大小,根据比较结果判定是否属于异常事务。
在一实施例中,比较事务影响的行数与预设阈值的大小,根据比较结果判定是否属于异常事务,如图4所示,包括:
S401:如果事务影响的行数大于预设阈值,则属于异常事务。
S402:如果事务影响的行数小于预设阈值,则不属于异常事务。
在一实施例中,判断异常事务是否已存在,包括:
从异常事务列表中查找是否存在异常事务。
在一实施例中,根据判断结果更新或记录异常事务,如图5所示,包括:
S501:如果在异常事务列表中存在该异常事务,更新异常事务列表中该异常事务对应的时间戳。
S502:如果在异常事务列表中不存在该异常事务,则在异常事务列表中新增一条记录,记录该异常事务的信息。
在一实施例中,根据事务信息确定异常事务的处理方式,如图6所示,包括:
S601:根据事务信息查找用户定义的处理行为。
S602:如果处理行为为不杀死异常事务,则监测到异常事务后,判断异常事务本次监控周期之前是否已经被记录到异常事务列表,若已经被记录则仅更新异常事务列表中该异常事务对应的时间戳,若异常事务是新监测到的事务,则异常事务列表新增一条记录。
S603:如果处理行为为杀死异常事务,则向数据库发送指令杀死对应的事务。
在一具体实施例中,本申请包含四个模块,如图7所示,分别为:页面展示与集中控制模块,数据存储模块,监控服务控制模块及事中监控模块。
用户在页面展示与集中控制模块填写服务器台账信息和配置信息,台账信息和配置信息会写入数据存储模块,控制监控服务控制模块;数据存储模块用于存储服务器台账及配置信息,监控服务控制模块用于读取台账、配置信息,同时守护事中监控模块,并接收事中监控模块上报的信息,若监测到异常事务信息,发送报警信息到集中监控系统,监控服务模块可以守护多个事中监控模块。事中监控模块部署在应用数据库所在的服务器上,负责监控应用数据库的事务,若监测到异常事务,则根据自定义规则执行相应的动作,同时将告警信息上报至监控服务控制模块。
其中,事中监控模块以用户定义的监控时间间隔为周期查询应用数据库的运行状态(指令为show engine innodb status),可检测出已经运行但未提交的事务(指进行过update/insert/delete操作的事务,不包括进行过DDL操作的事务),以及事务影响的行数(具体为undo_log_entries)和事务对应的线程id(具体为thread_id),然后,将获取的事务影响的行数(undo_log_entries)与用户自定义的异常事务阈值进行比较,如果事务影响的行数大于异常事务阈值bt_threshold_kill,则将其标记为异常事务。
用户自定义监测到异常事务后的行为,自定义的行为的字段为bt_kill(bt_kill=0为仅将异常事务记录到异常事务列表,bt_kill=1为杀死异常事务),若bt_kill=0,则监测到异常事务后,判断异常事务本次监控周期之前是否已经被记录到异常事务列表(具体为mapBtAlarmList),若已经被记录则仅更新异常事务列表中该异常事务对应的时间戳,若异常事务是新监测到的事务,则异常事务列表新增一条记录,记录该异常事务的事务id、事务sql、时间戳;若bt_kill=1,则向应用数据库发送指令杀死对应的事务(指令为killthread_id)。
最后,根据用户自定义的设置,判断是否需要将该异常事务信息发送到集中监控系统。具体地,判断字段为bt_alarm,当bt_alarm=0为不发送告警到集中监控系统,bt_alarm=1为发送告警到集中监控系统),若bt_alarm=0则将该异常事务记录到本地日志;若bt_alarm=1,则获取异常事务的历史SQL信息,将其记录到本地日志且发送告警到集中监控系统。
基于同一发明构思,本申请实施例还提供了一种MySQL数据库异常事务自动处理装置,可以用于实现上述实施例中所描述的方法,如下面实施例所述。由于该MySQL数据库异常事务自动处理装置解决问题的原理与MySQL数据库异常事务自动处理方法相似,因此MySQL数据库异常事务自动处理装置的实施可以参见MySQL数据库异常事务自动处理方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
根据本申请的另一个方面,还提供了一种MySQL数据库异常事务自动处理装置,如图8所示,包括:
运行状态查询单元801,用于以预设的时间间隔为周期查询数据库的运行状态获得已经运行但未提交的事务信息;
异常事务抓取单元802,用于根据事务信息抓取异常事务;
判断存在单元803,用于判断异常事务是否已存在,并根据判断结果更新或记录异常事务;
处理方式确定单元804,用于根据事务信息确定异常事务的处理方式。
在一实施例中,如图9所示,MySQL数据库异常事务自动处理装置还包括:
发送判断模块901,用于从事务信息中提取异常事务信息发送关键词;
发送模块902,用于根据发送关键词判断是否将该异常事务信息发送至集中监控系统;
告警发送模块903,用于如果是,则获取异常事务的历史SQL信息,并将其记录到本地日志中且发送告警到集中监控系统。
在一实施例中,如图10所示,异常事务抓取单元802包括:
行数提取模块1001,用于从事务信息中提取事务影响的行数;
异常事务判断模块1002,用于比较事务影响的行数与预设阈值的大小,根据比较结果判定是否属于异常事务。
在一实施例中,如图11所示,异常事务判断模块1002包括:
第一比较模块1101,用于如果事务影响的行数大于预设阈值,则属于异常事务;
第二比较模块1102,用于如果事务影响的行数小于预设阈值,则不属于异常事务。
在一实施例中,判断存在单元包括:
异常事务列表查询模块,用于从异常事务列表中查找是否存在异常事务。
在一实施例中,如图12所示,判断存在单元803包括:
时间戳更新模块1201,用于如果在异常事务列表中存在该异常事务,更新异常事务列表中该异常事务对应的时间戳;
记录模块1202,用于如果在异常事务列表中不存在该异常事务,则在异常事务列表中新增一条记录,记录该异常事务的信息。
在一实施例中,如图13所示,处理方式确定单元804包括:
处理行为查找模块1301,用于根据事务信息查找用户定义的处理行为;
NOT模块1302,用于如果处理行为为不杀死异常事务,则监测到异常事务后,判断异常事务本次监控周期之前是否已经被记录到异常事务列表,若已经被记录则仅更新异常事务列表中该异常事务对应的时间戳,若异常事务是新监测到的事务,则异常事务列表新增一条记录;
KILL模块1303,用于如果处理行为为杀死异常事务,则向数据库发送指令杀死对应的事务。
本申请提供了一种自动监控处理数据库中发生的大事务的方法及装置,相比于人工审核大事务而言,本申请提供的方法及装置能够有效缓解大事务带来的危害,保障业务的稳定性与可靠性,同时,相比于现有的人工审核方式,本申请提供的方法能够有效降低失误率,避免了数据库风险的发生。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
本申请的实施例还提供能够实现上述实施例中的方法中全部步骤的一种电子设备的具体实施方式,参见图14,所述电子设备具体包括如下内容:
处理器(processor)1401、内存1402、通信接口(Communications Interface)1403、总线1404和非易失性存储器1405;
其中,所述处理器1401、内存1402、通信接口1403通过所述总线1404完成相互间的通信;
所述处理器1401用于调用所述内存1402和非易失性存储器1405中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
S101:以预设的时间间隔为周期查询数据库的运行状态获得已经运行但未提交的事务信息。
S102:根据事务信息抓取异常事务。
S103:判断异常事务是否已存在,并根据判断结果更新或记录异常事务。
S104:根据事务信息确定异常事务的处理方式。
本申请的实施例还提供能够实现上述实施例中的方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
S101:以预设的时间间隔为周期查询数据库的运行状态获得已经运行但未提交的事务信息。
S102:根据事务信息抓取异常事务。
S103:判断异常事务是否已存在,并根据判断结果更新或记录异常事务。
S104:根据事务信息确定异常事务的处理方式。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。
在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。

Claims (10)

1.一种MySQL数据库异常事务自动处理方法,其特征在于,包括:
以预设的时间间隔为周期查询数据库的运行状态获得已经运行但未提交的事务信息;
根据所述事务信息抓取异常事务;
判断所述异常事务是否已存在,并根据判断结果更新或记录异常事务;
根据所述事务信息确定异常事务的处理方式。
2.根据权利要求1所述的MySQL数据库异常事务自动处理方法,其特征在于,还包括:
从所述事务信息中提取异常事务信息发送关键词;
根据所述发送关键词判断是否将该异常事务信息发送至集中监控系统;
如果是,则获取异常事务的历史SQL信息,并将其记录到本地日志中且发送告警到集中监控系统。
3.根据权利要求1所述的MySQL数据库异常事务自动处理方法,其特征在于,所述根据所述事务信息抓取异常事务,包括:
从所述事务信息中提取事务影响的行数;
比较所述事务影响的行数与预设阈值的大小,根据比较结果判定是否属于异常事务。
4.根据权利要求3所述的MySQL数据库异常事务自动处理方法,其特征在于,所述比较所述事务影响的行数与预设阈值的大小,根据比较结果判定是否属于异常事务,包括:
如果所述事务影响的行数大于预设阈值,则属于异常事务;
如果所述事务影响的行数小于预设阈值,则不属于异常事务。
5.根据权利要求4所述的MySQL数据库异常事务自动处理方法,其特征在于,所述判断所述异常事务是否已存在,包括:
从异常事务列表中查找是否存在所述异常事务。
6.根据权利要求5所述的MySQL数据库异常事务自动处理方法,其特征在于,所述根据判断结果更新或记录异常事务,包括:
如果在异常事务列表中存在该异常事务,更新异常事务列表中该异常事务对应的时间戳;
如果在异常事务列表中不存在该异常事务,则在异常事务列表中新增一条记录,记录该异常事务的信息。
7.根据权利要求6所述的MySQL数据库异常事务自动处理方法,其特征在于,所述根据所述事务信息确定异常事务的处理方式,包括:
根据所述事务信息查找用户定义的处理行为;
如果所述处理行为为不杀死异常事务,则监测到异常事务后,判断异常事务本次监控周期之前是否已经被记录到异常事务列表,若已经被记录则仅更新异常事务列表中该异常事务对应的时间戳,若异常事务是新监测到的事务,则异常事务列表新增一条记录;
如果所述处理行为为杀死异常事务,则向数据库发送指令杀死对应的事务。
8.一种MySQL数据库异常事务自动处理装置,其特征在于,包括:
运行状态查询单元,用于以预设的时间间隔为周期查询数据库的运行状态获得已经运行但未提交的事务信息;
异常事务抓取单元,用于根据所述事务信息抓取异常事务;
判断存在单元,用于判断所述异常事务是否已存在,并根据判断结果更新或记录异常事务;
处理方式确定单元,用于根据所述事务信息确定异常事务的处理方式。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述的MySQL数据库异常事务自动处理方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的MySQL数据库异常事务自动处理方法的步骤。
CN202211060770.6A 2022-08-30 2022-08-30 MySQL数据库异常事务自动处理方法及装置 Pending CN115421879A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211060770.6A CN115421879A (zh) 2022-08-30 2022-08-30 MySQL数据库异常事务自动处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211060770.6A CN115421879A (zh) 2022-08-30 2022-08-30 MySQL数据库异常事务自动处理方法及装置

Publications (1)

Publication Number Publication Date
CN115421879A true CN115421879A (zh) 2022-12-02

Family

ID=84200578

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211060770.6A Pending CN115421879A (zh) 2022-08-30 2022-08-30 MySQL数据库异常事务自动处理方法及装置

Country Status (1)

Country Link
CN (1) CN115421879A (zh)

Similar Documents

Publication Publication Date Title
CN110661659B (zh) 一种告警方法、装置、系统及电子设备
US10083210B2 (en) Executing continuous event processing (CEP) queries in parallel
US10671642B2 (en) Copying data changes to a target database
US9262258B2 (en) Handling faults in a continuous event processing (CEP) system
CN109240886B (zh) 异常处理方法、装置、计算机设备以及存储介质
CN113111129B (zh) 数据同步方法、装置、设备及存储介质
CN103761165B (zh) 日志备份方法及装置
JP6996812B2 (ja) 分散データベースにおけるデータブロックを処理する方法、プログラム、およびデバイス
CN105573859A (zh) 一种数据库的数据恢复方法和设备
CN112084161B (zh) 基于数据库的数据处理方法、装置以及可读存储介质
WO2019153550A1 (zh) Sql自动优化方法、装置、计算机设备及存储介质
CN112230847B (zh) 一种监控K8s存储卷的方法、系统、终端及存储介质
CN113420081A (zh) 数据校验方法、装置、电子设备及计算机存储介质
CN110209736A (zh) 区块链数据处理的装置、方法及存储介质
CN108809729A (zh) 一种分布式系统中ctdb服务的故障处理方法及装置
CN109189343B (zh) 一种元数据落盘方法、装置、设备及计算机可读存储介质
CN118152401A (zh) 数据存储方法、装置、设备、存储介质及程序产品
CN111435327B (zh) 一种日志记录的处理方法、装置及系统
CN115421879A (zh) MySQL数据库异常事务自动处理方法及装置
CN115185778A (zh) 数据库的监控方法及装置
CN112612773A (zh) 数据库同步测试方法、装置、计算机设备及存储介质
CN106293897B (zh) 组件自动化调度系统
CN116226171A (zh) 一种MySQL数据库元数据锁自动监控查杀的方法及装置
CN117421337B (zh) 数据采集方法、装置、设备及计算机可读介质
CN116917879A (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