netpro-fd备份oracle数据库时清理残留rman进程

linux 下处理rman备份进程残留:

产生情况:
1、正常取消作业,fd和插件内部已经处理,rman进程可以正常退出

2、异常情况导致rman进程残留,netpro-fd没有退出
解决方案:
为区分找到netpro-fd启动的rman进程,拷贝$ORACLE_HOME/bin/rman到/usr/NETPRO5.02.8/bin/下备份脚本中使用这个rman启动备份,

备份脚本hzmh_rman.sh修改为
#! /bin/sh
ps -ef |grep NETPRO5.02.8/bin/rman |grep -v grep | awk ‘{print $2}’ | xargs kill -9
su – oracle -c “/usr/NETPRO5.02.8/scripts/rman_orcl.sh”
备份作业启动前杀死由我们netpro-fd调起的rman进程

备份脚本rman_orcl.sh使用这个/usr/NETPRO5.02.8/bin/rman启动备份,
将RMAN=$ORACLE_HOME/bin/rman修改为RMAN=/usr/NETPRO5.02.8/bin/rman

3、异常情况导致rman进程残留,netpro-fd退出
解决方案:
这种情况下fd无法做任何处理,可以在crontab中作一个任务,检测netpro-fd客户端退出时,杀死rman进程,重启客户端

#! /bin/sh
pid_fd=`ps -ef | grep netpro-fd | grep -v grep | awk ‘{print $2}’`
if [ -z “$pid_fd” ]
then
`ps -ef |grep NETPRO |grep -v grep |grep rman | awk ‘{print $2}’ | xargs kill -9`
netprostop
netprostart
fi