centos7系统下oracle 11g自动备份
1. root用户登录oracle服务器
#新建Oracle数据库备份存放目录
mkdir –p /home/oracle/backup
#设置目录权限为oinstall用户组的oracle用户
chown–R oracle:oinstall /home/oracle/backup
2. 创建目录对象
因为使用expdp命令需要使用到目录对象(directory),所以首先需要创建目录对象,并赋予某个用户对象的操作权限。
操作步骤如下:
#切换到oracle用户
Su – oracle
#切换到SQLPLUS环境
Sqlplus / as sysdba
执行以下命令:
#制定EXPDP输出目录
create directory expdp_bak_dir as ‘/home/oracle/backup’;
#授予system权限
grant create any directory to system;
3. 编辑自动备份脚本
#新建脚本文件
vi /data/oracle/AutoBackup.sh
#脚本文件内输入以下代码
#!/bin/sh
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=/data/oracle/product/11.2.0/db_1
export ORACLE_SID="orcl"
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export DATA_DIR=/home/oracle/backup
rq=`date +%Y%m%d`
cleardate=`date -d "1 month ago" +%Y%m%d`
rm -rf /home/oracle/backup/YG$rq.dmp
expdp system/tjca1q@orcl dumpfile=YG$rq.dmp logfile=log_YG$rq.log directory=expdp_bak_dir schemas=tjca compression=all
#以上,rq为日期;cleardate为清除日期(1 month ago一个月前);rm为删除命令;schemas=用户对象;compression为压缩,值为all时代表全压缩。
按Ctrl+c退出编辑模式,按shift+:输入wq 写入并退出。
4. 设置系统自动定时执行备份脚本
#编辑系统任务计划
vi /etc/crontab
#将下列代码写入最后一行(如第一次设置则为空文件):
00 23 * * * oracle /data/oracle/AutoBackup.sh
#:wq写入退出
#以上语句代表:每天23:00,以oracle用户执行AutoBackup.sh脚本文件进行备份。
servicecrond restart#重启系统计划服务
crontab–l #查看任务是否设置成功
#crond常用命令
service crond start #启动服务
service crond start #停止服务
service crond restart #重启服务
service crond reload #重新载入配置