#!/usr/bin/ksh
echo "start delete link"
querysessionnum=`sqlplus / as sysdba << EOF
Select count(*) from v\\$session where status='INACTIVE';
Select sid,SERIAL# from v\\$session where status='INACTIVE';
EOF`
sessionnum=`echo $querysessionnum | awk -F'SQL>' '{print $2}' | awk -F' ---------- ' '{print $2}'`
echo "link number :"$sessionnum
if [ $sessionnum = 0 ]
then
echo "don't need kill link"
exit
fi
sessionsidser=`echo $querysessionnum | awk -F'SQL>' '{print $3}'`
i=2
while true
do
sessionsids=`echo $sessionsidser | awk -F'SID SERIAL# ---------- ----------' '{print $'$i';}' | awk -F'rows selected.' '{print $1}'`
if [ "x$sessionsids" = "x" ]
then
break;
fi
numindex=1
while true
do
sessionsidone=`echo $sessionsids | awk -F' ' '{print $'$numindex';}'`
if [ "x$sessionsidone" = "x" ]
then
break;
fi
let numindex=numindex+1
sessionsidtwo=`echo $sessionsids | awk -F' ' '{print $'$numindex';}'`
if [ "x$sessionsidtwo" = "x" ]
then
break;
fi
let numindex=numindex+1
echo "alter system kill session '$sessionsidone,$sessionsidtwo';" >> dellik.sql
done
let i=i+1
done
sqlplus / as sysdba << EOF
@dellik.sql
EOF
rm dellik.sql
linknumcount=`sqlplus / as sysdba << EOF
Select count(*) from v\\$session where status='INACTIVE';
Select sid,SERIAL# from v\\$session where status='INACTIVE';
EOF`
linkcount=`echo $querysessionnum | awk -F'SQL>' '{print $2}' | awk -F' ---------- ' '{print $2}'`
echo "link number : "$linkcount
echo "execute execute"
echo "start delete link"
querysessionnum=`sqlplus / as sysdba << EOF
Select count(*) from v\\$session where status='INACTIVE';
Select sid,SERIAL# from v\\$session where status='INACTIVE';
EOF`
sessionnum=`echo $querysessionnum | awk -F'SQL>' '{print $2}' | awk -F' ---------- ' '{print $2}'`
echo "link number :"$sessionnum
if [ $sessionnum = 0 ]
then
echo "don't need kill link"
exit
fi
sessionsidser=`echo $querysessionnum | awk -F'SQL>' '{print $3}'`
i=2
while true
do
sessionsids=`echo $sessionsidser | awk -F'SID SERIAL# ---------- ----------' '{print $'$i';}' | awk -F'rows selected.' '{print $1}'`
if [ "x$sessionsids" = "x" ]
then
break;
fi
numindex=1
while true
do
sessionsidone=`echo $sessionsids | awk -F' ' '{print $'$numindex';}'`
if [ "x$sessionsidone" = "x" ]
then
break;
fi
let numindex=numindex+1
sessionsidtwo=`echo $sessionsids | awk -F' ' '{print $'$numindex';}'`
if [ "x$sessionsidtwo" = "x" ]
then
break;
fi
let numindex=numindex+1
echo "alter system kill session '$sessionsidone,$sessionsidtwo';" >> dellik.sql
done
let i=i+1
done
sqlplus / as sysdba << EOF
@dellik.sql
EOF
rm dellik.sql
linknumcount=`sqlplus / as sysdba << EOF
Select count(*) from v\\$session where status='INACTIVE';
Select sid,SERIAL# from v\\$session where status='INACTIVE';
EOF`
linkcount=`echo $querysessionnum | awk -F'SQL>' '{print $2}' | awk -F' ---------- ' '{print $2}'`
echo "link number : "$linkcount
echo "execute execute"