累积增量:是备份上级备份以来所有变化的块
星期
|
差异增量
|
累积增量
|
星期天
|
0级
|
0级
|
星期一
|
2级
|
2级
|
星期二
|
2级
|
2级
|
星期三
|
1级
|
1级
|
星期四
|
2级
|
2级
|
星期五
|
2级
|
2级
|
星期六
|
2级
|
2级
|
星期天
|
0级
|
0级
|
backup incremental level 0 database;
一级差异增量
backup incremental level 1 database;
一级累计增量
backup incremental level 1 cumulative database;
每一个月做一次零级备份(不包含只读表空间)
每个星期做一次一级备份
每天做一次二级备份
建议备份一段时间归档日志和定期备份归档到到磁带上
run{
allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup full tag ‘dbfull’ format ‘/u01/oradata/backup/full%u_%s_%p’ database include current controlfile; sql ‘alter system archive log current’; backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’ archivelog all delete input; #备份归档可选,可以单独定期备份 release channel c1; release channel c2; release channel c3; } |
run{
allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup incremental level 0 tag ‘db database skip readonly; sql ‘alter system archive log current’; backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’ archivelog all delete input; #备份归档可选,可以单独定期备份 release channel c1; release channel c2; release channel c3; } |
一级备份脚本
run{
allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup incremental level 1 tag ‘db database skip readonly; sql ‘alter system archive log current’; backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’ archivelog all delete input; #备份归档可选,可以单独定期备份 release channel c1; release channel c2; release channel c3; } |
如果按照以上备份策略,则每天的所需要备份的数据量只有一天的改变量。而做恢复时最多要恢复当月的一个零级备份+三个一级备份+6个二级备份+当天的归档文件。如果不能接受这样的恢复时间,可以减少零级备份之间的时间间隔。在每次备份后,原则上在该备份点之前的归档日志就可以删除掉了,但是为了进一步的安全以及日后需要(如使用LOGMNR查找所需信息),建议有条件的话,归档日志保存到能够接受的时间点,可以保存在磁带等廉价存取设备上。