无论是哪个平台,都需要先明确我们的目标:
1)每天夜间1点执行
2)数据库全备,同时备份控制文件和归档日志文件,备份文件保存到/u01/app/oracle/backup/目录下,并且,在完成归档日志文件备份后,自动删除已备份的归档日志
3)备份保留14天,过期自动删除
4)保留rman操作日志
先来实现在window平台
编写rman批处理文件
run{ configure retention policy to recovery window of 14 days; configure controlfile autobackup on; configure controlfile autobackup format for device type disk to '/u01/app/oracle/backup/%F'; allocate channel c1 device type disk format '/u01/app/oracle/backup/bak_%U'; backup database skip inaccessible plus archivelog filesperset 20 delete all input; release channel c1; } crosscheck backupset; delete noprompt obsolete;
保存至D:\oracle\script\backup\db_fullbak_think.rman
注释:skip inaccessible:跳过不可读的文件
skip offline:跳过离线文件
skip readonly:跳过只读的数据文件
filesperset:用来限定每类备份集最多可包含的文件。在本例,filesperset出现在备份归档的子句中,因此用来限制每个归档备份集最多只能包含20个归档文件。
编写命令执行rman批处理文件
set ORACLE_SID=orcl rman target / log d:\oracle\script\backup\logs\bak_%DATE:~0,10%.LOG CMDFILE=D:\oracle\script\backup\db_fullbak_think.rman
将上述内容保存至D:\oracle\script\backup\db_fullbak_think.bat
设定执行计划
打开”控制面板“--->"任务计划”-->"添加任务计划“
*******************************linux平台如下*********************************
win和linux上rman的自动备份,其实差异不大,rman批处理脚本无须多大变动。唯一差别就是linux上是用crontab来进行自动备份的。
在crontab里面:
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 ORACLE_BASE=/u01/app/oracle ORACLE_SID=orcl * * * * * /u01/app/oracle/product/10.2.0/db_1/bin/rman target / cmdfile='/home/oracle/rmanbackupusers.rcv'
对于crontab的使用,请见:http://blog.csdn.net/linwaterbin/article/details/7661552