CN104199732A - 一种pga内存溢出智能处理方法 - Google Patents

一种pga内存溢出智能处理方法 Download PDF

Info

Publication number
CN104199732A
CN104199732A CN201410428710.4A CN201410428710A CN104199732A CN 104199732 A CN104199732 A CN 104199732A CN 201410428710 A CN201410428710 A CN 201410428710A CN 104199732 A CN104199732 A CN 104199732A
Authority
CN
China
Prior art keywords
pga
threshold value
internal memory
processing method
overflow
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.)
Granted
Application number
CN201410428710.4A
Other languages
English (en)
Other versions
CN104199732B (zh
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.)
Shanghai New Century Network Co., Ltd.
Original Assignee
SHANGHAI NEW CENTURY NETWORK Co Ltd
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 SHANGHAI NEW CENTURY NETWORK Co Ltd filed Critical SHANGHAI NEW CENTURY NETWORK Co Ltd
Priority to CN201410428710.4A priority Critical patent/CN104199732B/zh
Publication of CN104199732A publication Critical patent/CN104199732A/zh
Application granted granted Critical
Publication of CN104199732B publication Critical patent/CN104199732B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种PGA内存溢出智能处理方法,包括如下步骤:a)设置PGA内存溢出处理阈值;b)调用数据库存储过程并实时监控PGA内存是否达到溢出处理阈值;c)当PGA内存达到溢出处理阈值后,自动生成PGA清理脚本;所述溢出处理阈值包括PGA告警阈值、PGA查杀阈值、单个进程PGA阈值以及SQL语句并发度阈值,所述PGA查杀阈值大于PGA告警阈值。本发明提供的PGA内存溢出智能处理方法,通过制定内存溢出自动处理阈值,在PGA内存分配达到阈值时,自动触发一系列操作,释放过多分配的PGA内存,减少或消除由于PGA内存溢出而引发的故障,并尽量减少人工干预,提高系统的稳定性、易用性和可用性。

Description

一种PGA内存溢出智能处理方法
技术领域
本发明涉及一种内存溢出处理方法,尤其涉及一种PGA内存溢出智能处理方法。
背景技术
PGA(Program Global Area程序全局区)是一块包含一个服务进程的数据和控制信息的内存区域。它是Oracle在一个服务进程启动是创建的,是非共享的。一个Oracle进程拥有一个PGA内存区。一个PGA也只能被拥有它的那个服务进程所访问,只有这个进程中的Oracle代码才能读写它。SQL工作区可以是自动的、全局的管理。DBA只要设置参数PGA_AGGREGATE_TARGET给一个实例的PGA内存指定总的大小。设置这个参数后,Oracle将它作为一个总的全局限制值,尽量使所有Oracle服务进程的PGA内存总数不超过这个值。
但在某些特殊情况下,比如:用户连接数量过多、每个进程分配的PGA过大、触发Oracle数据库BUG等,Oracle分配的PGA内存总量可能超过预先设定值。由于超出PGA预设值的这部分内存数量无法准确评估,所以会出现Oracle占用的主机整体内存过高,进而导致主机系统挂起或主机宕机、重启,严重影响业务的正常处理。
现有通用的处理方法如下:1、不做处理(问题无法准确定位);2、发现问题人工处理。上述需要人工干预或无法进行有效人工干预的情况下,无法确保Oracle数据库安全、稳定、高效的运行,以及业务的连续性。因此,现有处理方法的缺点:
1)某些情况下问题无法准确定位处理。在某些情况下,比如PGA内存溢出后在短时间内导致操作系统无法登陆或数据库异常关闭,无法进行有效干预。
2)人工处理,但不及时。发现PGA内存溢出后可以进行人工处理,但无法保证每次均能得到及时处理。
3)人工处理,但可能出现误操作。可能在问题处理过程中对问题产生的原因出现误判和误操作的情况。
4)无法对问题进行提前预判并进行处理
5)无法针对单独的异常进程进行处理。手工处理此类问题一般的方法是终止所有数据库连接进程,但这样会使所有连接数据库的业务进程失效,影响业务处理。
6)事后无法得知造成PGA溢出的具体进程或SQL语句。由于在问题发生时没有针对当时的系统状况进行记录,所以后续无法得知当时引发问题的具体进程或SQL语句,不利于找到问题发生的根源。
发明内容
本发明所要解决的技术问题是提供一种PGA内存溢出智能处理方法,能够减少或消除由于PGA内存溢出而引发的故障,并尽量减少人工干预,减少系统的运维成本,提高系统的稳定性、易用性和可用性。
本发明为解决上述技术问题而采用的技术方案是提供一种PGA内存溢出智能处理方法,包括如下步骤:a)设置PGA内存溢出处理阈值;b)调用数据库存储过程并实时监控PGA内存是否达到溢出处理阈值;c)当PGA内存达到溢出处理阈值后,自动生成PGA清理脚本。
上述的PGA内存溢出智能处理方法,其中,所述步骤a)中的溢出处理阈值包括PGA告警阈值、PGA查杀阈值、单个进程PGA阈值以及SQL语句并发度阈值,所述PGA查杀阈值大于PGA告警阈值。
上述的PGA内存溢出智能处理方法,其中,所述步骤b)中的实时监控过程如下:b1)通过查询process视图的pga_alloc_mem值获取当前PGA分配总量,如果当前系统PGA分配总量未超过PGA告警阈值,则不做处理;b2)如果当前系统PGA分配总量超过PGA告警阈值,未达到PGA查杀阈值,则收集当前占用PGA内存超过50M的所有进程信息插入到一张数据库表中作为记录信息;b3)如果当前系统PGA分配总量超过PGA查杀阈值,则继续查询process视图的pga_alloc_mem值获取PGA内存使用量超过单个进程PGA阈值的进程信息,以及继续查找并发度大于SQL语句并发度阈值的SQL语句;如果同时存在超过阈值的单个进程以及SQL语句,则继续生成终止所述进程的SHELL脚本,否则只记录信息。
上述的PGA内存溢出智能处理方法,其中,所述进程信息包括操作系统进程号、SQLID、发起连接的业务用户以及主机和应用程序;所述记录信息通过dbms_output.put_line方法输出到指定的日志文件。
上述的PGA内存溢出智能处理方法,其中,所述步骤a)~步骤c)通过设置计划任务进行定时调度。
本发明对比现有技术有如下的有益效果:本发明提供的PGA内存溢出智能处理方法,根据每套Oracle数据库所在服务器的内存分配以及历史运行情况、PGA基线值等制定内存溢出自动处理阈值,在PGA内存分配达到阈值时,自动触发一系列操作,释放过多分配的PGA内存。本发明通过自动的计划任务、自定义数据库存储过程等智能处理方法,减少或消除由于PGA内存溢出而引发的故障,并尽量减少人工干预,减少系统的运维成本,提高系统的稳定性、易用性和可用性。
附图说明
图1为本发明PGA内存溢出智能处理流程示意图;
图2为本发明整体流程及相互调用关系图;
图3为本发明数据库存储过程执行流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
图1为本发明PGA内存溢出智能处理流程示意图。
请参见图1,本发明提供的PGA内存溢出智能处理方法包括如下步骤:
步骤S1:设置PGA内存溢出处理阈值;包括PGA告警阈值、PGA查杀阈值、单个进程PGA阈值以及SQL语句并发度阈值,所述PGA查杀阈值大于PGA告警阈值;
步骤S2:调用数据库存储过程并实时监控PGA内存是否达到溢出处理阈值;
步骤S3:当PGA内存达到溢出处理阈值后,自动生成PGA清理脚本。
本发明提供的PGA内存溢出智能处理方法,整体架构包括以下三个重要组成部分:
a)操作系统计划任务(负责定期调度)
b)主脚本(负责调用存储过程,执行存储过程生成的PGA清理脚本)
c)数据库存储过程(检查数据库并生成PGA清理脚本)
另有在过程中生成的PGA清理脚本和记录清理过程的日志文件。
本发明提供的PGA内存溢出智能处理方法,整体流程及相互调用关系如图2所示,各组件功能及原理说明如下:
1、操作系统计划任务
使用操作系统命令crontab,在指定时间点或者时间间隔调用一次主脚本,时间点或者时间间隔可以自定义。
2、主脚本
该脚本由操作系统计划任务调度,由三部分组成:设置环境变量、调用数据库存储过程以及执行由上述数据库存储过程生成的清理脚本清理PGA内存。
3、数据库存储过程
3.1输入参数及说明如下:
p_pga_total:PGA告警阈值(PGA分配总量达到该值触发告警)
p_pga_kill:PGA查杀阈值(PGA分配总量达到该值触发查杀)
p_pga_limit:单个进程被分配的PGA大小阈值
p_session_count:SQL语句的并发度(同时有多少条相同的SQL语句在运行)
以上参数均可根据不同系统的内存大小及分配状况自定义相应大小的值。
3.2存储过程执行流程
存储过程执行流程如图3所示,具体过程描述如下:
①分析当前PGA分配总量,方法为:查询v$process视图的pga_alloc_mem值。
②如果当前系统PGA分配总量未超过p_pga_total(pga_alloc_mem<p_pga_total)则不做处理。
如果超过p_pga_total,未达到p_pga_kill(p_pga_total<pga_alloc_mem<p_pga_kill),则收集当前占用PGA内存超过50M的所有进程信息插入到一张数据库表中作为记录,包括操作系统进程号、SQLID、发起连接的业务用户、主机和应用程序。方法为:联合查询v$session与v$process两张数据库动态性能视图,以v$process.addr=v$session.paddr,以及v$process.pga_alloc_mem>50M为条件获取操作系统进程号、SQLID、发起连接的业务用户、主机和应用程序等信息。
通过dbms_output.put_line方法,输出告警“当前PGA总量为XXX高于预设值YYY”到主脚本指定的日志文件。
③如果当前系统PGA分配总量超过p_pga_kill,v$process视图的pga_alloc_mem值>p_pga_kill,则继续判断④。
④收集单个PGA内存使用量超过p_pga_limit的进程信息,方法为同②。
⑤查找并发度>p_session_count的SQL语句。
如果同时满足③④⑤的条件,则继续步骤⑥,否则只记录信息。
⑥根据上述得到的操作系统进程号,在一个loop循环中通过dbms_output.put_line方法,spool生成终止进程的SHELL脚本。dbms_output.put_line('kill-9'||<操作系统进程号>)。
生成的SHELL脚本内容类似:
kill-9112003
Kill-929320
Kill-943932
⑦主脚本执行存储过程生成的SHELL脚本,通过删除指定的操作系统进程释放对应的PGA内存。
综上所述,本发明联合使用数据库存储过程和操作系统Crontab调度,根据每套Oracle数据库所在服务器的内存分配以及历史运行情况、PGA基线值等制定内存溢出自动处理阈值,在PGA内存分配达到阈值时,自动触发一系列操作,释放过多分配的PGA内存。具体优点如下:1、可智能处理PGA内存溢出问题,无需人工干预。2、监控的时间粒度可以控制和调整(通过操作系统Crontab调度)。3、可以自定义开始清理溢出的PGA内存的特定条件,根据业务特点灵活控制。具体包括:PGA内存实际分配的总量、触发自动清除PGA进程时PGA内存分配总量、单个进程分配的PGA内存大小、同时运行的相同SQL语句数量。4、本发明通过仅终止少部分消耗PGA资源过高的进程达到PGA溢出内存清理的目的,并非终止所有进程,所以能够最大程度避免对应用程序和业务连续性造成不必要的影响。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。

Claims (5)

1.一种PGA内存溢出智能处理方法,其特征在于,包括如下步骤:
a)设置PGA内存溢出处理阈值;
b)调用数据库存储过程并实时监控PGA内存是否达到溢出处理阈值;
c)当PGA内存达到溢出处理阈值后,自动生成PGA清理脚本。
2.如权利要求1所述的PGA内存溢出智能处理方法,其特征在于,所述步骤a)中的溢出处理阈值包括PGA告警阈值、PGA查杀阈值、单个进程PGA阈值以及SQL语句并发度阈值,所述PGA查杀阈值大于PGA告警阈值。
3.如权利要求2所述的PGA内存溢出智能处理方法,其特征在于,所述步骤b)中的实时监控过程如下:
b1)通过查询process视图的pga_alloc_mem值获取当前PGA分配总量,如果当前系统PGA分配总量未超过PGA告警阈值,则不做处理;
b2)如果当前系统PGA分配总量超过PGA告警阈值,未达到PGA查杀阈值,则收集当前占用PGA内存超过50M的所有进程信息插入到一张数据库表中作为记录信息;
b3)如果当前系统PGA分配总量超过PGA查杀阈值,则继续查询process视图的pga_alloc_mem值获取PGA内存使用量超过单个进程PGA阈值的进程信息,以及继续查找并发度大于SQL语句并发度阈值的SQL语句;如果同时存在超过阈值的单个进程以及SQL语句,则继续生成终止所述进程的SHELL脚本,否则只记录信息。
4.如权利要求3所述的PGA内存溢出智能处理方法,其特征在于,所述进程信息包括操作系统进程号、SQLID、发起连接的业务用户以及主机和应用程序;所述记录信息通过dbms_output.put_line方法输出到指定的日志文件。
5.如权利要求1~4任一项所述的PGA内存溢出智能处理方法,其特征在于,所述步骤a)~步骤c)通过设置计划任务进行定时调度。
CN201410428710.4A 2014-08-28 2014-08-28 一种pga内存溢出智能处理方法 Active CN104199732B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410428710.4A CN104199732B (zh) 2014-08-28 2014-08-28 一种pga内存溢出智能处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410428710.4A CN104199732B (zh) 2014-08-28 2014-08-28 一种pga内存溢出智能处理方法

Publications (2)

Publication Number Publication Date
CN104199732A true CN104199732A (zh) 2014-12-10
CN104199732B CN104199732B (zh) 2017-12-05

Family

ID=52085029

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410428710.4A Active CN104199732B (zh) 2014-08-28 2014-08-28 一种pga内存溢出智能处理方法

Country Status (1)

Country Link
CN (1) CN104199732B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108377292A (zh) * 2018-01-30 2018-08-07 努比亚技术有限公司 解决内存泄露的方法、终端、服务器及计算机存储介质
CN110166069A (zh) * 2018-04-17 2019-08-23 北京丰信达科技有限公司 一种具有通讯功能的家庭黑板
CN111209114A (zh) * 2019-12-31 2020-05-29 深圳Tcl新技术有限公司 系统内存释放方法、装置和存储介质
CN115904864A (zh) * 2022-11-10 2023-04-04 贝壳找房(北京)科技有限公司 内存溢出的监测方法、电子设备、介质及计算机程序产品

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070282928A1 (en) * 2006-06-06 2007-12-06 Guofang Jiao Processor core stack extension
US7363438B1 (en) * 2004-11-05 2008-04-22 Sun Microsystems, Inc. Extendable memory work-stealing
CN101706779A (zh) * 2009-10-12 2010-05-12 南京联创科技集团股份有限公司 基于oracle的伞状数据导入导出方法
CN102946486A (zh) * 2012-11-20 2013-02-27 惠州Tcl移动通信有限公司 一种基于手机的后台应用自动清理方法及手机
CN103220427A (zh) * 2013-04-16 2013-07-24 广东欧珀移动通信有限公司 手机后台程序清理方法及手机
CN103677942A (zh) * 2013-12-30 2014-03-26 Tcl集团股份有限公司 一种移动终端浏览网络图片的方法和装置
CN103902266A (zh) * 2012-12-26 2014-07-02 中兴通讯股份有限公司 清理后台运行应用的方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7363438B1 (en) * 2004-11-05 2008-04-22 Sun Microsystems, Inc. Extendable memory work-stealing
US20070282928A1 (en) * 2006-06-06 2007-12-06 Guofang Jiao Processor core stack extension
CN101706779A (zh) * 2009-10-12 2010-05-12 南京联创科技集团股份有限公司 基于oracle的伞状数据导入导出方法
CN102946486A (zh) * 2012-11-20 2013-02-27 惠州Tcl移动通信有限公司 一种基于手机的后台应用自动清理方法及手机
CN103902266A (zh) * 2012-12-26 2014-07-02 中兴通讯股份有限公司 清理后台运行应用的方法和装置
CN103220427A (zh) * 2013-04-16 2013-07-24 广东欧珀移动通信有限公司 手机后台程序清理方法及手机
CN103677942A (zh) * 2013-12-30 2014-03-26 Tcl集团股份有限公司 一种移动终端浏览网络图片的方法和装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108377292A (zh) * 2018-01-30 2018-08-07 努比亚技术有限公司 解决内存泄露的方法、终端、服务器及计算机存储介质
CN110166069A (zh) * 2018-04-17 2019-08-23 北京丰信达科技有限公司 一种具有通讯功能的家庭黑板
CN111209114A (zh) * 2019-12-31 2020-05-29 深圳Tcl新技术有限公司 系统内存释放方法、装置和存储介质
CN115904864A (zh) * 2022-11-10 2023-04-04 贝壳找房(北京)科技有限公司 内存溢出的监测方法、电子设备、介质及计算机程序产品
CN115904864B (zh) * 2022-11-10 2023-09-19 贝壳找房(北京)科技有限公司 内存溢出的监测方法、电子设备、介质及计算机程序产品

Also Published As

Publication number Publication date
CN104199732B (zh) 2017-12-05

Similar Documents

Publication Publication Date Title
CN110661659B (zh) 一种告警方法、装置、系统及电子设备
CN103365758B (zh) 一种虚拟化环境下的进程监控方法及系统
CN104199732A (zh) 一种pga内存溢出智能处理方法
CN111611137A (zh) 告警监控方法、装置、计算机设备及存储介质
CN105404581B (zh) 一种数据库的评测方法和装置
US20180039895A1 (en) Data predicting method and apparatus
CN105893531A (zh) PostgreSQL数据库海量数据管理方法及系统
CN104375928A (zh) 异常日志管理方法及系统
CN105243072A (zh) 一种数据库查询方法及系统
US9244711B1 (en) Virtual machine capacity planning
US20180032567A1 (en) Method and device for processing data blocks in a distributed database
CN107767264A (zh) 联机交易系统热点账户交易流量压力实时调控方法及装置
CN108874618B (zh) Cognos进程的监控方法、装置、计算机设备和存储介质
CN109474470A (zh) 一种自监控方法和装置
CN110674149B (zh) 业务数据处理方法、装置、计算机设备和存储介质
CN110363381B (zh) 一种信息处理方法和装置
CN111538585B (zh) 一种基于node.js的服务器进程调度方法、系统和装置
CN105045678B (zh) 数据库恢复方法及装置
CN107797856B (zh) 基于windows服务的计划任务管控方法、装置及存储介质
CN110413434A (zh) 服务器的异常识别方法及装置
CN108255661A (zh) 一种实现Hadoop集群监控的方法及系统
CN111478792B (zh) 一种割接信息处理方法、系统及装置
CN112035326A (zh) 基于集群节点互检的异常节点任务处理方法及装置
CN110609758A (zh) 基于队列的设备运行方法、计算机设备及可读存储介质
CN116166338A (zh) 数据库的故障排除方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: SHANGHAI NEW CENTURY NETWORK INFORMATION TECHNOLOG

Free format text: FORMER OWNER: SHANGHAI NEW CENTURY NETWORK CO., LTD.

Effective date: 20150120

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150120

Address after: 200063 Shanghai, Zhongshan North Road, No. 2000, building, building No. 3, B

Applicant after: SHANGHAI XINJU NETWORK INFORMATION TECHNOLOGY CO., LTD.

Address before: 200063 Shanghai, Zhongshan North Road, No. 2000, building, building No. 3, B

Applicant before: Shanghai New Century Network Co., Ltd.

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160226

Address after: 200063 Shanghai, Zhongshan North Road, No. 2000, building, building No. 3, B

Applicant after: Shanghai New Century Network Co., Ltd.

Address before: 200063 Shanghai, Zhongshan North Road, No. 2000, building, building No. 3, B

Applicant before: SHANGHAI XINJU NETWORK INFORMATION TECHNOLOGY CO., LTD.

GR01 Patent grant
GR01 Patent grant