CentOS7自动备份oracle数据库

1、环境

  操作系统:CentOS 7

  数据库:11.2.0.1.0 

2、登录服务器

  切换oracle用户,备份需要在oracle用户下进行

  #su - oracle

  在oracle家目录下创建bin目录(存放备份脚本)和backup目录(存放备份文件)

  #mkdir /home/oracle/bin

  #mkdir /home/oracle/backup

  创建backup.sh脚本

  #vim /home/oracle/bin/backup.sh

  脚本内容:  

[  

#!/bin/bash
#刷新环境变量,很重要!!!
source /etc/profile
source ~/.bash_profile

#备份文件存放目录

dir=/home/oracle/backup/
cd $dir

#备份文件命名 YYYY-MM-DD_HH:mm
name=`date +%F_%T`
#备份语句,在服务器上备份用服务名,不能用实例名

exp 用户名/密码@服务名 file=$dir/${name}.dmp owner=用户名

#删除7天前的备份
find $dir -name "*.dmp" -mtime +7 | xargs rm -rf

]

存盘退出

  添加脚本执行权限

  #chmod +x  backup.sh

3、添加计划任务

  #crontab -e

  添加内容:

[

30 23  * * * /home/oracle/bin/backup.sh > /dev/null 2>&1     #每天晚上11点半执行一次,所有输出或错误定向至/dev/null,否则会发送邮件给oracle用户

]  

4、重启crond服务

  切换到root

  #systemctl restart crond

 

 

测试效果(为检验效果计划任务设置了5分钟执行一次【*/5  *  *  *  *  /home/oracle/bin/backup.sh > /dev/null 2>&1     】):

 

 

posted @ 2020-04-01 15:34  leihongnu  阅读(1623)  评论(0编辑  收藏  举报