失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > linux自动备份oracle数据库并上传到备份服务器 脚本实现(转)

linux自动备份oracle数据库并上传到备份服务器 脚本实现(转)

时间:2018-09-05 17:42:39

相关推荐

linux自动备份oracle数据库并上传到备份服务器 脚本实现(转)

实际项目中,备份数据是不可缺少的一步,完成数据的自动备份减少个人的工作量,是我们的目标。之前很少写过脚本,不过这些简单的操作还是可以做到的!话不多说,开始具体介绍:

oracle版本:10.2.0

操作系统:linuxredhat6.3

具体操作:

(1)在服务器上创建备份目录,并赋予权限

mkdir -p /backup/oracledata#新建Oracle数据库备份目录

chown -Roracle:oinstall /backup/oracledata -R #设置目录权限为oinstall用户组的oracle用户(用户oracle与用户组oinstall是在安装Oracle数据库时设置的)

(2)完成备份脚本

vi /backup/oracledata/ordatabak.sh#新建文件

加入下面信息:

#!/bin/shORACLE信息可以通过 .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@$orsidgrants=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 -execrm -rf {} \;#删除7天前的备份(注意:{} \中间有空格)

scp$bakdir/$orowner/$ordatabak 192.168.0.10:$remotePath#将备份文件上传到远程服务器 如果不输人密码上传请参考/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点 系统会自动完成数据库的备份,压缩,并上传到远程服务器的指定路径下!

如果觉得《linux自动备份oracle数据库并上传到备份服务器 脚本实现(转)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。