利用crontab 执行计划和RMAN结合来实现 数据库的自动备份
现象:
利用计划任务来执行备份,只是生成了目录,却没有生成备份文件
1: 手动执行备份脚本,没有问题
2:crontab 计划任务,能够生成目录,却不能产生备份文件,说明crontab 确实执行了脚本
但是没有生成备份文件,问题可能就出在crontab和rman的结合上
理解:
crontab 虽然是在oracle用户下执行的,但是crontab不能自动加载环境变量,所以如果备份脚本里没有
读取环境变量,自动备份的时候,自然就不会成功
解决:
在备份脚本里,
###################################################################################################
# set environment variable
source /home/oracle/.bash_profile # 把配置环境变量的文件 source进来
在执行,就是可以得了
总结:
1: 不能在root下去执行脚本备份oracle,需要在oracle用户下制定计划任务
[root@bzdb ~]# crontab -l -u oracle
50 23 * * 0 /script/level0.sh
50 23 * * 1-6 /script/level1.sh
2: crontab 不能自动加载环境变量,需要在脚本里将环境变量source 进去