十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
利用crontab 执行计划和RMAN结合来实现 数据库的自动备份
成都创新互联公司专业为企业提供海淀网站建设、海淀做网站、海淀网站设计、海淀网站制作等企业网站建设、网页设计与制作、海淀企业网站模板建站服务,10余年海淀做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
现象:
利用计划任务来执行备份,只是生成了目录,却没有生成备份文件
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 进去