linux下数据库自动备份

原创
2019/09/04 09:25
阅读数 135

#!/bin/bash
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export ORACLE_SID=apdb
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

#以上代码为Oracle数据库运行账号oracle的系统环境变量设置,必须添加,否则crontab任务计划不能执行。
date=`date +%Y_%m_%d`   #获取系统当前日期时间
days=10  #设置删除10天之前的备份文件
orsid=127.0.0.1:1521/apdb #Oracle数据库服务器IP、端口、SID
orowner=scfs  #备份此用户下面的数据
bakuser=scfs   #用此用户来执行备份,必须要有备份操作的权限
bakpass=scfs  #执行备注的用户密码
bakdir=/home/scfs_oracle_bf  #备份文件路径,需要提前创建好
bakdata=$orowner"_"$date".dmp" #备份数据库名称
echo $bakdata
baklog=$orowner"_"$date.log #备份执行时候生成的日志文件名称
ordatabak=$orowner"_"$date.tar.gz #最后保存的Oracle数据库备份文件
cd $bakdir #进入备份目录
mkdir -p $orowner #按需要备份的Oracle用户创建目录
cd $orowner #进入目录
exp $bakuser/$bakpass@$orsid file=$bakdir/$orowner/$bakdata  #执行备份
find $bakdir/$orowner  -type f -name "*.dmp" -mtime +$days -exec rm -rf {} \;  #删除5天前的备份

#授权脚本执行权限
chmod +x ordatabak.sh 

编辑系统任务执行计划

crontab -e
输入一下信息:
00 03 * * * /home/scfs_oracle_bf/ordatabak.sh #每天凌晨3点,以oracle用户执行P_DB_BAK.sh备份文件
:wq! #保存退出

#重启crontab

service crond restart

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部