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 】):