Oracle中,增量备份时分等级的,级别从0开始,一级一级递增,不过实际上用的最多的也就是0级和1级了,0级增量备份是后面级别的增量备份的基础,0级备份实际上就是一个完全备份,与普通的完全备份唯一的不同点是0级备份可以作为其他级别增量备份的基础,而普通的完全备份是不能的。
从级别1开始,Oracle的增量备份分为差异增量备份和积累增量备份两种,其中差异增量备份备份的是自上一次同级别的差异备份或者是上一次更高级别的备份完成之后的数据库发生改变的数据块;而积累增量备份则是备份的自上一次上一级增量备份完成以来数据库发生改变的数据块。
当数据库兼容性设置为大于等于10.0.0时,尽管在没有0级备份情况做1级的增量备份实际上是一个全备,但是这个全备也是1级的,不能用作1级积累增量备份的基础备份,这个是在设计备份策略的时候要注意的问题,这也是和9i及之前版本不同的地方。
默认情况是差异增量,累积增量关键字 cumulative
举例:差异增量
[root@NEWEASDB app]#more back_7_0.sh
rman target / msglog=/u01/app/RMAN_LOG_FILE.log <<EOF
run
{
allocate channel c1type disk;
allocate channel c2type disk;
backup incremental level= 0 skip inaccessible filesperset 5 Databaseformat='/rman_backup/orcl_lev"0"_%U_%T' tag='orcl_lev"0"' ;
sql 'alter systemarchive log current';
backup archivelogall tag='arc_bak' format='/rman_backup/arch_%U_%T' skip inaccessible filesperset 5 not backed up 1 times delete input;
backup currentcontrolfile tag='bak_ctlfile' format='/rman_backup/ctl_file_%U_%T';
backup spfiletag='spfile' format='/rman_backup/ORCL_spfile_%U_%T';
release channel c2;
release channel c1;
report obsolete;
delete nopromptobsolete;
crosscheck backup;
delete nopromptexpired backup;}
EOF
[root@NEWEASDBapp]# more back_1_1.sh
rman target / msglog=/u01/app/RMAN_LOG_FILE.log <<EOF
run
{
allocate channel c1type disk;
allocate channel c2type disk;
backup incremental level= 1 skip inaccessible filesperset 5 Databaseformat='/rman_backup/orcl_lev"1"_%U_%T' tag='orcl_lev"1"' ;
sql 'alter systemarchive log current';
backup archivelogall tag='arc_bak' format='/rman_backup/arch_%U_%T' skip inaccessible filesperset 5 not backed up 1 times delete input;
backup currentcontrolfile tag='bak_ctlfile' format='/rman_backup/ctl_file_%U_%T';
backup spfiletag='spfile' format='/rman_backup/ORCL_spfile_%U_%T';
release channel c2;
release channel c1;
report obsolete;
delete nopromptobsolete;
crosscheck backup;
delete nopromptexpired backup;}
EOF