Oracle 定时备份

Updated on with 0 views and 0 comments

目标

定时备份某用户的所有表

创建 sh 脚本

[oracle@szyxDBServer u01]$ vim backup.sh

#!/bin/bash
#本脚本自动备份30天的数据库,每次备份完成后,删除30天之前的数据。

#设置环境变量
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin

#获取当前时间,格式:20191115
DATE=$(date +%Y%m%d)
#获取30天之前的时间
DATE_RM=$(date -d "30 days ago" +%Y%m%d)
#设置备份目录,
export DIR=/u01/expback
#开始备份,此处采用exp方式导出
echo 'Oracle backup...'
exp user/password@ORADB  file=$DIR'/szyxadm_'$DATE'.dmp' buffer=20480 log=$DIR'/szyxadm_log_'$DATE'.log'
echo 'Oracle backup successfully.'
echo 'remove...'
rm -rf $DIR'/szyxadm_'$DATE_RM'.dmp'
rm -rf $DIR'/szyxadm_log_'$DATE_RM'.log'
echo 'remove successsfully.'

赋权

[oracle@szyxDBServer u01]$ chmod 777 ./backup.sh

创建定时任务

[oracle@szyxDBServer u01]$ crontab -e

每天两点执行一次

0 2 * * * /u01/backup.sh

查看定时任务
[oracle@szyxDBServer u01]$ crontab -l