技术分享
CentOS7下 Oracle11g 自动备份
2021-06-05
CentOS7下 Oracle11g 自动备份
关于Oracle11 g 在CentOS7 上设置自动备份的过程,做个记录。
步骤:
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=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
- 标签:
-
技术分享