Windows中有计划任务,可以添加自动执行某某任务,unix中也有此功能,cron进程可以完成周期性地自动执行命令,从而实现自动执行作业的功能,下面就介绍一下用crontab实现oracle自动备份:
一、用crontab自动执行作业
现在用oracle用户登陆,
$crontab -e oracle
00 22 * * * /export/home/oracle9/backup.sh
00 02 * * * ftp -i server2
也就是每天晚上22点自动执行/orabak/下的backup.sh脚本,这个shell脚本的功能就是实现自动备份oracle数据库,每天2点自动执行ftp作业,来进行异地备份,稍后会介绍这些内容
二、实现自动备份的shell脚本
backup.sh脚本如下:
#!/usr/bin/ksh
ORACLE_HOME=/exprort/home/oracle9/app/oracle/product/9.2.0.1/
ORACLE_BASE=/export/home/oracle9/app/oracle/
ORACLE_SID=ora9i
export ORACLE_HOME ORACLE_BASE ORACLE_SID
PATH=$ORACLE_HOME/bin:/usr/bin:/etc:/usr/sbin:.
rm /orabak/backup9.dmp
mv /orabak/backup8.dmp /orabak/backup9.dmp
mv /orabak/backup7.dmp /orabak/backup8.dmp
mv /orabak/backup6.dmp /orabak/backup7.dmp
mv /orabak/backup5.dmp /orabak/backup6.dmp
mv /orabak/backup4.dmp /orabak/backup5.dmp
mv /orabak/backup3.dmp /orabak/backup4.dmp
mv /orabak/backup2.dmp /orabak/backup3.dmp
mv /orabak/backup1.dmp /orabak/backup2.dmp
mv /orabak/autobak.dmp /orabak/backup1.dmp
exp system/oracle@ora9 owner=testfile=/orabak/autobak.dmp log=/orabak/exp.log
shell脚本的开头一段是引了oracle用的.profile的文件内容来定义环境变量,接着为了实现保留多个时间的备份文件,在备份之前用一段shell命令将备份文件按次序挨个改名,保留的备份文件个数可自由设置,这样就实现了滚动备份,系统永远只保留最近的备份,避免时间一长硬盘空间不够的问题.最后exp导出数据库,根据需要后面还可以加cp命令把备份的文件拷贝到本地的其它磁盘中.
脚本编辑好了以后,执行以下命令chmod 755 /orabak/backup.sh使这个shell脚本变为可执行文件.这样自动备份的脚本就完成.按照前面的crontab里的计划时间每天晚上22点就会自动执行此文件来进行备份了.
三、用ftp实现自动异地备份
为了数据更加安全,可能会需要将备份文件放到别的机器的磁盘里保存,这时可以用ftp实现自动上传.
ftp通常是通过交互方式实现的,即需要手工输入目标主机的IP地址﹑用户名﹑口令等等.但是这种方式不能满足自动备份的要求,我们可以通过编写一个.netrc文件来实现自动传输文件.
在自己的home目录下名为.netrc的文件,内容是:
machine 10.70.13.9 login oracle9 password test
修改文件权限为600
#chmod 600 .netrc
这样以后你每次ftp10.70.13.9的时候,系统都会帮你以用户名oracle9,密码test登录。
利用这个特征可以实现自动ftp。
建立一个文件ftp_cmd,内容为:
bin #文件的传输方式设为二进制
lcd /oradata/backup #进入本地的工作目录/orabak
cd /export/home5/oildatabak/ #进入目标主机的工作目录/orabak
mput *.dmp #将/orabak目录下的所有dmp备份文件传输至目标主机
bye #退出ftp会话进程
然后使用crontab -e设置定时任务:
0 5 * * * ftp 10.70.13.9< ftp_cmd
经过以上的这些操作,系统每天晚上将会自动备份数据库,并且将自动备份的文件拷贝到远程主机上.这里只是简单的介绍一下,也算是对最近研究的东东的一些总结,这里并没有涉及到增量备份的一些概念,估计这个不会再去研究了
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14293828/viewspace-1429018/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14293828/viewspace-1429018/