oracle backup script

crontab:

20 5,12,20 * * * sh /u01/autorun/autoexp 1>/u01/autorun/log/autoexp.log 2>>/u01/autorun/log/autoexp.bad
#30 7 * * * sh /u01/autorun/chkdb.sh 1>/u01/autorun/log/chkdb.log 2>>/u01/autorun/log/chkdb.bad

sh:

esvcdb01</u01/autorun>$cat autoexp
#!/bin/sh
cd /u01/backup
ORACLE_HOME=/u01/product/oracle;export ORACLE_HOME
ORACLE_SID=esvcdb01;export ORACLE_SID
FILENAME=`date +%Y%m%d%H`
NLS_LANG=american.AL32UTF8;export NLS_LANG
/u01/product/oracle/bin/exp system/oratem file='esvc'$FILENAME full=y log=esvc$FILENAME.log

gzip 'esvc'$FILENAME'.dmp'

find /u01/backup -atime +1 -exec rm -f {} /;

chkdb.sh:

[root@esvcdb01 autorun]# cat chkdb.sh
#!/bin/sh
export ORACLE_HOME=/u01/product/oracle;
export ORACLE_OWNER=oracle;
export ORACLE_SID=esvcdb01
ALERT_FILE=/u01/product/admin/esvcdb01/bdump/alert_esvcdb01.log
REPORT=/tmp/report.log
TEMP_FILE=/tmp/temp.log
SUFFIX=`date +%a`

echo '-------------------- Alert log Begin --------------------' > $REPORT
echo '' >>$REPORT

awk '/ORA-|not|error/' $ALERT_FILE >> $REPORT
echo '--------------------  Alert log End  --------------------' >> $REPORT

echo '' >> $REPORT
echo '' >> $REPORT

echo '--------------------  Disk space Begin ------------------' >> $REPORT
echo '' >>$REPORT
df -h >>$REPORT
echo '--------------------  Disk space End  ------------------' >> $REPORT
echo '' >> $REPORT
echo '' >> $REPORT

echo '------------------- Tablespace usage ------------------- ' >> $REPORT

/u01/product/oracle/bin/sqlplus -S "/as sysdba" <<EOF
set feedback off
set trimspool on
spool $TEMP_FILE

SELECT   UPPER (f.tablespace_name) TABLESPACE, d.tot_grootte_mb "Total(M)",
         f.total_bytes "Unused(M)",
         TO_CHAR (ROUND (  100
                         -   (d.tot_grootte_mb - f.total_bytes)
                           / d.tot_grootte_mb
                           * 100,
                         2
                        ),
                  '990.99'
                 ) "Free(%)"
    FROM (SELECT   tablespace_name,
                   ROUND (SUM (BYTES) / (1024 * 1024)) total_bytes
              FROM SYS.dba_free_space
          GROUP BY tablespace_name) f,
         (SELECT   dd.tablespace_name,
                   ROUND (SUM (dd.BYTES) / (1024 * 1024), 2) tot_grootte_mb
              FROM SYS.dba_data_files dd
          GROUP BY dd.tablespace_name) d
   WHERE d.tablespace_name = f.tablespace_name
ORDER BY 4;

spool off;
exit;
EOF

cat $TEMP_FILE >> $REPORT
echo '------------------- Tablespace usage End ------------------- ' >> $REPORT

echo '' >> $REPORT
echo '' >> $REPORT

#cut log file
/bin/cp $ALERT_FILE $ALERT_FILE.$SUFFIX
/bin/cat /dev/null > $ALERT_FILE
echo 'Truncate Oracle log successfully!' >> $REPORT

#mail -s 'CSD TEST db daily report' -c jackie.jq.chen@foxconn.com sps.jerryliu@foxconn.com < $REPORT
mail -s 'CSD TEST db daily report' sps.jerryliu@foxconn.com < $REPORT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值