免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1276 | 回复: 0
打印 上一主题 下一主题

oracle强行终止后遗症,为啥不把内存还回我? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-29 17:40 |只看该作者 |倒序浏览
提交了一条sql,目的是把一张有2000万条记录的表的内容全部insert到另外一张表中,执行了2个小时没有完成。执行的过程中发现没必要这么做了,于是中断sql,但是pl/sql developer不理我,session logoff也不行,到enterprise manager里面中断会话->立即 也不行的样子,只好停止oralce了,sqlplus shutdown之后等半天也没有shutdown掉,只好再次shutdown abort,这下世界清净了,但是发现多了一个僵尸进程出来,kill -9也是无效的,看着很是不爽,而且4G 内存不知道被什么占用了2G多,看来有必要重启机器了。

重启机器后,telnet登录,满心欢喜的看到内存只用掉400M,但是仔细一瞧用掉的内存正在蹭蹭蹭的往上涨呢,5分钟左右达到了3G,真是晕。top后发现:
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                    
4801 oracle    16   0 1377m 411m 409m D    5 10.4   0:53.09 ora_dbw1_oraicbc                           
4822 oracle    15   0 1375m 785m 784m D    2 19.9   0:25.89 ora_p002_oraicbc                           
4799 oracle    15   0 1377m 412m 409m D    2 10.5   0:53.17 ora_dbw0_oraicbc                           
4820 oracle    15   0 1375m 785m 784m D    2 19.9   0:26.09 ora_p001_oraicbc                           
4824 oracle    15   0 1375m 785m 784m D    2 19.9   0:25.75 ora_p003_oraicbc                           
4826 oracle    15   0 1375m 785m 784m R    1 19.9   0:26.16 ora_p004_oraicbc


相加为100.4%的内存了,top太耸人听闻了。这时候还没有运行任何sql呢,也没有客户端去连接它。最大的可能就是在进行崩溃后的恢复和回退了,手工去drop之前 insert into的那张表,果然不能立即drop,pl/sql dev处于等待状态,但是两分钟后drop成功了。top中那堆进程也统统sleeping去了。不过占了的内存却没有还回我的意思,空闲内存只是从 16M 涨到了21M。

为什么呢?
os: centos 4.4_64
db: 9.2.0.4_64

[ 本帖最后由 eyejava 于 2007-3-29 17:43 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP