CN107092690A - 一种数据库僵死的检测方法及装置 - Google Patents
一种数据库僵死的检测方法及装置 Download PDFInfo
- Publication number
- CN107092690A CN107092690A CN201710271369.XA CN201710271369A CN107092690A CN 107092690 A CN107092690 A CN 107092690A CN 201710271369 A CN201710271369 A CN 201710271369A CN 107092690 A CN107092690 A CN 107092690A
- Authority
- CN
- China
- Prior art keywords
- data
- ossified
- detection
- database
- detection method
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 96
- 238000000034 method Methods 0.000 claims abstract description 41
- 230000008569 process Effects 0.000 claims abstract description 25
- 230000004044 response Effects 0.000 claims abstract description 20
- 230000009471 action Effects 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 5
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- 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/21—Design, administration or maintenance of databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库僵死的检测方法及装置,该方法包括:在待检测数据库中建立用于检测的检测表,检测表中包含有用于检测的数据;对检测表中的数据进行DML操作;判断DML操作的响应结果是否满足预设条件;如果否,则确定待检测数据库僵死。由此可见,该方法通过对数据库进行DML操作作为判断数据库是否僵死的依据,相对于现有技术中采用运行进程和告警日志的检测方法来说,有效性和准确性更高。另外,在待检测数据库中建立了专用的检测表,因此,不影响数据库的正常运行,且通用性较高,只需根据数据库类型和HA软件类型建立即可。此外,本发明所提供的数据库僵死的检测装置亦具有上述优点。
Description
技术领域
本发明涉及数据库领域,特别是涉及一种数据库僵死的检测方法及装置。
背景技术
随着信息化建设的不断推进,企业的信息化已经非常普遍,其关键的业务系统对整个机构的运营和发展起着至关重要的作用。如果一些关键应用一旦发生宕机故障或应用停机,将给企业带来巨大的经济损失,所造成的危害是致命的,对那些需要保障信息安全和提供不间断的信息服务的企业而言,业务系统的容错性和不间断性显得尤为重要。
在生产业务场景中,数据库僵死也是业务系统运行过程中会出现的问题之一。数据库僵死会导致数据库无法正常对外提供服务,所以当数据库僵死无响应时,需要对数据库进行重启或触发主备切换动作。数据库僵死时的现象有:
1)数据库服务存在,且数据库进程运行正常;
2)不能继续处理客户端发起的请求,无法对外提供正常服务;
3)无法对数据库的表数据执行DML操作;
4)数据库的日志无法输出错误信息至与僵死相关的log文件里。
现有的数据库僵死的检测方法主要由以下两种,一种是监控系统中运行的数据库进程:数据库启动时,会在操作系统中运行相关进程,如:mysql的mysqld、oracle的smon等,数据库监控模块可以通过监控系统运行的进程中是否存在对应的进程名称,确定数据库是否在运行。这种方法是可以实现对数据库的启动关闭情况进行监控,但是如果数据库处于僵死状态下时,数据库进程都是存在的情况下,该方式就无法判断出数据库是否能够正常的对外提供服务,故使用此种方法存在局限性。另一种是检测数据库告警日志方法:通常都会将数据库运行过程中的错误信息输出到数据库的log文件里,如mysql的error log、oracle的alert log等,但是当数据库处于僵死状态时,数据库的log文件无法或不能刷新出正常的错误信息,故使用此种方法也存在问题。
由此可见,如何有效、准确地检测出数据库僵死的状态是本领域技术人员亟待解决的问题。
发明内容
本发明的目的是提供一种数据库僵死的检测方法及装置,用于有效、准确地检测出数据库僵死的状态。
为解决上述技术问题,本发明提供一种数据库僵死的检测方法,包括:
在待检测数据库中建立用于检测的检测表,所述检测表中包含有用于检测的数据;
对所述检测表中的所述数据进行DML操作;
判断所述DML操作的响应结果是否满足预设条件;
如果否,则确定所述待检测数据库僵死。
优选地,所述预设条件具体为:在预设时间内未接收到所述响应结果且未接收到所述响应结果的事件持续预设次数。
优选地,所述DML操作包括:增加操作、删除操作、修改操作或查询操作。
优选地,在所述确定所述待检测数据库僵死的步骤之后还包括:
启动主/备切换操作或重启操作。
优选地,在所述对所述检测表中的所述数据进行DML操作之前还包括:
检测所述待检测数据库所在系统的运行进程;
判断所述运行进程中是否存在所述待检测数据库对应的目标进程;
如果是,则进入所述对所述检测表中的所述数据进行DML操作的步骤;
如果否,则进入启动主/备切换操作或重启操作的步骤。
优选地,所述对所述检测表中的所述数据进行DML操作为周期性操作。
优选地,所述预设时间为5s。
优选地,所述预设次数为5次。
为解决上述技术问题,本发明提供一种数据库僵死的检测装置,包括:
建立单元,用于在待检测数据库中建立用于检测的检测表,所述检测表中包含有用于检测的数据;
操作单元,用于对所述检测表中的所述数据进行DML操作;
判断单元,用于判断所述DML操作的响应结果是否满足预设条件;
确定单元,用于在所述判断单元的判断结果为否时,则确定所述待检测数据库僵死。
本发明所提供的数据库僵死的检测方法包括:在待检测数据库中建立用于检测的检测表,检测表中包含有用于检测的数据;对检测表中的数据进行DML操作;判断DML操作的响应结果是否满足预设条件;如果否,则确定待检测数据库僵死。由此可见,该方法通过对数据库进行DML操作作为判断数据库是否僵死的依据,相对于现有技术中采用运行进程和告警日志的检测方法来说,有效性和准确性更高。另外,在待检测数据库中建立了专用的检测表,因此,不影响数据库的正常运行,且通用性较高,只需根据数据库类型和HA软件类型建立即可。此外,本发明所提供的数据库僵死的检测装置亦具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据库僵死的检测方法的流程图;
图2为本发明实施例提供的另一种数据库僵死的检测方法的流程图;
图3为本发明实施例提供的一种数据库僵死的检测装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种数据库僵死的检测方法及装置,用于有效、准确地检测出数据库僵死的状态。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
图1为本发明实施例提供的一种数据库僵死的检测方法的流程图。如图1所示,该方法包括:
S10:在待检测数据库中建立用于检测的检测表,检测表中包含有用于检测的数据。
S11:对检测表中的数据进行DML操作。
S12:判断DML操作的响应结果是否满足预设条件。
S13:如果否,则确定待检测数据库僵死。
在具体实施中,正常的数据库可以成功地对表中的数据进行的DML操作,具体地DML操作可以为增加操作、删除操作、修改操作或查询操作。但是如果数据库僵死,则对数据库中表进行DML操作时,是没有响应的,即无法对表进行更新。
为了不影响正常数据库中的其它数据,本实施例中,需要预先建立专用的检测表,而后续的检查操作也是对这个表检测表进行,因此数据库中的其它数据依然保持现有的状态。需要说明的是,检测表的类型需要根据待检测数据库的类型建立,而检测表中的数据也是可以根据需要选取,本实施例不再赘述。
在待检测数据库开始运行后,就可以执行步骤S11,需要说明的是,步骤S11可以是在待检测数据库开始运行后实时执行。虽然实时执行能够及时检测出待检测数据库的状态,但是,如果实时执行则必定增加了数据库的运行量,因此,作为优选地实施方式,对检测表中的数据进行DML操作为周期性操作。而DML操作的周期可以根据实际需求设置,例如可以设置为1s或5s。
为了让本领域技术人眼更加清楚本发明的技术方案,以下给出具体实例说明,以待检测数据库为mysql数据库为例说明。
1)建立监测表HANG_CHECK:
2)由于HA(高可用性集群,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为主服务节点及备用节点)双机软件不是通用的,因此,需要根据HA双机软件及待检测数据库的类型编写检测脚本。
可以理解的是,步骤S11可以在一个检测周期内,只执行一次,则对应的预设条件就是:在预设时间内未接收到响应结果。但是为了提高检测的精度,需要多次重复步骤S11,通过多次的响应结果综合判断。作为一种优选地实施方式,预设条件具体为:在预设时间内未接收到响应结果且未接收到响应结果的事件持续预设次数。
需要说明的是,本实施例中的预设时间以对检测表中的数据进行DML操作为开始时刻,例如在t1时刻进行了DML操作,预设时间为t2,则在t1+t2时刻没有接收到响应结果的话,则说明待检测数据库有可能僵死。重复执行步骤S11,则如果每次都接收不到响应结果的话,则说明待检测数据库僵死。具体地,预设时间为5s,预设次数为5次。可以理解的是,预设时间和预设次数均可以根据实际情况灵活调整,并不局限于上述具体数值。
本实施例提供的数据库僵死的检测方法包括:在待检测数据库中建立用于检测的检测表,检测表中包含有用于检测的数据;对检测表中的数据进行DML操作;判断DML操作的响应结果是否满足预设条件;如果否,则确定待检测数据库僵死。由此可见,该方法通过对数据库进行DML操作作为判断数据库是否僵死的依据,相对于现有技术中采用运行进程和告警日志的检测方法来说,有效性和准确性更高。另外,在待检测数据库中建立了专用的检测表,因此,不影响数据库的正常运行,且通用性较高,只需根据数据库类型和HA软件类型建立即可。
图2为本发明实施例提供的另一种数据库僵死的检测方法的流程图。如图2所示,在上述实施例的基础上,在确定待检测数据库僵死的步骤之后还包括:
S20:启动主/备切换操作或重启操作。
启动主/备切换操作或重启操作之后,双机HA软件根据设定的切换/重启策略,执行主/备切换动作,保证系统能够正常提供服务。
如图2所示,作为优选地实施方式,在对检测表中的数据进行DML操作之前还包括:
S21:检测待检测数据库所在系统的运行进程;
S22:判断运行进程中是否存在待检测数据库对应的目标进程;如果是,则进入S11,否则,进入步骤S20。
步骤S20和S21是确定待检测数据库是否处于运行状态,因为如果待检测数据库如果不处于运行状态,则即使不发生
由于数据库僵死后,对应的进程还依然存在,因此,不能通过数据库的进程来判断,但是如果系统中的运行进程中没有数据库的进程,则数据库是无法提供正常服务的,也就没有必要检测数据库是否僵死的必要。如果数据库本身没有运行,则如果继续按照步骤S11-S13执行的话,会增加运行时间,降低系统的可靠性。
上文中,对于数据库僵死的检测方法的实施例进行了详细描述,本发明在此基础上,还提供一种数据库僵死的检测装置。由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。图3为本发明实施例提供的一种数据库僵死的检测装置的结构图。该装置包括:
建立单元10,用于在待检测数据库中建立用于检测的检测表,检测表中包含有用于检测的数据;
操作单元11,用于对检测表中的数据进行DML操作;
判断单元12,用于判断DML操作的响应结果是否满足预设条件;
确定单元13,用于在判断单元的判断结果为否时,则确定待检测数据库僵死。
本实施例提供的数据库僵死的检测装置通过对数据库进行DML操作作为判断数据库是否僵死的依据,相对于现有技术中采用运行进程和告警日志的检测方法来说,有效性和准确性更高。另外,在待检测数据库中建立了专用的检测表,因此,不影响数据库的正常运行,且通用性较高,只需根据数据库类型和HA软件类型建立即可。
以上对本发明所提供的数据库僵死的检测方法及装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (9)
1.一种数据库僵死的检测方法,其特征在于,包括:
在待检测数据库中建立用于检测的检测表,所述检测表中包含有用于检测的数据;
对所述检测表中的所述数据进行DML操作;
判断所述DML操作的响应结果是否满足预设条件;
如果否,则确定所述待检测数据库僵死。
2.根据权利要求1所述的数据库僵死的检测方法,其特征在于,所述预设条件具体为:在预设时间内未接收到所述响应结果且未接收到所述响应结果的事件持续预设次数。
3.根据权利要求1所述的数据库僵死的检测方法,其特征在于,所述DML操作包括:增加操作、删除操作、修改操作或查询操作。
4.根据权利要求1至3任意一项所述的数据库僵死的检测方法,其特征在于,在所述确定所述待检测数据库僵死的步骤之后还包括:
启动主/备切换操作或重启操作。
5.根据权利要求4所述的数据库僵死的检测方法,其特征在于,在所述对所述检测表中的所述数据进行DML操作之前还包括:
检测所述待检测数据库所在系统的运行进程;
判断所述运行进程中是否存在所述待检测数据库对应的目标进程;
如果是,则进入所述对所述检测表中的所述数据进行DML操作的步骤;
如果否,则进入启动主/备切换操作或重启操作的步骤。
6.根据权利要求1至4任意一项所述的数据库僵死的检测方法,其特征在于,所述对所述检测表中的所述数据进行DML操作为周期性操作。
7.根据权利要求2所述的数据库僵死的检测方法,其特征在于,所述预设时间为5s。
8.根据权利要求2所述的数据库僵死的检测方法,其特征在于,所述预设次数为5次。
9.一种数据库僵死的检测装置,其特征在于,包括:
建立单元,用于在待检测数据库中建立用于检测的检测表,所述检测表中包含有用于检测的数据;
操作单元,用于对所述检测表中的所述数据进行DML操作;
判断单元,用于判断所述DML操作的响应结果是否满足预设条件;
确定单元,用于在所述判断单元的判断结果为否时,则确定所述待检测数据库僵死。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710271369.XA CN107092690A (zh) | 2017-04-24 | 2017-04-24 | 一种数据库僵死的检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710271369.XA CN107092690A (zh) | 2017-04-24 | 2017-04-24 | 一种数据库僵死的检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107092690A true CN107092690A (zh) | 2017-08-25 |
Family
ID=59637364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710271369.XA Pending CN107092690A (zh) | 2017-04-24 | 2017-04-24 | 一种数据库僵死的检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107092690A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271298A (zh) * | 2018-11-19 | 2019-01-25 | 武汉达梦数据库有限公司 | 一种数据库无响应故障的检测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140157048A1 (en) * | 2012-11-30 | 2014-06-05 | Hewlett-Packard Development Company, L.P. | Transactions and failure |
CN105426544A (zh) * | 2015-12-25 | 2016-03-23 | 北京奇虎科技有限公司 | 监控数据库状态的方法及装置 |
CN105955865A (zh) * | 2016-04-29 | 2016-09-21 | 浪潮(北京)电子信息产业有限公司 | 一种针对k-db数据库的监控方法及系统 |
CN106130763A (zh) * | 2016-06-24 | 2016-11-16 | 平安科技(深圳)有限公司 | 服务器集群及适用于该集群的数据库资源组切换控制方法 |
-
2017
- 2017-04-24 CN CN201710271369.XA patent/CN107092690A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140157048A1 (en) * | 2012-11-30 | 2014-06-05 | Hewlett-Packard Development Company, L.P. | Transactions and failure |
CN105426544A (zh) * | 2015-12-25 | 2016-03-23 | 北京奇虎科技有限公司 | 监控数据库状态的方法及装置 |
CN105955865A (zh) * | 2016-04-29 | 2016-09-21 | 浪潮(北京)电子信息产业有限公司 | 一种针对k-db数据库的监控方法及系统 |
CN106130763A (zh) * | 2016-06-24 | 2016-11-16 | 平安科技(深圳)有限公司 | 服务器集群及适用于该集群的数据库资源组切换控制方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271298A (zh) * | 2018-11-19 | 2019-01-25 | 武汉达梦数据库有限公司 | 一种数据库无响应故障的检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10152382B2 (en) | Method and system for monitoring virtual machine cluster | |
US10095576B2 (en) | Anomaly recovery method for virtual machine in distributed environment | |
WO2016173179A1 (zh) | 一种数据库主备切换的方法及装置 | |
US10452515B2 (en) | Automated root cause detection using data flow analysis | |
US7730029B2 (en) | System and method of fault tolerant reconciliation for control card redundancy | |
CN112214411B (zh) | 一种容灾系统测试方法、装置、设备及存储介质 | |
CN105243004A (zh) | 一种故障资源检测方法及装置 | |
WO2016183967A1 (zh) | 一种关键组件的故障告警方法、装置及大数据管理系统 | |
CN106708663A (zh) | 一种数据库自动备份方法及装置 | |
CN106130778A (zh) | 一种处理集群故障的方法及一种管理节点 | |
CN112631913A (zh) | 应用程序的运行故障监控方法、装置、设备和存储介质 | |
CN110245053A (zh) | 故障预测诊断方法及系统 | |
CN106940671B (zh) | 一种集群中任务线程运行的监控方法、装置及系统 | |
CN109144789A (zh) | 一种重启osd的方法、装置及系统 | |
CN113726553A (zh) | 一种节点故障恢复方法、装置、电子设备及可读存储介质 | |
CN111865682A (zh) | 用于处理故障的方法和装置 | |
CN105354102B (zh) | 一种文件系统维护和修复的方法和装置 | |
CN113127201A (zh) | 故障应用服务器隔离方法及装置、电子设备和存储介质 | |
CN103701651A (zh) | 一种国产环境下应用服务容灾装置和方法 | |
CN107092690A (zh) | 一种数据库僵死的检测方法及装置 | |
CN109542778A (zh) | 一种资源泄露检测的方法及装置 | |
CN117499412A (zh) | 一种基于高可用链路的集群优化处理方法及其相关设备 | |
CN111710403A (zh) | 医疗设备的监管方法、设备及可读存储介质 | |
CN105224426A (zh) | 物理主机故障检测方法、装置及虚机管理方法、系统 | |
CN111966520A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170825 |