DG环境数据库RMAN备份策略制定(一)

2015-07-16 12:08:34 · 作者: · 浏览: 3

DG环境数据库RMAN备份策略制定:
主库(Primary)


全库备份
归档备份
删除历史文件夹
备库(Standby)


删除归档
引用说明


主库(Primary)
$ crontab -l


0 1 * * * /usr2/backupsh/full_backup.rman
0 */2 * * * /usr2/backupsh/arch_backup.rman
0 3 * * * /usr2/backupsh/del_old.sh全库备份
more /usr2/backupsh/full_backup.rman


#!/bin/bash
foldername=`date +%Y%m%d`
cd /usr2/BACKUP
if [ -d $foldername ]
then
? ? ? ? echo? ? 'go on'
else
? ? ? ? echo? ? 'need mkdir'
? ? ? ? mkdir $foldername
fi


rman target / log=/usr2/BACKUP/$foldername/LOG_full_$foldername.log <run{
configure retention policy to recovery window of 5 days;
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to '/usr2/BACKUP/$foldername/controlfile%F';
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY;
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
allocate channel c4 device type disk;
#backup database skip inaccessible
backup incremental level=0 database
? ? ? ? format '/usr2/BACKUP/$foldername/full_BACK_%U';
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
allocate channel for maintenance device type disk;
crosscheck backupset;
delete noprompt expired backupset;
delete noprompt obsolete;
exit
EOF归档备份
more /usr2/backupsh/arch_backup.rman


#!/bin/bash
foldername=`date +%Y%m%d`
cd /usr2/BACKUP
if [ -d $foldername ]
then
? ? ? ? echo? ? 'go on'
else
? ? ? ? echo? ? 'need mkdir'
? ? ? ? mkdir $foldername
fi


export ORACLE_SID=jyzhao
export ORACLE_BASE=/opt/app
export ORACLE_HOME=/opt/app/oracle/product/11.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
#export LD_LIBRARY_PATH=$ORACLE_HOME/lib
#export NLS_LANG="simplified chinese_china.ZHS16GBK"
#export NLS_DATE_FORMAT="YYYY-MM-DD HH24:Mi:SS"


rman target / log=/usr2/BACKUP/$foldername/LOG_arch_$foldername.log append <run{
configure retention policy to recovery window of 5 days;
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to '/usr2/BACKUP/$foldername/controlfile%F';
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY;
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
allocate channel c4 device type disk;
#backup database skip inaccessible
backup archivelog all delete input
? ? ? ? format '/usr2/BACKUP/$foldername/arch_BACK_%U';
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
allocate channel for maintenance device type disk;
crosscheck backupset;
delete noprompt expired backupset;
delete noprompt obsolete;
exit
EOF删除历史文件夹
more /usr2/backupsh/del_old.sh


#!/bin/bash
#del old folders
cd /usr2/BACKUP
find . -mtime +7 | xargs rm -rf备库(Standby)
$ crontab -l


0 3 * * * /usr2/del_arch/del_arch.sh删除归档
more /usr2/del_arch/del_arch.sh


#!/bin/bash
export ORACLE_SID=jyzhao_s
export ORACLE_HOME=/opt/app/oracle/product/11.2.0/db_1
export ARCHIVE_DIR=/usr2/oradata/archivelog
export LOG_FILE=/usr2/oradata/archivelog/del_archive.log
?
echo "开始删除归档日志:`date`……">>$LOG_FILE
if [ `whoami` != 'oracle' ]
then
echo "Error: You must be oracle to execute.">>$LOG_FILE
exit 99
fi
?
del_seq=`ls -tr $ARCHIVE_DIR/|grep -v stdarch | head -1|cut -f2 -d_`
$ORACLE_HOME/bin/sqlplus -silent "/ as sysdba" <tmp.log
set pagesize 0 feedback off verify off heading off echo off
select max(sequence#) from v\$ARCHIVED_LOG where APPLIED='YES';
exit;
XFF
max