一种Oracle过载的应对方法及系统与流程

文档序号:13094676阅读:318来源:国知局
一种Oracle过载的应对方法及系统与流程

本发明涉及计算机技术领域,具体地说是一种oracle过载的应对方法及系统。



背景技术:

oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好且适应高吞吐量的数据库解决方案。

oracle数据库服务器作为全球应用范围最广的商用数据库服务器之一,大多数都是运行着重要业务,要求24小时提供服务,不允许出现无计划的停机事件发生。但是日常的使用过程中往往会遇到数据库被恶意攻击或工作人员运行糟糕脚本造成业务使用不顺畅甚至接近宕机的风险。

现有技术中,在遇到上述情况时需人为查找造成事故的原因,需花费大量的时间,工作效率极低。



技术实现要素:

本发明的目的在于提供一种oracle过载的应对方法及系统,用于解决人为查找事故原因工作效率低的问题。

本发明解决其技术问题所采用的技术方案是:一种oracle过载的应对方法,包括以下步骤:

获取占用资源最多的进程;

根据获取的进程确定oracle中对应的session;

根据session确定客户端,获取客户端上运行的用户进程。

进一步地,所述根据获取的进程确定oracle中对应的session的具体步骤为:

查看获取进程的信息,获取该进程对应的进程地址;

根据进程地址与session的对应关系,获取对应的session。

进一步地,所述根据session确定客户端,获取客户端上运行的用户进程的具体步骤为:

查看session中详细信息,获取该session对应客户端的主机;

通过oracle用户名登录该主机,获取客户端正在运行的具体命令。

进一步地,在获取到客户端上运行的用户进程后还包括步骤:关闭用户进程,并对该用户进程进行相应修复。

进一步地,所述关闭用户进程,并对该用户进程进行相应修复的具体步骤为:

关闭客户端正在运行的具体命令,使用户进程关闭;

分析该具体命令的运行原因,并根据运行原因采取相应的修复措施。

进一步地,所述具体命令的运行原因包括恶意攻击和糟糕脚本的执行,所述根据运行原因采取相应的修复措施包括:若运行原因是恶意攻击,则对oracle的安全性进行升级;若运行原因是糟糕脚本的执行,则对脚本进行优化。

一种oracle过载的应对系统,包括用户进程模块和监听单元,所述用户进程模块设置在客户端,监听单元设置在服务器端;所述监听单元包括pga进程模块和session模块;所述pga进程模块连接用户进程模块,用于建立监听单元与客户端之间的通信并对用户进程模块进行验证,验证通过后,在服务器端建立与用户进程模块对应的session模块,所述session模块用于对instance进行操作并调用database。

进一步地,所述pga进程模块与用户进程模块通过tcp/ip协议连接。

进一步地,所述应对系统还包括:

进程获取模块,用于获取占用资源最多的进程;

session获取模块,用于获取与占用资源最多进程对应的session模块;

用户进程获取模块,用于获取与该session模块对应的用户进程模块;

进程处理模块,用于关闭该用户进程并进行相应修复。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

1、通过建立客户端用户进程与oracle服务器端pga进程的联系,在oracle服务器端的session与用户进程相对应,在oracle过载时,通过查看服务器端占用资源最多的进程获取对应的session,从而找出与session对应的用户进程,实现对引起过载的用户进程的快速定位,无需人为逐个查找是哪个用户进程造成的oracle过载问题,节省人力、提高工作效率。

2、在获知是哪个用户进程造成oracle过载后,首先关闭该用户进程,然后进行后续的修复工作,快速减轻oracle服务器的负担,以免造成宕机等更严重的后果,保证用户的使用不间断,且为用户的信息安全提供保障。

3、关闭用户进程后,对引起oracle过载的原因进行分析,并采取相应的修复措施,进一步保障了oracle数据库的安全,且对数据库进行进一步完善。

附图说明

图1是本发明的方法流程图;

图2是本发明的系统结构示意图。

具体实施方式

为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

如图1所示,本发明提供的一种oracle过载的应对方法,该方法包括以下步骤:

s1,获取占用资源最多的进程;

s2,根据获取的进程确定oracle中对应的session;

s3,根据session确定客户端,获取客户端上运行的用户进程;

s4,关闭用户进程,并对该用户进程进行相应修复。

其中步骤s1中获取占用资源最多的进程是在oracle服务器端获取,通过在服务器端查看pga进程即可获取。

步骤s2中根据获取的进程确定oracle中对应的session的具体步骤为:

s21,查看获取进程的信息,获取该进程对应的进程地址;

s22,根据进程地址与session的对应关系,获取对应的session。

步骤s3中根据session确定客户端,获取客户端上运行的用户进程的具体步骤为:

s31,查看session中详细信息,获取该session对应客户端的主机;

s32,通过oracle用户名登录该主机,获取客户端正在运行的具体命令。

步骤s4中关闭用户进程,并对该用户进程进行相应修复的具体步骤为:

s41,关闭客户端正在运行的具体命令,使用户进程关闭;

s42,分析该具体命令的运行原因,并根据运行原因采取相应的修复措施。

其中调用killsession命令关闭用户进程,造成oracle过载的具体命令运行原因包括恶意攻击和糟糕脚本的执行,根据运行原因采取相应的修复措施包括:若运行原因是恶意攻击,则对oracle的安全性进行升级;若运行原因是糟糕脚本的执行,则对脚本进行优化。

在获知是哪个用户进程造成oracle过载后,首先关闭该用户进程,然后进行后续的修复工作,快速减轻oracle服务器的负担,以免造成宕机等更严重的后果,保证用户的使用不间断,且为用户的信息安全提供保障。关闭用户进程后,对引起oracle过载的原因进行分析,并采取相应的修复措施,进一步保障了oracle数据库的安全,且对数据库进行进一步完善。

下面对上述方法进行举例说明:

使客户端连接oracle服务器,在客户端写一个死循环长时间占用oracle资源,通过查看oracle的cpu使用率,发现一个对cpu的使用率接近100%的进程,通过查看该进程的详细信息,获取该进程对应的进程地址select*fromv$processwherespid=4133,根据该进程地址查看对应的session:select*fromv$sessionwherepaddr='000000008b0952b0',获取对应session后,查看该session的详细信息,可以看到该session对应的用户进程的客户端主机为ocp.com,使用oracle用户名登录该主机,获取到客户端的进程id为3046,使用的端口为39222,同时调用命令elect*fromv$sqlwheresql_id='ccdatfg6tm7sy'查看客户端运行的具体命令,可以看到运行的具体命令就是最初写下的死循环命令。从而进一步证明上述方法能够快速定位引起过载的用户进程的快速定位,无需人为逐个查找是哪个用户进程造成的oracle过载问题,节省人力、提高工作效率。

如图2所示,本发明提供的一种oracle过载的应对系统,该系统包括用户进程模块1和监听单元,用户进程模块1设置在客户端,监听单元设置在oracle服务器端;监听单元包括pga进程模块2和session模块3;pga进程模块2通过tcp/ip协议连接用户进程模块1,用于建立监听单元与客户端之间的通信并对用户进程模块1进行验证。验证通过后,在服务器端建立与用户进程模块1对应的session模块3,session模块3用于对instance进行操作并调用database。

应对系统还包括进程获取模块,用于获取占用资源最多的进程;session获取模块,用于获取与占用资源最多进程对应的session模块;用户进程获取模块,用于获取与该session模块对应的用户进程模块;进程处理模块,用于关闭该用户进程并进行相应修复。其中进程获取模块、session获取模块和用户进程获取模块均置于oracle服务器端。服务器端和客户端均设有进程处理模块,这是由引起oracle过载的原因不同所致:当运行原因是恶意攻击引起,则通过服务器端的进程处理模块对oracle的安全性进行升级;当运行原因是糟糕脚本的执行引起,则通过客户端的进程处理模块对脚本进行优化。

以上所述只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1