Oracle RDBMS Kernel Executable占用内存问题

背景:

某旧项目发现oracle应用占用内存过高,客户要求消除告警隐患

环境:

系统:windowsserver2008r2
oracle:11.2.0.4.0

排查:

任务管理器


进入数据库查看



可以看到内存是手动配置的

处理

调整为oracle自动管理内存,限制内存使用上限。从图上可以看出,应该还有3个实例在跑,限制内存使用上限为45G,从业务上看,请求量不大。为避免调整参数后,启动不起来,准备一下spfile文件。

参数调整

alter system set memory_max_target=45G scope=SPFILE;
ALTER SYSTEM SET SGA_TARGET =0 SCOPE = SPFILE;
ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 0 SCOPE = SPFILE;

重启数据库

shutdown immediate
startup

异常情况处理

如果调整参数后,实例无法启动,要查看日志,看是sga或者pga哪个参数调整有问题,修改spfile后,再启动数据库。参考如下:
https://www.cnblogs.com/markkang/p/11925406.html

(1). 在sqlplus里面由spfile创建pfile文件,为了方便,自定义pfile的存放目录为“e:\\ini.ora.temp”,不指定会默认为spfile同目录,本人在windows上的12c目录为"{oracle安装目录}\product\12.2.0\dbhome_1\database”目录下的SPFILEORCL.ORA,文件名遵循格式spfile${SID}.ora。
create pfile='e:\\ini.ora.temp' from spfile;
(2). 因为pfile为文本文件,用文本应用程序打开你指定的路径文件来进行编辑,修改sga_max_size和sga_target为0,保存文件。
(3).由pfile来重建spfile文件
create spfile from pfile='e:\\ini.ora.temp';
(4).默认基于新的spfile,启动Oracle实例。
startup
posted @ 2024-10-29 16:01  海yo  阅读(84)  评论(0编辑  收藏  举报