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

[经验分享] (转)linux自动备份oracle数据库并上传到备份服务器 脚本实现

[复制链接]

尚未签到

发表于 2017-12-11 13:44:09 | 显示全部楼层 |阅读模式
  实际项目中,备份数据是不可缺少的一步,完成数据的自动备份减少个人的工作量,是我们的目标。之前很少写过脚本,不过这些简单的操作还是可以做到的!话不多说,开始具体介绍:
  oracle版本:10.2.0
  操作系统:linuxredhat6.3
  具体操作:
  (1)在服务器上创建备份目录,并赋予权限
  mkdir -p /backup/oracledata #新建Oracle数据库备份目录
  chown -R oracle:oinstall /backup/oracledata -R #设置目录权限为oinstall用户组的oracle用户(用户oracle与用户组oinstall是在安装Oracle数据库时设置的)
  (2)完成备份脚本
  vi /backup/oracledata/ordatabak.sh #新建文件
  加入下面信息:
  #!/bin/sh ORACLE信息可以通过 .bash_profile 查看
  export ORACLE_BASE=/oracle/app/oracle
  export ORACLE_SID=orcl
  export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
  export PATH=$PATH:$ORACLE_HOME/bin
  export ORACLE_TERM=xterm
  export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin:/usr/bin:/sbin:/usr/sbin
  export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:/lib:/usr/lib: /usr/local/lib
  export LANG=C
  export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
  #以上代码为Oracle数据库运行账号oracle的系统环境变量设置,必须添加,否则crontab任务计划不能执行。
  dateTime=`date +%Y_%m_%d` #当前系统时间
  days=7 #删除7天前的备份数据s
  orsid='127.0.0.1:1521/orcl' #oralce连接信息
  orowner=oracle # 备份此用户下面的数据
  bakuser=oracle #用此用户来执行备份,必须要有备份操作的权限
  bakpass=oracle #执行备注的用户密码
  bakdir=/DATA/bakorcldata/moodle #备份文件路径,需要提前创建好
  bakdata=$orowner"_"$dateTime.dmp #备份数据库名称
  baklog=$orowner"_"$dateTime.log #备份执行时候生成的日志文件名称
  ordatabak=$orowner"_"$dateTime.tar.gz #最后保存的Oracle数据库备份文件
  remotePath=/opt/oracle/bakorcl/ #上传到远程服务器的路径
  cd $bakdir #进入备份目录
  mkdir -p $orowner #按需要备份的Oracle用户创建目录
  cd $orowner #进入目录
  exp $bakuser/$bakpass@$orsid grants=y owner=$orowner file=$bakdir/$orowner/$bakdata log=$bakdir/$orowner/$baklog #执行备份
  tar -zcvf $ordatabak $bakdata $baklog #压缩备份文件和日志文件
  find $bakdir/$orowner -type f -name "*.log" -exec rm {} \; #删除备份文件
  find $bakdir/$orowner -type f -name "*.dmp" -exec rm {} \; #删除日志文件
  find $bakdir/$orowner -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \; #删除7天前的备份(注意:{} \中间有空格)
  scp $bakdir/$orowner/$ordatabak 192.168.0.10:$remotePath #将备份文件上传到远程服务器 如果不输人密码上传请参考http://blog.sina.com.cn/s/blog_957ef38b0102vuxy.html
  :wq! 保存 退出
  (3)添加脚本执行权限
  chmod +x /backup/oracledata/ordatabak.sh #添加脚本执行权限
  (4)编辑系统任务执行计划
  crontab -e
  输入一下信息“:
  00 01 * * * /DATA/bakorcldata/oradatabak.sh#每天凌晨1点,以oracle用户执行ordatabak.sh备份文件
  :wq! #保存退出
  重启crontab
  service crond restart
  从此每天的凌晨1点 系统会自动完成数据库的备份,压缩,并上传到远程服务器的指定路径下!

运维网声明 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-422982-1-1.html 上篇帖子: Java代码调用Oracle的存储过程,存储函数和包 下篇帖子: 『ORACLE』设置快速恢复区(11g)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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