暂无图片
分享
文成
2019-03-15
数据库如何通知操作系统杀掉进程
在v$process中的部分进程的addr在v$session匹配不到,且此类进程越来越多,导致数据库进程数目超过限制。此类进程如何处理?solaris oracle 11.2.0.1
收藏
分享
2条回答
默认
最新
章芋文

如下是我之前写的一个清理僵死进程的脚本,供参考:

#!/bin/sh
. /home/oracle/.profile
sqlplus -s / as sysdba <<EOF
set pagesize 0 
set long 90000 
set feedback off 
set echo off 
spool killed_pid.txt
select spid from v\$process where program!= 'PSEUDO' and addr not in (select paddr from v\$session) and addr not in (select paddr from v\$bgprocess) and addr not in (select paddr from v\$shared_server);
spool off
exit;
EOF
echo ''>1.log
echo ''>kill_pid.sh
cat killed_pid.txt| while read line
do
if `ps -ef|grep $line|grep LOCAL=NO`
then echo `ps -ef|grep $line|grep LOCAL=NO`>>1.log
echo "kill -9  $line">>kill_pid.sh
fi
done
暂无图片 评论
暂无图片 有用 0
章芋文
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏