Linux系统下Oracle数据库自动备份脚本经验分享
1、新建Oracle数据库备份目录
mkdir -p /backup/oracledata
2、新建Oracle数据库备份脚本
vi /backup/oracledata/ordatabak.sh
3、脚本内容:
#!/bin/sh
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
orowner=DB
days=10
bakdata=$orowner"_"$(date +%Y%m%d).dmp
baklog=$orowner"_"$(date +%Y%m%d).log
ordatabak=$orowner"_"$(date +%Y%m%d).tar.gz
bakdir=/backup/oracledata
cd $bakdir
#exp 用户名/密码@orcl grants=y file=$bakdir/$bakdata log=$bakdir/$baklog
tar -zcvf $ordatabak $bakdata $baklog
#find $bakdir -type f -name "*.log" -exec rm {} \;
#find $bakdir -type f -name "*.dmp" -exec rm {} \;
su - oracle
crontab -e
30 2 * * * oracle /backup/oracledata/ordatabak.sh
service crond restart
mkdir -p /backup/oracledata
2、新建Oracle数据库备份脚本
vi /backup/oracledata/ordatabak.sh
3、脚本内容:
#!/bin/sh
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
orowner=DB
days=10
bakdata=$orowner"_"$(date +%Y%m%d).dmp
baklog=$orowner"_"$(date +%Y%m%d).log
ordatabak=$orowner"_"$(date +%Y%m%d).tar.gz
bakdir=/backup/oracledata
cd $bakdir
#exp 用户名/密码@orcl grants=y file=$bakdir/$bakdata log=$bakdir/$baklog
tar -zcvf $ordatabak $bakdata $baklog
#find $bakdir -type f -name "*.log" -exec rm {} \;
#find $bakdir -type f -name "*.dmp" -exec rm {} \;
#find $bakdir -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \;
注:1、用户名/密码 写自己用的即可;
2、另外删除10天前的备份tar.gz文件和所有的log、dmp文件被我注释掉了根据需要可以用;
chmod +x /backup/oracledata/ordatabak.sh
su - oracle
crontab -e
30 2 * * * oracle /backup/oracledata/ordatabak.sh
#每天凌晨2点30分,以oracle用户执行ordatabak.sh备份文件
service crond restart
7、完事
步骤要点:
1、编辑脚本文件时,不能再Windows下编辑后复制上去,这样文件格式不对;
2、用户的执行权限要检查是否有;
2、设置定时任务时,Oracle的环境变量不能错,否则不能执行;
3、添加定时任务时,如果是在用户下添加定时任务时,不需要加用户名比如: