oracle定时任务备份与清理归档

rman> show all;
RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 1
RMAN> configure retention policy to recovery window of 60 days;


-- 全备0级

#!/usr/bin/ksh
source ~/.bash_profile
export ORACLE_SID=jcdydb1
#export ORACLE_BASE=/oracle/app/oracle
#export ORACLE_HOME=/oracle/app/oracle/product/11.2.0/db_1
export date=`date +%Y-%m-%d`
export dir=/home/oracle/JCDYDB_$ORACLE_SID/backupset/$date
mkdir -p $dir
mkdir -p $dir/log
rman target / nocatalog log="$dir/log/backup.log" << EOF

run {
CONFIGURE RETENTION POLICY TO recovery window of 8 days;
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
backup as compressed backupset incremental level 0 tag 'db_inc_0' database format '$dir/db_%n_%T_%U';
sql 'alter system archive log current';
backup archivelog all format '$dir/arch_%n_%T_%U';
delete noprompt archivelog until time 'sysdate - 7';
crosscheck backup;
crosscheck archivelog all;
delete noprompt expired backup;
delete noprompt obsolete;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
EOF


-- 增量1级

#!/usr/bin/ksh
source ~/.bash_profile
export ORACLE_SID=jcdydb1
#export ORACLE_BASE=/oracle/app/oracle
#export ORACLE_HOME=/oracle/app/oracle/product/11.2.0/db_1
export date=`date +%Y-%m-%d`
export dir=/home/oracle/JCDYDB_$ORACLE_SID/backupset/$date
mkdir -p $dir
mkdir -p $dir/log
rman target / nocatalog log="$dir/log/backup.log" << EOF

run {
CONFIGURE RETENTION POLICY TO recovery window of 8 days;
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
backup as compressed backupset incremental level 1 tag 'db_inc_1' database format '+fradg/rman_db_bak/db_%n_%T_%U';
sql 'alter system archive log current';
backup archivelog all format '+fradg/rman_arch_bak/arch_%n_%T_%U';
delete noprompt archivelog until time 'sysdate - 8';
crosscheck backup;
crosscheck archivelog all;
delete noprompt expired backup;
delete noprompt obsolete;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
EOF

说明:rman备份路径在ASM下,备份日志在本地文件系统下

-- crontab

0 2 * * 1-6 sh /home/oracle/scripts/oracle-inc-1-backup.sh >> /home/oracle/delete_archive_log/delete_archive.log
0 2 * * 0 sh /home/oracle/scripts/oracle-inc-0-backup.sh >> /home/oracle/delete_archive_log/delete_archive.log

 

-- 定时清归档
$ORACLE_HOME/bin/rman < connect target sys/password@mydb
crosscheck archivelog all;
delete noprompt expired archivelog all;
delete noprompt archivelog until time 'sysdate-4';
exit;
EOF

请使用浏览器的分享功能分享到微信等