当前位置: 首页 > Oracle, oracle 10g, oracle 11g > 正文

ORACLE数据库内存设置过大,导致服务器异常缓慢

昨天登录一个数据库服务器,感觉很慢,通过top命令发现当前CPU已经使用50%,交换分区基本用光。

[oracle@SL010A-IVTDB1-NEW ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:         64383      63870        512          0          9      58696
-/+ buffers/cache:       5164      59219
Swap:        17407      17384         23

经过查询,发现有个进程消耗了20G的内存,是应用程序通过JDBC连接数据库的进程,查询发现,这个会话正在做批量INSERT操作,经向开放人员反映后,在开发人员授意后,杀点这个进程,CPU使用率降为5%左右的正常范围。但是交换分区依然紧张,查询发现这台服务器上的两个实例的SGA和PGA分配的太大所致。

sys@IVLDB> show parameter sga

NAME                                 TYPE        VALUE
------------------------------------ ----------- --------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 38784M
sga_target                           big integer 38784M
sys@IVLDB> show parameter paga
sys@IVLDB> show parameter pga

NAME                                 TYPE        VALUE
------------------------------------ ----------- --------
pga_aggregate_target                 big integer 12896M

经查询,这两个数据库内存 参数使用的是生产数据库的值,经询问得知,同事在恢复这套测试库的时候,使用的是生产的spfile,没有改参数,测试服务器是64G内存,这么设置明显内存不够。最后将SGA和PGA都设置为10G,重启数据库后,目前还没有发现使用交换分区的情况。

本文固定链接: http://www.dbdream.com.cn/2016/04/oracle%e6%95%b0%e6%8d%ae%e5%ba%93%e5%86%85%e5%ad%98%e8%ae%be%e7%bd%ae%e8%bf%87%e5%a4%a7%ef%bc%8c%e5%af%bc%e8%87%b4%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%bc%82%e5%b8%b8%e7%bc%93%e6%85%a2/ | 信春哥,系统稳,闭眼上线不回滚!

该日志由 dbdream 于2016年04月29日发表在 Oracle, oracle 10g, oracle 11g 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: ORACLE数据库内存设置过大,导致服务器异常缓慢 | 信春哥,系统稳,闭眼上线不回滚!
关键字: , ,

ORACLE数据库内存设置过大,导致服务器异常缓慢:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter