1、root用户下创建备份路径:
mkdir /opt/data/backup
chown oralce:oinstall /opt/data/backup
mkdir /opt/data/backup/log
chown oralce:oinstall /opt/data/backup/log
2、oracle用户创建备份脚本路径:
su oracle
mkdir /opt/data/backup/bin
cd /opt/data/backup/bin
注意:必须在oracle用户下创建,如果不是但已经创建文件可以进去给文件指定相关用户
chown oralce:oinstall /opt/data/backup/bin
chown oralce:oinstall db_backup.sh
3、创建备份脚本
cd /opt/data/backup/bin 进入目录
touch db_backup.sh 创建脚本文件,名字为db_backup
vim db_backup.sh 开始编辑sh文件
4、编辑脚本
#!/bin/sh
#本脚本自动每天凌晨3点备份数据库,备份完成后
#环境变量可以自行查看/homne/oracle/.bash_profile
export ORACLE_BASE=/opt/data/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl
#获取当前时间
BACKUPTIME=$(date +%Y%m%d)
#文件类型
dmpwj=.dmp
logwj=.log
#备份的文件名
DMPNAME=bk-$BACKUPTIME$dmpwj
#备份的日志名
LOGNAME=bk-$BACKUPTIME$logwj
echo $BACKUPTIME
echo $DMPNAME
echo $LOGNAME
#导出命令
#expdp 用户名/密码@实例名 directory=数据库逻辑目录名称 schemas=用户名 dumpfile=$DMPNAME logfile=$LOGNAME
exp pdsluice/pdsluice2021@orcl file=/opt/data/backup/$DMPNAME log=/opt/data/backup/log/$LOGNAME owner=pdsluice
echo ‘备份完成’
#echo ‘移动中’
#移动log 文件
#cd /opt/data/dackup
#sudo -S mv $LOGNAME /opt/data/dackup/log/
#echo “移动完成”
#echo “删除中”
#删除30天以前的数据库文件 (这里使用sudo提权是因为oracle用户对/mnt/nas/dbbak/目录没有写入权限)
#echo “oracle用户密码” | sudo -S find /opt/data/dackup/ -mtime +30 -name “*.dmp” -exec rm -rf {} \;
#删除30天以前的日志文件
#find /opt/data/dackup/log/ -mtime +30 -name “*.log” -exec rm -rf {} \;
5、给脚本赋予执行权限
chmod 777 db_backup.sh
6、创建定时任务
crontab -e //建立定时任务
0 3 * * * /opt/data/backup/bin/db_backup.sh //编写任务内容在这里插入代码片
*其他注意事项
/var/spool/mail/ 目录下的oracle文件可查看计划执行详情
命令: service crond status 确认定时任务是否开启?
命令: service crond start 开启服务
命令: service crond stop 关闭服务
命令: service crond restart 重启服务
命令: service crond reload 重新载入配置
crontab -e 编辑某个用户的cron服务
crontab -l 列出某个用户cron服务的详细内容
crontab -r 删除某个用户的cron服务(慎用)