1、创建备份文件夹
su - root
mkdir /home/oracle/OracleDataBack
chown -R oracle:oinstall /home/oracle/OracleDataBack
2、创建虚拟路径用于存放dmp文件
su - oracle
echo $ORACLE_SID #查询当前数据库实例名
sqlplus / as sysdba
SQL> create directory exp_dir as '/home/oracle/OracleDataBack';
SQL> grant read,write on directory exp_dir to orcl_999; #授权给需要备份的数据库用户
3、新建Oracle备份脚本
su - oracle
cd /home/oracle/OracleDataBack
vi BackUp.sh
4、脚本内容如下:
#该部分内容请查看Oracle环境变量及自己的数据库的实际情况修改相应的内容
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_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=orcl_999
bakdata=$orowner"_"$(date +%Y%m%d%H%M).dmp
baklog=$orowner"_"$(date +%Y%m%d%H%M).log
#备份文件存储位置
bakdir=/home/oracle/OracleDataBack
cd $bakdir
expdp 用户/密码@orcl grants=y file=$bakdir/$bakdata log=$bakdir/$baklog
#编辑完成后点击Esc键,输入 :wq 保存退出
5、添加文本执行权限
chmod +x BackUp.sh
6、添加定时任务
su - oracle
crontab -e
30 2 * * * /home/oracle/OracleDataBack/oraclebak.sh #设置凌晨2点30分自动执行命令
#编辑完成后点击Esc键,输入 :wq 保存退出
service crond restart #重启crond