搜档网
当前位置:搜档网 › Aix操作系统下的数据库自动备份

Aix操作系统下的数据库自动备份

Aix操作系统下的数据库自动备份

以前在Redhat for linux 5.5下曾经做过数据库自动备份的计划,原以为在aix操作系统下也应该一样。于是,按照linux下的方法进行了如下操作:

一、编写备份文件(vi bakfile.sh)

#set a filename to backup file 定义备份文件名称为bak_日期

bakfile=’bak_’$(date+%Y%m%d)



#export the backup file 定义备份文件的输出路径

exp username/password file=/home/$a.dmp



#Delete the backup file 定时删除备份文件

find /home –mtime +8 –name “bak_*.dmp” –exec rm –rf {} \;



二、自动执行计划

运用命令crontab –e编辑计划,在redhat操作系统中,直接用oracle账号登陆系统后,执行crontab –e时将产生新的任务计划,在新计划中输入计划执行的时间及运行的计划文件(00 19 * * * /home/bakfile.sh),系统即可自动执行。



三、错误及问题解决

问题:系统不执行自动备份计划。

错误排除:用Xmanager远程登录aix系统,切换到oracle帐号后,用sh命令执行脚本(sh /home/bakfile.sh),未发现异常。于是切换用root帐号登录后执行上述命令,出现错误exp无法执行。于是修改bakfile.sh中的输出语句:su – oracle –c exp username/password file=/home/$a.dmp,然后再次用命令执行,可以正常进行备份文件的输出。但接下来的几天并未自动执行该计划。经过对比查看/var/spool.cron/crontabs下的任务计划,发现在执行时可加入/bin/bsh –c,于是修改自动执行计划中的语句为:00 19 * * * /bin/bsh –c “sh /home/bakfile.sh”,结果成功。



四、总结

解决要点有三:1)在编写备份文件时,需要用su - oracle将用户切换至oracle用户,然后执行exp命令;2)编写计划时,直接用root帐号登录,然后用crontab –e,在弹出的内容中增加要执行的计划;3)在计划语句中增加/bin/bsh –c来执行。

相关主题