oracle数据库自动备份脚本

1、rman备份 

rman备份脚本:

#!/bin/sh
. ~/.bash_profile

log_file='oracle-rman-export.log'
function log(){
 cur_dateTime=`date +%Y-%m-%d,%H:%M:%S`
 echo $cur_dateTime'-->'$1
 echo $cur_dateTime'-->'$1 >>$log_file 2>&1
}

rman_base_dir=/home/oracle/rmanbak
baK_dir=`date +%Y%m%d`
cd $rman_base_dir
mkdir $baK_dir
log "--->begin run bak oracle ,date dir:$baK_dir"
/home/u01/app/oracle/product/11.2.0/db_1/bin/rman target / << EOF
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
sql 'alter system switch logfile';
backup as compressed backupset filesperset 10 incremental level 0 database format "$rman_base_dir/$baK_dir/db_full_bk_%d_%T_%t_%s_%p";
sql 'alter system switch logfile';
release  channel c1 ;
release  channel c2 ;
release  channel c3 ;
release  channel c4 ;

}
EOF

 

rman定时备份结果:

 

2、expdp

expdp 备份脚本:

#!/bin/sh
. ~/.bash_profile

log_file='oracle-export.log'
function log(){
 cur_dateTime=`date +%Y-%m-%d,%H:%M:%S`
 echo $cur_dateTime'-->'$1
 echo $cur_dateTime'-->'$1 >>$log_file 2>&1
}


data=`date +%Y%m%d`
log "begin export  db ,file[$DPDIR/${data}.dmp]"
expdp system/123456 schemas=HTOrder directory=DPDIR dumpfile=erp-${data}.dmp >> $log_file 2>&1
log "end export db"
archive_file_count=`find /home/oracle/dump -name *dmp|wc -l` #自动删除历史,保留最后的4天有效文件
if [ $archive_file_count -gt 4 ]; then
  log "begin delete oracle data archive file"$archive_file_count
  find /home/oracle/dump -mtime +3 -type f -name "*dmp" |xargs rm -f
fi

 

定时备份效果:

 

定时器:

41 2 * * *  /home/oracle/rmanbak.sh

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值