设为首页 收藏本站
查看: 479|回复: 0

[经验分享] Crontab实现Oracle自动备份数据

[复制链接]

尚未签到

发表于 2015-12-19 14:34:25 | 显示全部楼层 |阅读模式
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
 
   经过以上的这些操作,系统每天晚上将会自动备份数据库,并且将自动备份的文件拷贝到远程主机上.这里只是简单的介绍一下,也算是对最近研究的东东的一些总结,这里并没有涉及到增量备份的一些概念,估计这个不会再去研究了
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-153374-1-1.html 上篇帖子: AIX6.1下 Oracle 10g的安装 下篇帖子: ORACLE安装./runInstaller报\"You are attempting to install 64
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表