oracle数据本机自动备份

1、创建三个文件

exp.list  内容:oracle数据库的用户名和密码

name pwd

exp.log   主要用于存储在自动备份数据库时的日志信息

exp.sh

#!/bin/sh

#找到数据库的路径
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=orcl
export NLS_LANG=American_America.ZHS16GBK
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

#执行路径
cd /home/oracle/dbbackup
exptime=$(date +%Y-%m-%d_%H)
 
#读取创建的exp.list文件里的用户名及密码
cat exp.list | while read dbUser dbPasswd
do                                                                                        
        echo $dbUser
         exp $dbUser/$dbPasswd GRANTS=Y file=$dbUser"_"$exptime.dmp    #执行导出
        if [ "0" == $? ]
        then
                   tar -zcvf $dbUser"_"$exptime.dmp.tar.gz $dbUser"_"$exptime.dmp
                   rm $dbUser"_"$exptime.dmp
         fi
done
#rm file which is 6 days before
find . -mtime +6 -name "*.dmp.tar.gz" |xargs rm

2、本脚本加入定时任务里面

crontab  -e

30 23 * * 0 /home/oracle/dbbackup/exp.sh >> /home/oracle/dbbackup/exp.log 2>&1

意思是:每星期周日的晚上2330分执行/home/oracle/dbbackup下的exp.sh脚本,如果脚本执行报错会把错误信息放到exp.log下面。

posted @ 2015-08-13 17:45  豆苗稀  阅读(300)  评论(0编辑  收藏  举报