topas里有3个oracle进程各占25%CPU,一直高居不下,数据库很慢。v$session里发现这三个进程都是由同一个用户用三个PL-SQL DEVELOPER连接的,都是ACTIVE的,没有LOCK,当时他已经下班回家,并说没做什么操作。我就用ALTER SYSTEM把它们KILL掉,V$SESSION里它们的状态就变成'KILLED'了(按道理应该是由ACTIVE直接断开了),然后OS 里,topas的这三个进程占用的资源还是一样,没有下降。只好在OS里把这三个进程都KILL掉了,数据库才正常。
这是怎么回事?ALTER SYSTEM KILL SESSION这么没力?
答复:
session就是會話啊,能不能這樣理解,session主要是和數据庫后台來交流,而process主要是和用戶來交流。
這種情況我一般,用process查看用戶的動作,找出相應sql,如果session是inactive或者沒有sql的話,確定不影響應用的情況下,直接在os級kill掉相應進程,如果用kill session,是需要一定時間來等pmon進程釋放資源的,還有一點是,你用kill session后,是不能再用此session 的sid找到os process了,所以kill session之前要先記住對應os process!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/668365/viewspace-924124/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/668365/viewspace-924124/