linux下数据库自动备份

#!/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

转载于:https://my.oschina.net/zxm1618/blog/3101654

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值