`
eyejava
  • 浏览: 1256329 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

oracle强行终止后遗症

    博客分类:
  • DB
阅读更多
提交了一条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中那堆进程也统统slepping去了。不过占了的内存却没有还回我的意思,空闲内存只是从16M 涨到了21M。

原因还未知 

再次reboot后,内存终于空闲了3.2G了。不过担心的经过大数据量的运算后oracle不会又是不释放内存吧,以后每个月都得有大量计算呢
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics