备份脚本
每天备份归档日志,每周全备一次。
[oracle@oracle bak]$ crontab -l
10 23 * * 7 sh /home/oracle/backup/rman_full.sh
10 19 * * * sh /home/oracle/backup/rman_arch.sh
[oracle@oracle bak]$ more /home/oracle/backup/rman_full.sh
export ORACLE_SID=orcl
export ORACLE_BASE=/data/oracle/app
export ORACLE_HOME=$ORACLE_BASE/10g
export PATH=$ORACLE_HOME/bin:$PATH
rman target / log /home/oracle/backup/rman_full.log append<<EOF
run
{allocate channel c1 type disk;
allocate channel c2 type disk;
backup database filesperset 4 format '/bak/full_%d_%T_%s_%p';
sql 'alter system archive log current';
backup archivelog all format '/bak/arch_%d_%T_%s_%p' delete input;
backup current controlfile format '/bak/ctl_%d_%T_%s_%p';
crosscheck backup;
crosscheck archivelog all;
delete noprompt obsolete;
delete noprompt expired backup;
delete noprompt expired archivelog all;
}
EOF
[oracle@oracle bak]$ more /home/oracle/backup/rman_arch.sh
export ORACLE_SID=orcl
export ORACLE_BASE=/data/oracle/app
export ORACLE_HOME=$ORACLE_BASE/10g
export PATH=$ORACLE_HOME/bin:$PATH
rman target / log /home/oracle/backup/rman_arch.log append<<EOF
run
{allocate channel c1 type disk;
allocate channel c2 type disk;
sql 'alter system archive log current';
backup archivelog all format '/bak/arch_%d_%T_%s_%p' delete input;
backup current controlfile format '/bak/ctl_%d_%T_%s_%p';
crosscheck backup;
crosscheck archivelog all;
delete noprompt obsolete;
delete noprompt expired backup;
delete noprompt expired archivelog all;
}
EOF