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 {} \;

#find $bakdir  -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \;

注:1、用户名/密码 写自己用的即可;

2、另外删除10天前的备份tar.gz文件和所有的log、dmp文件被我注释掉了根据需要可以用;

Linux系统下Oracle数据库自动备份脚本经验分享_第1张图片

4、 添加脚本执行权限

chmod +x /backup/oracledata/ordatabak.sh 


5、在Oracle用户下添加定时任务
su - oracle 
crontab -e 
30 2 * * * oracle  /backup/oracledata/ordatabak.sh

#每天凌晨2点30分,以oracle用户执行ordatabak.sh备份文件

Linux系统下Oracle数据库自动备份脚本经验分享_第2张图片

6、重启crond
service crond restart 

7、完事

步骤要点:

1、编辑脚本文件时,不能再Windows下编辑后复制上去,这样文件格式不对;

2、用户的执行权限要检查是否有;

2、设置定时任务时,Oracle的环境变量不能错,否则不能执行;

3、添加定时任务时,如果是在用户下添加定时任务时,不需要加用户名比如:

Linux系统下Oracle数据库自动备份脚本经验分享_第3张图片


你可能感兴趣的:(Oracle数据库)