CentOS7下 Oracle11g 自动备份

CentOS7下 Oracle11g 自动备份

关于Oracle11 g 在CentOS7 上设置自动备份的过程,做个记录。

主要参考了: https://www.cnblogs.com/wtpgogo/articles/8493103.html 这篇博客。

步骤:
1. 使用root 用户登陆Oracle服务器,在Oracle安装目录下创建一个备份文件夹目录:(安装目录看个人)
mkdir –p /home/oracle/backup

2.设置目录权限为oinstall用户组的oracle用户
chown–R oracle:oinstall /home/oracle/backup

3.切换oracle 用户下:
su – oracle
在oracle 用户下进入sqlplus
sqlplus / as sydba

4.制定EXPDP输出目录(根据步骤1 创建的目录路径来写):
create directory expdp_bak_dir as ‘/home/oracle/backup’;

5.授予system权限
grant create any directory to system;

6.退出sqlplus
exit;

7.编写自动备份脚本
vi /home/oracle/autobackup.sh
脚本内容如下:
#!/bin/sh
#Oracle安装目录下的/app/oracle
export ORACLE_BASE=/home/oracle/app/oracle
#Oracle安装目录下的/app/oracle/product/11.2.0/ (11.2.0 下的文件夹根据每个人安装时设置的为准,不知道的可以进入目录下查看下在填写)
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1
#Oracle数据库的SID
export ORACLE_SID=“PROD”
#直接复制即可
export PATH= P A T H : 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/KaTeX parse error: Expected 'EOF', got '#' at position 8: rq.dmp #̲说明下下方的语句: #expd…rq.dmp logfile=log_$rq.log directory=expdp_bak_dir full=y

8.编辑系统任务计划
vi /etc/crontab
在最后一行添加(每天23:30分开始执行)
30 23 * * * oracle /home/oracle/autobackup.sh
最后保存退出

补充:
可以查看下任务是否设置成功:
crontab -l

可以设定一分钟执行一次,查看是否成功,成功执行后在修改定时。
一分钟执行一次的表达式为:
*/1 * * * * oracle /home/oracle/autobackup.sh

查看实时日志
tail -f /var/spool/mail/root

你可能感兴趣的:(数据库,Oracle,自动备份,CentOS7)