rman异机自动备份配置

一、Linux共享window目录

1.共享文件夹

创建 一个 目录(test)并设置 共享,修改 权限;


2.挂载目录

在linux数据库服务器上挂载共享 目录 ,例如挂载在/windows:

#mount -t cifs -o username=administrator,password=xxx //windows_ip/test  /windows

更改/etc/fstab,使其自动挂载,增加如下行。

//windows_ip/test  /windows cifs defaults,username=administrator,password=123456 0  2


二、备份配置

1.开启归档

SQL>shutdown immediate;

SQL>startup mount;

SQL>alter system set log_archive_dest_1='location=/archivelog' scope=both;

SQL>alter database archivelog;

SQL>alter database open;


2.创建脚本及日志存放目录,如:

#mkdir -p /scripts/log

#chmod -R 777 /scripts

#mkdir -p /windows/old


3.创建备份脚本

#vi  /scripts/backup.sh

#set the variables depending on your environment......
FULL='Sat'
RETENTION=7
CUMM='Wed'
BACKUP_OLD=/windows/old
BACKUP_DEST=/windows
BACKUP_LOG=/scripts/log  
ERROR_LOG=/scripts
CHECK_HOME=/windows 
ORACLE_USER=oracle
ORACLE_HOME=/oracle/product/db_1
ORACLE_SID=inhis
#define other variable......
BACKUP_DATE=`date +%Y%m%d`
SCHEDULE=`date |awk '{print $1}'`
RMAN=$ORACLE_HOME/bin/rman
#define backup type
if [ $SCHEDULE =  $FULL ];then
BACKUP_TYPE="incremental level 0"
elif [ $SCHEDULE =  $CUMM ];then
BACKUP_TYPE="incremental level 1 CUMULATIVE"
else
BACKUP_TYPE="incremental level 1"
fi
# Check local disk space......
USED=`df -k|grep $CHECK_HOME|awk '{print $5}'|awk -F% '{print $1}'`
if [ -z $USED  ]  || [ $USED -gt 85 ]; then
       echo "At `date` Disk space is almost full or not mounted.please check it!
" >> $BACKUP_LOG/disk.log
       exit 1
fi
#define  rman backup......
RMAN_CMD="
$RMAN target / nocatalog log=$BACKUP_LOG/rman.log <<EOF
RUN {
#backup database......
ALLOCATE CHANNEL ch00 TYPE disk;
backup $BACKUP_TYPE database format '$BACKUP_DEST/bak_%d_%s_%p_%u.bak';
sql 'alter system archive log current';
RELEASE CHANNEL ch00;
# backup all archive logs......
change archivelog all validate;
ALLOCATE CHANNEL ch00 TYPE disk;
backup archivelog all format '$BACKUP_DEST/log_%d_%s_%p_%u.bak' delete all input
;
RELEASE CHANNEL ch00;
#backup  current controlfile......
ALLOCATE CHANNEL ch00 TYPE disk;
copy current controlfile to '$BACKUP_DEST/control.bak';
RELEASE CHANNEL ch00;
}
EOF
"
#start  rman backup......
su - oracle -c "$RMAN_CMD"
#check rman......
if [ $? -ne 0 ]; then
       echo "at `date` backup failed!" >> $ERROR_LOG/err.log
       exit 1
fi
#compress backup file......
tar -cvf   $BACKUP_OLD/$BACKUP_DATE.tar $BACKUP_DEST/*.bak
rm -f $BACKUP_DEST/*.bak
# delete expired  backup......
list=`find $BACKUP_OLD -mtime +$RETENTION`
echo $list
rm -f $list

4.设置执行权限:

#chmod +x backup,sh

5.创建计划任务

设置计划任务,如在每天的凌晨两点发起备份:

#crontab -e

#min          hour         day           month         dayofweek                  command

0                     2           *                   *                         *                            /scripts/backup.sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值