shell脚本之查看oracle连接数 、删除备库已经应用的归档

1.查看连接数

sqlplus -S '/ as sysdba' << EOF >> /tmp/connect.log
set feedback off
set heading off
set linesize 200
alter session set nls_date_format='yyyymm hh24:mi';
select sysdate from dual;
select inst_id,count(*) from gv\$process group by inst_id order by count(*);
EOF

假定每十分钟执行一次的话,创建crontab如下:

在linux下
*/10 * * * * su - oracle -c "sh /home/oracle/connect.sh " 1>/dev/null 2>&1

在aix下
0,10,20,30,40,50
* * * * su - oracle -c "sh /home/oracle/connect.sh " 1>/dev/null 2>&1

2.

. /home/oracle/.profile

if [ $# != 1 ]; then
echo ""Please input ORACLE SID !!!""
exit;
fi
export ORACLE_SID=$1
echo $ORACLE_SID

sqlplus -s '/ as sysdba' << ! > /home/oracle/work/old_arch_${ORACLE_SID}.dat
set feedback off
set heading off
set linesize 200
select name from v\$archived_log where FIRST_TIME < sysdate - 8/24
and APPLIED='YES';
!

>/home/oracle/work/old_arch_${ORACLE_SID}.sh
cat /home/oracle/work/old_arch_${ORACLE_SID}.dat|while read line
do
if [ ""$line"" ];then
if [ -f $line ];then
echo ""rm $line"" >> /home/oracle/work/old_arch_${ORACLE_SID}.sh
fi
fi
done

*************************

shell 拆分为如下

*************************

查询的name写入到一个文件当中

sqlplus -s '/ as sysdba' << ! > /tmp/datafile_${ORACLE_SID}.dat
set feedback off
set heading off
set linesize 200
set pagesize 300
select distinct object_type from dba_objects;
!

在生成的name上加上rm

cat /tmp/datafile_rac1.dat|while read line
do
echo ""rm $line"" >> /tmp/rm.sh
done

猜你喜欢

转载自www.cnblogs.com/dayu-liu/p/9651230.html