一种对数据库无响应状态的处理方法及装置.pdf

上传人:1520****312 文档编号:1566001 上传时间:2018-06-25 格式:PDF 页数:14 大小:535.99KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110402023.1

申请日:

2011.12.06

公开号:

CN103150308A

公开日:

2013.06.12

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20111206|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

中国移动通信集团北京有限公司

发明人:

王江; 康姝婷; 金鑫; 常莎; 杨晶; 丁健; 杨海威; 姜宏岩

地址:

100007 北京市东城区东直门南大街7号

优先权:

专利代理机构:

北京同达信恒知识产权代理有限公司 11291

代理人:

郭润湘

PDF下载: PDF下载
内容摘要

本发明公开了一种对数据库无响应状态的处理方法及装置,包括:在数据库处于无响应状态时,在该数据库对应的系统全局区SGA中查看与该数据库性能相关的基表,获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息;并展示获得的会话信息及其占用的系统资源信息;以及根据展示的占用的系统资源信息,在展示的会话信息中确定被选中的至少一个会话信息;中止被选中的会话信息对应的操作系统的进程。采用本发明提出的技术方案,能够较好地提高了对数据库无响应状态的处理效率、提升用户的感知度。

权利要求书

权利要求书一种对数据库无响应状态的处理方法,其特征在于,包括:
在数据库处于无响应状态时,在该数据库对应的系统全局区SGA中查看与该数据库性能相关的基表,获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息;并
展示获得的会话信息及其占用的系统资源信息;以及
根据展示的占用的系统资源信息,在展示的会话信息中确定被选中的至少一个会话信息;
中止被选中的会话信息对应的操作系统的进程。
如权利要求1所述的方法,其特征在于,在该数据库对应的SGA中查看与该数据库性能相关的基表,包括:
创建用于访问该数据库的SGA的进程;
运行创建的进程,在该数据库对应的SGA中查看与该数据库性能相关的基表。
如权利要求2所述的方法,其特征在于,创建用于访问该数据库的SGA的进程,包括:
获得该数据库的SGA的标识符信息;
创建一个进程,并将与获得的标识符信息与该进程进行映射;
记录映射后所述标识符信息在该进程内的起始地址;
运行创建的进程,基于记录的起始地址访问所述标识符信息标识的SGA。
如权利要求2所述的方法,其特征在于,运行创建的进程,在所述SGA中查看与该数据库性能相关的基表,包括:
获得在所述SGA中与该数据库性能相关的基表的起始地址、行长度信息和该基表的总行数,所述行长度信息是指该基表的下一行的起始地址和上一行的起始地址的差值;
运行创建的进程,对总行数中的每一行分别执行:
将该行的起始地址赋值给当前行地址变量;
所述进程基于被赋值后的当前行地址变量,结合获得的行长度信息,查看所述基表,直至查询完毕该行的内容。
如权利要求4所述的方法,其特征在于,运行创建的进程,在所述SGA中查看与该数据库性能相关的基表,还包括:
获得在所述SGA中与该数据库性能相关的基表中需要访问的列的列偏移量和列长度信息;
运行创建的进程,对需要访问的列分别执行:
将获得的该列的列偏移量赋值给当前列地址变量;
所述进程基于被赋值后的当前列地址变量,结合获得的列长度信息,查看所述基表,直至查询完毕该列的内容。
如权利要求1所述的方法,其特征在于,展示获得的会话信息及其占用的系统资源信息,包括:
将获得的会话信息及其占用的系统资源信息,展示在与该数据库性能相关的基表对应的动态视图上。
一种对数据库无响应状态的处理装置,其特征在于,包括:
信息获得单元,用于在数据库处于无响应状态时,在该数据库对应的系统全局区SGA中查看与该数据库性能相关的基表,获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息;
展示单元,用于展示信息获得单元获得的会话信息及其占用的系统资源信息;
确定单元,用于根据展示单元展示的占用的系统资源信息,在展示的会话信息中确定被选中的至少一个会话信息;
进程中止单元,用于中止确定单元确定的被选中的会话信息对应的操作系统的进程。
如权利要求7所述的装置,其特征在于,所述信息获得单元,包括:
进程创建子单元,用于创建用于访问该数据库的SGA的进程;
基表查看子单元,用于运行进程创建子单元创建的进程,在该数据库对应的SGA中查看与该数据库性能相关的基表。
如权利要求8所述的装置,其特征在于,所述进程创建子单元,具体用于获得该数据库的SGA的标识符信息;创建一个进程,并将与获得的标识符信息与该进程进行映射;记录映射后所述标识符信息在该进程内的起始地址;运行创建的进程,基于记录的起始地址访问所述标识符信息标识的SGA。
如权利要求8所述的装置,其特征在于,所述基表查看子单元,具体用于获得在所述SGA中与该数据库性能相关的基表的起始地址、行长度信息和该基表的总行数,所述行长度信息是指该基表的下一行的起始地址和上一行的起始地址的差值;运行进程创建子单元创建的进程,对总行数中的每一行分别执行:将该行的起始地址赋值给当前行地址变量;所述进程基于被赋值后的当前行地址变量,结合获得的行长度信息,查看所述基表,直至查询完毕该行的内容。
如权利要求10所述的装置,其特征在于,所述基表查看子单元,还用于获得在所述SGA中与该数据库性能相关的基表中需要访问的列的列偏移量和列长度信息;运行进程创建子单元创建的进程,对需要访问的列分别执行:将获得的该列的列偏移量赋值给当前列地址变量;所述进程基于被赋值后的当前列地址变量,结合获得的列长度信息,查看所述基表,直至查询完毕该列的内容。
如权利要求7所述的装置,其特征在于,所述展示单元,具体用于将信息获得单元获得的会话信息及其占用的系统资源信息,展示在与该数据库性能相关的基表对应的动态视图上。

说明书

说明书一种对数据库无响应状态的处理方法及装置
技术领域
本发明涉及数据库技术领域,尤其是涉及一种对数据库无响应状态的处理方法及装置。
背景技术
数据库是指长期储存在计算机内部的、有组织的、可共享的数据的集合,广泛应用于计算机、网络通信等领域为各种用户提供数据共享。数据库在运行过程中,有时会因为某种原因处于无响应状态。数据库无响应,也称为数据库“hang”住,是一种常见的、比较严重的数据库问题,导致数据库出现无响应状态的主要原因有以下几种:
第一种:由于主机资源消耗过高,严重超过主机的承受能力而导致数据库无响应。
第二种:数据库中的所有进程均在等待某个资源或者某个事件,而该资源被某用户长时间持有,没有释放而导致数据库无响应。
第三种,其他原因引起的数据库无响应,例如数据库程序缺陷或者系统软、硬件异常等。
由于数据库是业务系统的核心,当数据库处于无响应状态时,会导致几乎所有的业务均无法办理,将严重影响客户的感知度。当数据库处于无响应的状态时,现有技术中通常采用的方法是远程登录到存储数据库的主机,连接到数据库后需要做一些初始化的操作,例如设定操作环境之类的操作,然后执行登录数据库的操作。数据库登录成功后,通过获取动态视图来查看数据库中的各种会话的资源消耗或者是“锁”相关信息,然后关掉占用系统资源比较大的会话,从而使数据库恢复至正常运行状态。其中,占有系统资源比较大的会话包括占用CPU处理资源、占用内存资源、占用IO处理资源以及持有锁的会话等。但是当主机资源消耗过高或者数据库中有比较多的会话被锁住时,由于连接到数据库后的初始化操作无法执行,此时会出现不能登录数据库的情况或者需要较长的时间才可以登录数据库,并且在登录数据库后可能会无法进行任何操作的情况,这样,可能导致无法收集到数据库处于无响应状态的相关信息,无法对引起数据库处于无响应状态的相关问题进行处理来解决数据库无响应的问题,此时只能采用将存储数据库的主机重新启动或者将该数据库重新启动的方式进行处理,但是存储数据库的主机重新启动占用的时间比较长,并且在重启的时间范围内,很多业务完全无法办理。
因此,上述现有技术中通过远程登录数据库的方法来解决数据库无响应的问题,占用时间比较长、处理效率比较低并且严重影响用户的感知。
发明内容
本发明实施例提供一种对数据库无响应状态的处理方法及装置,较好地提高了对数据库无响应状态的处理效率、提升用户的感知度。
本发明实施例提出的技术方案如下:
一种对数据库无响应状态的处理方法,包括:在数据库处于无响应状态时,在该数据库对应的系统全局区(SGA,System Global Area)中查看与该数据库性能相关的基表,获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息;并展示获得的会话信息及其占用的系统资源信息;以及根据展示的占用的系统资源信息,在展示的会话信息中确定被选中的至少一个会话信息;中止被选中的会话信息对应的操作系统的进程。
一种对数据库无响应状态的处理装置,包括:信息获得单元,用于在数据库处于无响应状态时,在该数据库对应的系统全局区SGA中查看与该数据库性能相关的基表,获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息;展示单元,用于展示信息获得单元获得的会话信息及其占用的系统资源信息;确定单元,用于根据展示单元展示的占用的系统资源信息,在展示的会话信息中确定被选中的至少一个会话信息;进程中止单元,用于中止被确定单元选中的会话信息对应的操作系统的进程。
本发明实施例提出的对数据库无响应状态的处理方案,在数据库处于无响应状态时,通过在与该数据库对应的SGA中查看与该数据库性能相关的基表,从而获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息,并展示获得的会话信息及其占用的系统资源信息以及根据展示的占用的系统资源信息,在展示的会话信息中确定被选中的至少一个会话信息,然后中止与被选中的会话信息对应的操作系统的进程,从而不再需要直接登录数据库,而是通过查看SGA中的与数据库性能相关的基表的内容,根据查看的内容对基表中的一部分会话信息对应的进程进行中止操作,从而较好地提高了对数据库无响应状态的处理效率、提升了用户的感知度。
附图说明
图1为现有技术中,系统全局区SGA结构组成图;
图2为本发明实施例中,提出的对数据库无响应状态的处理方法流程图;
图3为本发明实施例中,提出的形成知识配置库中相关信息的方法对应图;
图4为本发明实施例中,提出的访问SGA中的基表的方法流程图;
图5为本发明实施例中,提出的访问SGA中的X$基表的方法流程图;
图6为本发明实施例中,提出的对数据库无响应状态的处理装置结构图。
具体实施方式
针对现有技术中存在的对数据库处于无响应状态时,处理效率比较低且影响用户的感知度的问题,本发明实施例这里提出了一种对数据库无响应状态的处理方法,在数据库处于无响应状态时,通过在与该数据库对应的SGA中查看与该数据库性能相关的基表,从而获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息,并展示获得的会话信息及其占用的系统资源信息以及根据展示的占用的系统资源信息,使得网管人员可以根据正在运行的使用该数据库的会话占用的系统资源信息情况,在展示的会话信息中选中至少一个会话信息,然后中止与被选中的会话信息对应的操作系统的进程,从而在数据库处于无响应状态时,不需要再登录数据库,而是通过查看SGA中固定区域(Fixed area)中的与数据库性能相关的基表的内容,根据查看的内容对基表中的一部分会话信息对应的进程进行中止操作,从而较好地提高了对数据库无响应状态的处理效率、提升了用户的感知度。
需要说明的是,本发明实施例中涉及的SGA,是一组共享的内存结构,存储了与数据库相关的数据和控制文件信息,如果有多个用户同时连接到数据库,他们会共享这一区域,因此SGA也称之为共享内存,是一种由操作系统提供的进程间通信的机制,它允许主机中存储的多个数据库中的两个或多个进程共享一给定的存储区。其结构组成如图1所示,位于操作系统内存101中的SGA102,包括固定区域、数据缓冲区、共享池和日志缓冲区。其中,SGA中的固定区域中存储着至少一个与数据库性能相关的基表,这些基表可以但不限于以类似C语言结构(struct)的形式存储在SGA中的固定区域。每个内存中可以存在多个SGA,所有的SGA在系统内部统一编号,均有唯一的标识信息ID。当其中一个SGA由某个进程创建以后,其他的进程只需要做一个SGA起始地址信息和标识信息的映射,就可以访问这个SGA中存储的数据。
下面将结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细地阐述。
本发明实施例这里提出一种对数据库无响应状态的处理方法,如图2所示,其方法流程如下:
步骤101,在数据库处于正常运行状态时,获得读取SGA时所需要的相关信息,根据获得的相关信息形成配置知识库。
其中,形成的配置知识库中存储的相关信息可以但不限于包括要读取的SGA的起始地址信息、对应该SGA的标识符信息、动态视图和SGA中存储的基表的对应关系、基表的起始内存地址、基表的行总长度、基表的总行数以及基表每个字段的偏移量等信息。SGA中有很多不同功能的基表,不同的基表存储不同的内容,配置知识库中可以根据获得的相关基表的信息,任意存储具有各种不同功能的该些基表相关信息。较佳地,本发明实施例这里,以在配置知识库中存储与数据库性能相关的X$基表的相关信息为例,例如可以包括动态视图和X$基表的对应关系、X$基表的起始内存地址、X$基表的行总长度、X$基表的总行数、X$基表的列总长度、X$基表的总列数以及每个字段的偏移量(包括列偏移量和/或行偏移量)等信息。如图3所示,为本发明实施例中提出的获取配置库中相关信息的方法对照图,其中,各种信息的获得可以但不限于采用下述方法来实现:
1)获得SGA的起始地址信息:可以通过查询x$ksmmem基表的addr列来获得SGA的起始地址信息,较佳地,可以通过指令select addr from x$ksmmem)来实现。
2)获得SGA的标识符信息:可以通过操作系统命令ipc获得SGA的标识符信息,较佳地,可以通过指令ipcs‑a来实现。
3)获得动态视图和基表的对应关系:本发明实施例这里以获得V$视图和X$基表的对应关系为例,例如可以通过查询动态视图V$FIXED_VIEW_DEFINITION的方式来实现获得V$视图和X$基表的对应关系,较佳地,可以通过指令select VIEW_DEFINITION from V$FIXED_VIEW_DEFINITION来实现。
4)获得X$基表的起始内存地址x_addr:可以通过查询x$基表的addr列来实现获得X$基表的起始内存地址,较佳地,可以采用指令select a.addr from X$BASE where rownum<2来实现。
5)获得X$基表的行总长度信息rowsize:可以通过X$基表的下一行的起始地址与上一行的起始地址的差值来获得X$基表的行总长度信息,较佳地,可以通过指令select row2.addr‑row1.addr from X$BASE来实现。
6)获得x$基表的总行数信息rownum:可以通过调用count函数直接查询x$基表的总行数,较佳地,可以通过指令select count(*)from x$base来实现。
7)获得x$基表每个字段(列)的偏移量offset:这里以获得x$基表的列偏移量为例,可以通过查询x$基表的kqfcooff列来获得x$基表的列偏移量信息,较佳地,可以通过指令select c.kqfcooff offset from x$kqfco来实现。
步骤102,在数据库出现性能问题时,登录用于存储该数据库的主机。其中,登录用于存储该数据库的主机,可以直接在本地登录,也可以通过远程登录的方式来实现。而用于存储数据库的主机,可以只用于存储一个数据库,也可以用于存储多个数据库。
步骤103,在登录主机后,判断数据库是否处于无响应状态,如果判断结果为是,则执行步骤104,反之,执行步骤109。其中,判断数据库是否处于无响应状态,可以但不限于采用通过尝试登录数据库的方法来实现,例如,在数据库不能登录或者登录数据库占用的时间比较长、且登录数据库后响应比较慢的情况下,则确定该数据库处于无响应状态。
步骤104,在数据库处于无响应状态时,在该数据库对应的SGA中查看与该数据库性能相关的基表,获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息。
其中,如图4所示,步骤104的具体实施方式如下:
步骤S1,创建用于访问该数据库的SGA的进程。
具体地,在步骤101中形成的配置知识库中获得该数据库的SGA的标识符信息,然后创建一个进程,并将与获得的标识符信息与该进程进行映射,记录映射后所述标识符信息在该进程内的起始地址,然后运行创建的进程,基于记录的起始地址访问所述标识符信息标识的SGA。
步骤S2,运行步骤S1创建的进程,在该数据库对应的SGA中查看与该数据库性能相关的基表。
具体地,在该数据库对应的SGA中查看与该数据库性能相关的基表可以但不限于采用下述两种方式:
第一种方式:按照行的方式查看:获得在SGA中与该数据库性能相关的基表的起始地址、行长度信息和该基表的总行数,所述行长度信息是指该基表的下一行的起始地址和上一行的起始地址的差值。运行创建的进程,对总行数中的每一行分别执行:
将该行的起始地址赋值给当前行地址变量;
所述进程基于被赋值后的当前行地址变量,结合获得的行长度信息,查看所述基表,直至查询完毕该行的内容。
其中,可以在步骤101中形成的配置知识库中获得与该数据库性能相关的基表的起始地址、行长度信息和该基表的总行数信息赋值给当前地址变量,也可以采用预先设定的方式赋值给当前地址变量。
第二种方式,按照列的方式查看:获得在所SGA中与该数据库性能相关的基表中需要访问的列的列偏移量和列长度信息,运行创建的进程,对需要访问的列分别执行:
将获得的该列的列偏移量赋值给当前列地址变量;所述进程基于被赋值后的当前列地址变量,结合获得的列长度信息,查看所述基表,直至查询完毕该列的内容。
其中,可以在步骤101中形成的配置库中获得与该数据库性能相关的基表的列偏移量、列长度信息。
第三种方式,综合采用上述两种方式,在SGA中查看与该数据库性能相关的基表。
一种较佳地实现方式,如图5所示,本发明实施例这里以SGA中的与数据库性能的X$基表的内容为例,采用上述第三种综合使用查看行信息和列信息的方式详细阐述步骤104的具体实施过程,具体方法如下:
步骤S21,在配置知识库中获得SGA的标识符信息,然后创建一个进程,将获得的SGA的标识符信息与创建的进程进行映射,并记录映射后该标识符信息在创建的进程内的起始地址信息。其中,该标识符信息在创建的进程内的起始地址信息也可以在配置知识库中获得。具体方法在上述步骤101中已经详细阐述,这里不再赘述。
步骤S22,在配置知识库中获得需要读取的X$基表的相关信息,如起始地址信息、行长度信息、该基表的总行数以及列偏移量信息,根据获得的该X$基表的相关信息,读取X$基表。
步骤S23,将获得的该X$基表的起始地址信息赋值给当前地址变量,基于被赋值后的当前地址变量,列偏移量信息查看对应的X$基表的某一行的各列,然后结合获得的行长度信息,查看该X$基表的下一行的各列。其中当前地址变量可以用current_addr标识,例如获得的起始地址信息为0001H,列偏移量为03H,则首先将0001H赋值给current_addr,即current_addr=0001H。其中前面两位00代表该X$基表的行起始地址,01代表该X$基表的列起始地址,即从该X$基表的第0行第1列开始查看,查看第一列之后,根据获得的列偏移量03H,查看该X$基表中地址信息是0004H中的内容,即查看该X$基表第0行第4列中的内容。
较佳地,列偏移量可以只有一个数值,也可以有不同的数值。可以按照一定的规律设置,例如可以根据等差数列的方式设置,也可以根据等比数列的方式设置。
一种较佳地实现方式,本发明实施例这里采用预先设置列偏移量的数值,有目的的访问X$基表中的每一行的某几列。例如,可以在访问第0行第1列之后,访问第0行第4列,再访问第0行第9列,相应地,此时列偏移量为05H,即此时被赋值的当前地址变量为:current_addr=0004H+0005H=0009H。
步骤S24,根据当前地址变量的具体赋值,判断该X$基表是否查看完毕,如果查看完毕,则结束对X$基表的查看,反之,执行步骤S25。
具体地,可以根据获得的X$基表的总行数信息或者总列数信息,判断该X$基表是否查看完毕。较佳地,本发明实施例这里根据获得的X$基表的总行数信息确定该X$基表是否查看完毕。其中,在当前地址变量的具体被赋值的地址信息大于该X$基表的最后一行的起始地址时,确定X$基表查看完毕,反之,则继续将获得的行长度、列偏移量等信息赋值给当前地址变量,继续查看该X$基表。例如,要查看的X$基表的总行数为18行,其最后一行的起始地址为18H,当前地址变量的被赋值的行地址信息为19H>18H,则结束对该X$基表的查看。
步骤S25,根据获得的行长度信息和列偏移量信息进行累加,返回执行步骤S23,继续查看X$基表。
步骤105,根据获得的动态视图和查看的基表的对应关系,将通过查看基表获得的会话信息及其占用的系统资源信息,展示在与基表对应的动态视图上。
其中,在动态视图上具体的展示方式可以但不限于采用下述表1的方式:
表1
  会话信息  用户名 CPU使用率%  内存占用K  I/O占用  锁相关/S  AA  123 50  1,3456  0  8  BB  456 1  1,6789  0  345  ……  …… ……  ……  ……  45  NN  XXX 30  5,5555  0  0
步骤106,用户根据在动态视图上展示的与各会话信息对应的占用系统资源信息,选择至少一个需要占用系统资源较多的会话信息。例如,上述表1中,可以选择AA和NN两个CPU使用率较高的会话信息。
步骤107,查询选中的会话信息对应的操作系统的进程,并中止该进程。
步骤108,在步骤107执行结束后,判断数据库是否恢复正常,如果恢复正常运行状态,则结束所有操作,反之,继续返回执行步骤103。
步骤109,如果步骤103中判断出数据库能够登录,则直接登录数据库。其中,用户可以在本地直接登录数据库,也可以采用远程登录数据库的方式。
步骤110,登录数据库之后,通过查看动态视图,确定占用系统资源较多的会话信息,根据确定出的会话信息,执行步骤107。
本发明实施例这里提出的对数据库无响应状态的处理方法,在数据库处于无响应状态时,不需要通过重新启动用于存储该数据库的主机,而是直接通过在与该数据库对应的SGA中读取与该数据库性能相关的基表内容,从而获得占用系统资源较多的会话信息,然后有选择性地中止至少一个占用系统资源较多的会话信息,使数据库恢复正常运行状态,较好地提高了对数据库无响应状态的处理效率,进而提升用户的感知度。
相应地,本发明实施例还提出一种对数据库无响应状态的处理装置,如图6所示,包括:
信息获得单元501,用于在数据库处于无响应状态时,在该数据库对应的系统全局区SGA中查看与该数据库性能相关的基表,获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息。
其中,信息获得单元501,具体包括:进程创建子单元511,用于创建用于访问该数据库的SGA的进程。
具体地,进程创建子单元511具体用于获得该数据库的SGA的标识符信息;创建一个进程,并将与获得的标识符信息与该进程进行映射;记录映射后所述标识符信息在该进程内的起始地址;运行创建的进程,基于记录的起始地址访问所述标识符信息标识的SGA。
基表查看子单元512,用于运行进程创建子单元511创建的进程,在该数据库对应的SGA中查看与该数据库性能相关的基表。
具体地,基表查看子单元512,具体用于获得在所述SGA中与该数据库性能相关的基表的起始地址、行长度信息和该基表的总行数,所述行长度信息是指该基表的下一行的起始地址和上一行的起始地址的差值;运行进程创建子单元创建的进程,对总行数中的每一行分别执行:将该行的起始地址赋值给当前行地址变量;所述进程基于被赋值后的当前行地址变量,结合获得的行长度信息,查看所述基表,直至查询完毕该行的内容。
具体地,上述基表查看子单元511,还用于获得在所述SGA中与该数据库性能相关的基表中需要访问的列的列偏移量和列长度信息;运行进程创建子单元创建的进程,对需要访问的列分别执行:将获得的该列的列偏移量赋值给当前列地址变量;所述进程基于被赋值后的当前列地址变量,结合获得的列长度信息,查看所述基表,直至查询完毕该列的内容。
展示单元502,用于展示信息获得单元501获得的会话信息及其占用的系统资源信息。
具体地,展示单元502具体用于将信息获得单元501获得的会话信息及其占用的系统资源信息,展示在与该数据库性能相关的基表对应的动态视图上。
确定单元503,用于根据展示单元502展示的占用的系统资源信息,在展示的会话信息中确定被选中的至少一个会话信息。
进程中止单元504,用于中止确定单元503确定的被选中的会话信息对应的操作系统的进程。
应当理解,上述提出的对数据库无响应状态的处理装置包括的单元在实际应用中,可以进行上述单元的叠加或拆分。并且该装置所实现的功能与上述对数据库无响应状态的处理方法流程一一对应,对于该装置所实现的更为详细的处理流程,在上述方法实施例中已做详细描述,此处不再详细描述。,
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

一种对数据库无响应状态的处理方法及装置.pdf_第1页
第1页 / 共14页
一种对数据库无响应状态的处理方法及装置.pdf_第2页
第2页 / 共14页
一种对数据库无响应状态的处理方法及装置.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《一种对数据库无响应状态的处理方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种对数据库无响应状态的处理方法及装置.pdf(14页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103150308 A(43)申请公布日 2013.06.12CN103150308A*CN103150308A*(21)申请号 201110402023.1(22)申请日 2011.12.06G06F 17/30(2006.01)(71)申请人中国移动通信集团北京有限公司地址 100007 北京市东城区东直门南大街7号(72)发明人王江 康姝婷 金鑫 常莎 杨晶丁健 杨海威 姜宏岩(74)专利代理机构北京同达信恒知识产权代理有限公司 11291代理人郭润湘(54) 发明名称一种对数据库无响应状态的处理方法及装置(57) 摘要本发明公开了一种对数据库无响应状态的处理方。

2、法及装置,包括:在数据库处于无响应状态时,在该数据库对应的系统全局区SGA中查看与该数据库性能相关的基表,获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息;并展示获得的会话信息及其占用的系统资源信息;以及根据展示的占用的系统资源信息,在展示的会话信息中确定被选中的至少一个会话信息;中止被选中的会话信息对应的操作系统的进程。采用本发明提出的技术方案,能够较好地提高了对数据库无响应状态的处理效率、提升用户的感知度。(51)Int.Cl.权利要求书2页 说明书7页 附图4页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书7页 附图4页(10)申请公布。

3、号 CN 103150308 ACN 103150308 A1/2页21.一种对数据库无响应状态的处理方法,其特征在于,包括:在数据库处于无响应状态时,在该数据库对应的系统全局区SGA中查看与该数据库性能相关的基表,获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息;并展示获得的会话信息及其占用的系统资源信息;以及根据展示的占用的系统资源信息,在展示的会话信息中确定被选中的至少一个会话信息;中止被选中的会话信息对应的操作系统的进程。2.如权利要求1所述的方法,其特征在于,在该数据库对应的SGA中查看与该数据库性能相关的基表,包括:创建用于访问该数据库的SGA的进程;运行创建的。

4、进程,在该数据库对应的SGA中查看与该数据库性能相关的基表。3.如权利要求2所述的方法,其特征在于,创建用于访问该数据库的SGA的进程,包括:获得该数据库的SGA的标识符信息;创建一个进程,并将与获得的标识符信息与该进程进行映射;记录映射后所述标识符信息在该进程内的起始地址;运行创建的进程,基于记录的起始地址访问所述标识符信息标识的SGA。4.如权利要求2所述的方法,其特征在于,运行创建的进程,在所述SGA中查看与该数据库性能相关的基表,包括:获得在所述SGA中与该数据库性能相关的基表的起始地址、行长度信息和该基表的总行数,所述行长度信息是指该基表的下一行的起始地址和上一行的起始地址的差值;运。

5、行创建的进程,对总行数中的每一行分别执行:将该行的起始地址赋值给当前行地址变量;所述进程基于被赋值后的当前行地址变量,结合获得的行长度信息,查看所述基表,直至查询完毕该行的内容。5.如权利要求4所述的方法,其特征在于,运行创建的进程,在所述SGA中查看与该数据库性能相关的基表,还包括:获得在所述SGA中与该数据库性能相关的基表中需要访问的列的列偏移量和列长度信息;运行创建的进程,对需要访问的列分别执行:将获得的该列的列偏移量赋值给当前列地址变量;所述进程基于被赋值后的当前列地址变量,结合获得的列长度信息,查看所述基表,直至查询完毕该列的内容。6.如权利要求1所述的方法,其特征在于,展示获得的会。

6、话信息及其占用的系统资源信息,包括:将获得的会话信息及其占用的系统资源信息,展示在与该数据库性能相关的基表对应的动态视图上。7.一种对数据库无响应状态的处理装置,其特征在于,包括:权 利 要 求 书CN 103150308 A2/2页3信息获得单元,用于在数据库处于无响应状态时,在该数据库对应的系统全局区SGA中查看与该数据库性能相关的基表,获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息;展示单元,用于展示信息获得单元获得的会话信息及其占用的系统资源信息;确定单元,用于根据展示单元展示的占用的系统资源信息,在展示的会话信息中确定被选中的至少一个会话信息;进程中止单元,用于。

7、中止确定单元确定的被选中的会话信息对应的操作系统的进程。8.如权利要求7所述的装置,其特征在于,所述信息获得单元,包括:进程创建子单元,用于创建用于访问该数据库的SGA的进程;基表查看子单元,用于运行进程创建子单元创建的进程,在该数据库对应的SGA中查看与该数据库性能相关的基表。9.如权利要求8所述的装置,其特征在于,所述进程创建子单元,具体用于获得该数据库的SGA的标识符信息;创建一个进程,并将与获得的标识符信息与该进程进行映射;记录映射后所述标识符信息在该进程内的起始地址;运行创建的进程,基于记录的起始地址访问所述标识符信息标识的SGA。10.如权利要求8所述的装置,其特征在于,所述基表查。

8、看子单元,具体用于获得在所述SGA中与该数据库性能相关的基表的起始地址、行长度信息和该基表的总行数,所述行长度信息是指该基表的下一行的起始地址和上一行的起始地址的差值;运行进程创建子单元创建的进程,对总行数中的每一行分别执行:将该行的起始地址赋值给当前行地址变量;所述进程基于被赋值后的当前行地址变量,结合获得的行长度信息,查看所述基表,直至查询完毕该行的内容。11.如权利要求10所述的装置,其特征在于,所述基表查看子单元,还用于获得在所述SGA中与该数据库性能相关的基表中需要访问的列的列偏移量和列长度信息;运行进程创建子单元创建的进程,对需要访问的列分别执行:将获得的该列的列偏移量赋值给当前列。

9、地址变量;所述进程基于被赋值后的当前列地址变量,结合获得的列长度信息,查看所述基表,直至查询完毕该列的内容。12.如权利要求7所述的装置,其特征在于,所述展示单元,具体用于将信息获得单元获得的会话信息及其占用的系统资源信息,展示在与该数据库性能相关的基表对应的动态视图上。权 利 要 求 书CN 103150308 A1/7页4一种对数据库无响应状态的处理方法及装置技术领域0001 本发明涉及数据库技术领域,尤其是涉及一种对数据库无响应状态的处理方法及装置。背景技术0002 数据库是指长期储存在计算机内部的、有组织的、可共享的数据的集合,广泛应用于计算机、网络通信等领域为各种用户提供数据共享。数。

10、据库在运行过程中,有时会因为某种原因处于无响应状态。数据库无响应,也称为数据库“hang”住,是一种常见的、比较严重的数据库问题,导致数据库出现无响应状态的主要原因有以下几种:0003 第一种:由于主机资源消耗过高,严重超过主机的承受能力而导致数据库无响应。0004 第二种:数据库中的所有进程均在等待某个资源或者某个事件,而该资源被某用户长时间持有,没有释放而导致数据库无响应。0005 第三种,其他原因引起的数据库无响应,例如数据库程序缺陷或者系统软、硬件异常等。0006 由于数据库是业务系统的核心,当数据库处于无响应状态时,会导致几乎所有的业务均无法办理,将严重影响客户的感知度。当数据库处于。

11、无响应的状态时,现有技术中通常采用的方法是远程登录到存储数据库的主机,连接到数据库后需要做一些初始化的操作,例如设定操作环境之类的操作,然后执行登录数据库的操作。数据库登录成功后,通过获取动态视图来查看数据库中的各种会话的资源消耗或者是“锁”相关信息,然后关掉占用系统资源比较大的会话,从而使数据库恢复至正常运行状态。其中,占有系统资源比较大的会话包括占用CPU处理资源、占用内存资源、占用IO处理资源以及持有锁的会话等。但是当主机资源消耗过高或者数据库中有比较多的会话被锁住时,由于连接到数据库后的初始化操作无法执行,此时会出现不能登录数据库的情况或者需要较长的时间才可以登录数据库,并且在登录数据。

12、库后可能会无法进行任何操作的情况,这样,可能导致无法收集到数据库处于无响应状态的相关信息,无法对引起数据库处于无响应状态的相关问题进行处理来解决数据库无响应的问题,此时只能采用将存储数据库的主机重新启动或者将该数据库重新启动的方式进行处理,但是存储数据库的主机重新启动占用的时间比较长,并且在重启的时间范围内,很多业务完全无法办理。0007 因此,上述现有技术中通过远程登录数据库的方法来解决数据库无响应的问题,占用时间比较长、处理效率比较低并且严重影响用户的感知。发明内容0008 本发明实施例提供一种对数据库无响应状态的处理方法及装置,较好地提高了对数据库无响应状态的处理效率、提升用户的感知度。。

13、0009 本发明实施例提出的技术方案如下:0010 一种对数据库无响应状态的处理方法,包括:在数据库处于无响应状态时,在该数说 明 书CN 103150308 A2/7页5据库对应的系统全局区(SGA,System Global Area)中查看与该数据库性能相关的基表,获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息;并展示获得的会话信息及其占用的系统资源信息;以及根据展示的占用的系统资源信息,在展示的会话信息中确定被选中的至少一个会话信息;中止被选中的会话信息对应的操作系统的进程。0011 一种对数据库无响应状态的处理装置,包括:信息获得单元,用于在数据库处于无响应状态。

14、时,在该数据库对应的系统全局区SGA中查看与该数据库性能相关的基表,获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息;展示单元,用于展示信息获得单元获得的会话信息及其占用的系统资源信息;确定单元,用于根据展示单元展示的占用的系统资源信息,在展示的会话信息中确定被选中的至少一个会话信息;进程中止单元,用于中止被确定单元选中的会话信息对应的操作系统的进程。0012 本发明实施例提出的对数据库无响应状态的处理方案,在数据库处于无响应状态时,通过在与该数据库对应的SGA中查看与该数据库性能相关的基表,从而获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息,并展示获。

15、得的会话信息及其占用的系统资源信息以及根据展示的占用的系统资源信息,在展示的会话信息中确定被选中的至少一个会话信息,然后中止与被选中的会话信息对应的操作系统的进程,从而不再需要直接登录数据库,而是通过查看SGA中的与数据库性能相关的基表的内容,根据查看的内容对基表中的一部分会话信息对应的进程进行中止操作,从而较好地提高了对数据库无响应状态的处理效率、提升了用户的感知度。附图说明0013 图1为现有技术中,系统全局区SGA结构组成图;0014 图2为本发明实施例中,提出的对数据库无响应状态的处理方法流程图;0015 图3为本发明实施例中,提出的形成知识配置库中相关信息的方法对应图;0016 图4。

16、为本发明实施例中,提出的访问SGA中的基表的方法流程图;0017 图5为本发明实施例中,提出的访问SGA中的X$基表的方法流程图;0018 图6为本发明实施例中,提出的对数据库无响应状态的处理装置结构图。具体实施方式0019 针对现有技术中存在的对数据库处于无响应状态时,处理效率比较低且影响用户的感知度的问题,本发明实施例这里提出了一种对数据库无响应状态的处理方法,在数据库处于无响应状态时,通过在与该数据库对应的SGA中查看与该数据库性能相关的基表,从而获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息,并展示获得的会话信息及其占用的系统资源信息以及根据展示的占用的系统资源信。

17、息,使得网管人员可以根据正在运行的使用该数据库的会话占用的系统资源信息情况,在展示的会话信息中选中至少一个会话信息,然后中止与被选中的会话信息对应的操作系统的进程,从而在数据库处于无响应状态时,不需要再登录数据库,而是通过查看SGA中固定区域(Fixed area)中的与数据库性能相关的基表的内容,根据查看的内容对基表中的一部分会话信息对应的进程进行中止操作,从而较好地提高了对数据库无响应状态的处理效率、提说 明 书CN 103150308 A3/7页6升了用户的感知度。0020 需要说明的是,本发明实施例中涉及的SGA,是一组共享的内存结构,存储了与数据库相关的数据和控制文件信息,如果有多个。

18、用户同时连接到数据库,他们会共享这一区域,因此SGA也称之为共享内存,是一种由操作系统提供的进程间通信的机制,它允许主机中存储的多个数据库中的两个或多个进程共享一给定的存储区。其结构组成如图1所示,位于操作系统内存101中的SGA102,包括固定区域、数据缓冲区、共享池和日志缓冲区。其中,SGA中的固定区域中存储着至少一个与数据库性能相关的基表,这些基表可以但不限于以类似C语言结构(struct)的形式存储在SGA中的固定区域。每个内存中可以存在多个SGA,所有的SGA在系统内部统一编号,均有唯一的标识信息ID。当其中一个SGA由某个进程创建以后,其他的进程只需要做一个SGA起始地址信息和标识。

19、信息的映射,就可以访问这个SGA中存储的数据。0021 下面将结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细地阐述。0022 本发明实施例这里提出一种对数据库无响应状态的处理方法,如图2所示,其方法流程如下:0023 步骤101,在数据库处于正常运行状态时,获得读取SGA时所需要的相关信息,根据获得的相关信息形成配置知识库。0024 其中,形成的配置知识库中存储的相关信息可以但不限于包括要读取的SGA的起始地址信息、对应该SGA的标识符信息、动态视图和SGA中存储的基表的对应关系、基表的起始内存地址、基表的行总长度、基表的总行数以及基表每个字段。

20、的偏移量等信息。SGA中有很多不同功能的基表,不同的基表存储不同的内容,配置知识库中可以根据获得的相关基表的信息,任意存储具有各种不同功能的该些基表相关信息。较佳地,本发明实施例这里,以在配置知识库中存储与数据库性能相关的X$基表的相关信息为例,例如可以包括动态视图和X$基表的对应关系、X$基表的起始内存地址、X$基表的行总长度、X$基表的总行数、X$基表的列总长度、X$基表的总列数以及每个字段的偏移量(包括列偏移量和/或行偏移量)等信息。如图3所示,为本发明实施例中提出的获取配置库中相关信息的方法对照图,其中,各种信息的获得可以但不限于采用下述方法来实现:0025 1)获得SGA的起始地址信。

21、息:可以通过查询x$ksmmem基表的addr列来获得SGA的起始地址信息,较佳地,可以通过指令select addr from x$ksmmem)来实现。0026 2)获得SGA的标识符信息:可以通过操作系统命令ipc获得SGA的标识符信息,较佳地,可以通过指令ipcs-a来实现。0027 3)获得动态视图和基表的对应关系:本发明实施例这里以获得V$视图和X$基表的对应关系为例,例如可以通过查询动态视图V$FIXED_VIEW_DEFINITION的方式来实现获得V$视图和X$基表的对应关系,较佳地,可以通过指令select VIEW_DEFINITION from V$FIXED_VIEW。

22、_DEFINITION来实现。0028 4)获得X$基表的起始内存地址x_addr:可以通过查询x$基表的addr列来实现获得X$基表的起始内存地址,较佳地,可以采用指令select a.addr from X$BASE where rownum2来实现。0029 5)获得X$基表的行总长度信息rowsize:可以通过X$基表的下一行的起始地址说 明 书CN 103150308 A4/7页7与上一行的起始地址的差值来获得X$基表的行总长度信息,较佳地,可以通过指令select row2.addr-row1.addr from X$BASE来实现。0030 6)获得x$基表的总行数信息rownu。

23、m:可以通过调用count函数直接查询x$基表的总行数,较佳地,可以通过指令select count(*)from x$base来实现。0031 7)获得x$基表每个字段(列)的偏移量offset:这里以获得x$基表的列偏移量为例,可以通过查询x$基表的kqfcooff列来获得x$基表的列偏移量信息,较佳地,可以通过指令select c.kqfcooff offset from x$kqfco来实现。0032 步骤102,在数据库出现性能问题时,登录用于存储该数据库的主机。其中,登录用于存储该数据库的主机,可以直接在本地登录,也可以通过远程登录的方式来实现。而用于存储数据库的主机,可以只用于存。

24、储一个数据库,也可以用于存储多个数据库。0033 步骤103,在登录主机后,判断数据库是否处于无响应状态,如果判断结果为是,则执行步骤104,反之,执行步骤109。其中,判断数据库是否处于无响应状态,可以但不限于采用通过尝试登录数据库的方法来实现,例如,在数据库不能登录或者登录数据库占用的时间比较长、且登录数据库后响应比较慢的情况下,则确定该数据库处于无响应状态。0034 步骤104,在数据库处于无响应状态时,在该数据库对应的SGA中查看与该数据库性能相关的基表,获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息。0035 其中,如图4所示,步骤104的具体实施方式如下:00。

25、36 步骤S1,创建用于访问该数据库的SGA的进程。0037 具体地,在步骤101中形成的配置知识库中获得该数据库的SGA的标识符信息,然后创建一个进程,并将与获得的标识符信息与该进程进行映射,记录映射后所述标识符信息在该进程内的起始地址,然后运行创建的进程,基于记录的起始地址访问所述标识符信息标识的SGA。0038 步骤S2,运行步骤S1创建的进程,在该数据库对应的SGA中查看与该数据库性能相关的基表。0039 具体地,在该数据库对应的SGA中查看与该数据库性能相关的基表可以但不限于采用下述两种方式:0040 第一种方式:按照行的方式查看:获得在SGA中与该数据库性能相关的基表的起始地址、行。

26、长度信息和该基表的总行数,所述行长度信息是指该基表的下一行的起始地址和上一行的起始地址的差值。运行创建的进程,对总行数中的每一行分别执行:0041 将该行的起始地址赋值给当前行地址变量;0042 所述进程基于被赋值后的当前行地址变量,结合获得的行长度信息,查看所述基表,直至查询完毕该行的内容。0043 其中,可以在步骤101中形成的配置知识库中获得与该数据库性能相关的基表的起始地址、行长度信息和该基表的总行数信息赋值给当前地址变量,也可以采用预先设定的方式赋值给当前地址变量。0044 第二种方式,按照列的方式查看:获得在所SGA中与该数据库性能相关的基表中需要访问的列的列偏移量和列长度信息,运。

27、行创建的进程,对需要访问的列分别执行:0045 将获得的该列的列偏移量赋值给当前列地址变量;所述进程基于被赋值后的当前说 明 书CN 103150308 A5/7页8列地址变量,结合获得的列长度信息,查看所述基表,直至查询完毕该列的内容。0046 其中,可以在步骤101中形成的配置库中获得与该数据库性能相关的基表的列偏移量、列长度信息。0047 第三种方式,综合采用上述两种方式,在SGA中查看与该数据库性能相关的基表。0048 一种较佳地实现方式,如图5所示,本发明实施例这里以SGA中的与数据库性能的X$基表的内容为例,采用上述第三种综合使用查看行信息和列信息的方式详细阐述步骤104的具体实施。

28、过程,具体方法如下:0049 步骤S21,在配置知识库中获得SGA的标识符信息,然后创建一个进程,将获得的SGA的标识符信息与创建的进程进行映射,并记录映射后该标识符信息在创建的进程内的起始地址信息。其中,该标识符信息在创建的进程内的起始地址信息也可以在配置知识库中获得。具体方法在上述步骤101中已经详细阐述,这里不再赘述。0050 步骤S22,在配置知识库中获得需要读取的X$基表的相关信息,如起始地址信息、行长度信息、该基表的总行数以及列偏移量信息,根据获得的该X$基表的相关信息,读取X$基表。0051 步骤S23,将获得的该X$基表的起始地址信息赋值给当前地址变量,基于被赋值后的当前地址变。

29、量,列偏移量信息查看对应的X$基表的某一行的各列,然后结合获得的行长度信息,查看该X$基表的下一行的各列。其中当前地址变量可以用current_addr标识,例如获得的起始地址信息为0001H,列偏移量为03H,则首先将0001H赋值给current_addr,即current_addr0001H。其中前面两位00代表该X$基表的行起始地址,01代表该X$基表的列起始地址,即从该X$基表的第0行第1列开始查看,查看第一列之后,根据获得的列偏移量03H,查看该X$基表中地址信息是0004H中的内容,即查看该X$基表第0行第4列中的内容。0052 较佳地,列偏移量可以只有一个数值,也可以有不同的数。

30、值。可以按照一定的规律设置,例如可以根据等差数列的方式设置,也可以根据等比数列的方式设置。0053 一种较佳地实现方式,本发明实施例这里采用预先设置列偏移量的数值,有目的的访问X$基表中的每一行的某几列。例如,可以在访问第0行第1列之后,访问第0行第4列,再访问第0行第9列,相应地,此时列偏移量为05H,即此时被赋值的当前地址变量为:current_addr0004H+0005H0009H。0054 步骤S24,根据当前地址变量的具体赋值,判断该X$基表是否查看完毕,如果查看完毕,则结束对X$基表的查看,反之,执行步骤S25。0055 具体地,可以根据获得的X$基表的总行数信息或者总列数信息,。

31、判断该X$基表是否查看完毕。较佳地,本发明实施例这里根据获得的X$基表的总行数信息确定该X$基表是否查看完毕。其中,在当前地址变量的具体被赋值的地址信息大于该X$基表的最后一行的起始地址时,确定X$基表查看完毕,反之,则继续将获得的行长度、列偏移量等信息赋值给当前地址变量,继续查看该X$基表。例如,要查看的X$基表的总行数为18行,其最后一行的起始地址为18H,当前地址变量的被赋值的行地址信息为19H18H,则结束对该X$基表的查看。0056 步骤S25,根据获得的行长度信息和列偏移量信息进行累加,返回执行步骤S23,继续查看X$基表。说 明 书CN 103150308 A6/7页90057 。

32、步骤105,根据获得的动态视图和查看的基表的对应关系,将通过查看基表获得的会话信息及其占用的系统资源信息,展示在与基表对应的动态视图上。0058 其中,在动态视图上具体的展示方式可以但不限于采用下述表1的方式:0059 表10060 会话信息 用户名 CPU使用率 内存占用K I/O占用 锁相关/SAA 123 50 1,3456 0 8BB 456 1 1,6789 0 345 45NN XXX 30 5,5555 0 00061 步骤106,用户根据在动态视图上展示的与各会话信息对应的占用系统资源信息,选择至少一个需要占用系统资源较多的会话信息。例如,上述表1中,可以选择AA和NN两个CP。

33、U使用率较高的会话信息。0062 步骤107,查询选中的会话信息对应的操作系统的进程,并中止该进程。0063 步骤108,在步骤107执行结束后,判断数据库是否恢复正常,如果恢复正常运行状态,则结束所有操作,反之,继续返回执行步骤103。0064 步骤109,如果步骤103中判断出数据库能够登录,则直接登录数据库。其中,用户可以在本地直接登录数据库,也可以采用远程登录数据库的方式。0065 步骤110,登录数据库之后,通过查看动态视图,确定占用系统资源较多的会话信息,根据确定出的会话信息,执行步骤107。0066 本发明实施例这里提出的对数据库无响应状态的处理方法,在数据库处于无响应状态时,不。

34、需要通过重新启动用于存储该数据库的主机,而是直接通过在与该数据库对应的SGA中读取与该数据库性能相关的基表内容,从而获得占用系统资源较多的会话信息,然后有选择性地中止至少一个占用系统资源较多的会话信息,使数据库恢复正常运行状态,较好地提高了对数据库无响应状态的处理效率,进而提升用户的感知度。0067 相应地,本发明实施例还提出一种对数据库无响应状态的处理装置,如图6所示,包括:0068 信息获得单元501,用于在数据库处于无响应状态时,在该数据库对应的系统全局区SGA中查看与该数据库性能相关的基表,获得正在运行的使用该数据库的会话对应的会话信息及其占用的系统资源信息。0069 其中,信息获得单。

35、元501,具体包括:进程创建子单元511,用于创建用于访问该数据库的SGA的进程。0070 具体地,进程创建子单元511具体用于获得该数据库的SGA的标识符信息;创建一个进程,并将与获得的标识符信息与该进程进行映射;记录映射后所述标识符信息在该进程内的起始地址;运行创建的进程,基于记录的起始地址访问所述标识符信息标识的SGA。0071 基表查看子单元512,用于运行进程创建子单元511创建的进程,在该数据库对应说 明 书CN 103150308 A7/7页10的SGA中查看与该数据库性能相关的基表。0072 具体地,基表查看子单元512,具体用于获得在所述SGA中与该数据库性能相关的基表的起始。

36、地址、行长度信息和该基表的总行数,所述行长度信息是指该基表的下一行的起始地址和上一行的起始地址的差值;运行进程创建子单元创建的进程,对总行数中的每一行分别执行:将该行的起始地址赋值给当前行地址变量;所述进程基于被赋值后的当前行地址变量,结合获得的行长度信息,查看所述基表,直至查询完毕该行的内容。0073 具体地,上述基表查看子单元511,还用于获得在所述SGA中与该数据库性能相关的基表中需要访问的列的列偏移量和列长度信息;运行进程创建子单元创建的进程,对需要访问的列分别执行:将获得的该列的列偏移量赋值给当前列地址变量;所述进程基于被赋值后的当前列地址变量,结合获得的列长度信息,查看所述基表,直。

37、至查询完毕该列的内容。0074 展示单元502,用于展示信息获得单元501获得的会话信息及其占用的系统资源信息。0075 具体地,展示单元502具体用于将信息获得单元501获得的会话信息及其占用的系统资源信息,展示在与该数据库性能相关的基表对应的动态视图上。0076 确定单元503,用于根据展示单元502展示的占用的系统资源信息,在展示的会话信息中确定被选中的至少一个会话信息。0077 进程中止单元504,用于中止确定单元503确定的被选中的会话信息对应的操作系统的进程。0078 应当理解,上述提出的对数据库无响应状态的处理装置包括的单元在实际应用中,可以进行上述单元的叠加或拆分。并且该装置所实现的功能与上述对数据库无响应状态的处理方法流程一一对应,对于该装置所实现的更为详细的处理流程,在上述方法实施例中已做详细描述,此处不再详细描述。,0079 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。说 明 书CN 103150308 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1