差异增量备份(Differential incremental backup):备份自最近一次小于或等于level n备份以来的修改。
累积增量备份(Cumulative incremental backup):备份自最近一次小于level n备份以来的修改。
在rman增量备份中,有差异增量和累积增量的概念
1、概念
差异增量:是备份上级及同级备份以来所有变化的数据块,差异增量是默认增量备份方式
累积增量:是备份上级备份以来所有变化的块
因为累积增量是备份上级备份以来所有变化的数据块,所以累积增量需要更多的备份时间,同时需要较小的恢复时间;而差异增量正好相反,它可以备份同级备份以来变化的数据块。所以会减少备份时间,但需要更多的恢复时间.在oracle 9中增量备份需要通过扫描整个数据库的数据块才能知道哪些数据块发生了变化,这是一个代价很大,时间很长的过程,而且由于增量备份形成多个不同的备份集,使恢复变得更加不可靠,所以增量备份在版本9中仍然不被推荐使用;在10g中,增量备份作了很大的改进,不需要再扫描所有数据块就能得知哪些数据块发生变化,从而大大提升备份效率。但这些却以牺牲磁盘i/o为代价,所以在oltp事务系统中还得衡量是否愿意以i/o为代价来保证安全及高可用性。10g还支持增量合并,增量备份可支持7级增量。
2、备份策略及恢复
以rman多级增量备份来作为备份策略例子:
增量备份都需要一个0级备份来作为基础,0级备份与全备份的区别在于0级可以用来增量恢复,而全备份则不可以。
备份策略:
eg:我们对一星期做如下备份策略,那么差异增量只需要使用星期天的0级,星期三的一级,星期四、五的二级就可以恢复,累积增量则需要星期天的0级、星期三的1级,星期五的二级即可进行恢复。以上是一个星期的备份策略,如果做长期的备份策略则只需要把备份的时间延长即可得到新的备份策略,具体需要看自己备份及恢复能够接受的程度而顶,见最后的备份策略典型案例。
星期 |
差异增量 |
累积增量 |
星期天 |
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;
备份策略典型案例:
每半年做一个数据库的全备份(包括所有的数据和只读表空间)
每一个月做一次零级备份(不包含只读表空间)
每个星期做一次一级备份
每天做一次二级备份
任何数据库的更改需要重新同步CATALOG目录并重新备份(如添加数据文件)或重新备份(如修改表空间为只读)
建议备份一段时间归档日志和定期备份归档到到磁带上
全库备份脚本
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 filesperset 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 'db0' format '/u01/oradata/backup/db0%u_%s_%p' database skip readonly; sql 'alter system archive log current'; backup filesperset 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 'db1' format '/u01/oradata/backup/db1%u_%s_%p' database skip readonly; sql 'alter system archive log current'; backup filesperset 3 format '/u01/oradata/backup/arch%u_%s_%p' archivelog all delete input; #备份归档可选,可以单独定期备份 release channel c1; release channel c2; release channel c3; } |
如果按照以上备份策略,则每天的所需要备份的数据量只有一天的改变量。而做恢复时最多要恢复当月的一个零级备份+三个一级备份+6个二级备份+当天的归档文件。如果不能接受这样的恢复时间,可以减少零级备份之间的时间间隔。在每次备份后,原则上在该备份点之前的归档日志就可以删除掉了,但是为了进一步的安全以及日后需要(如使用LOGMNR查找所需信息),建议有条件的话,归档日志保存到能够接受的时间点,可以保存在磁带等廉价存取设备上。
FROM: http://www.eygle.com/digest/2009/04/oracle_rman_incremental_backup.html
分享到:
相关推荐
Oracle RMAN增量备份恢复测试记录
Oracle数据库逻辑增量备份之exp/imp 1 一、实现需求 1 二、逻辑备份恢复工具exp/imp 2 1、逻辑备份原理 2 2、exp语法和参数 2 3、imp语法和参数 3 三、exp逻辑备份 4 1、exp表模式备份 4 2、exp用户模式备份 5 3、...
本文详细描述了oracle rman增量备份的步骤和方法,对于学习rman增量备份有很大帮助。
window oracle rman 增量备份脚本
超经典的Oracle rman增量备份恢复策略,DBA工作过程中,在对数据库进行备份的时候可以参考此文档
详细讲解ORACLE9I数据库怎么样使用RMAN做增量备份应用操作手册。
注: 增量备份模式为cumulative(累积模式) 1. 周日:0级增量备份 1. 周一:1级增量备份 1. 周二:1级增量备份 1. 周三:1级增量备份 1. 周四:0级增量备份 1. 周五:1级增量备份 1. 周六:1级增量备份 ...
假定数据库的备份任务作如下安排: ...---- 星期二:增量备份(B) ---- 星期三:增量备份(C) ---- 星期四:增量备份(D) ---- 星期五:累计备份(E) ---- 星期六:增量备份(F) ---- 星期日:增量备份(G)
增量备份:其中包括备份策略及参数的设置,只有尝试才知道结果。
Oracle rman 增量备份
Oracle增量备份,最常用的技术,用于数据库性能提高,很多厂家都需要。这是一项DBA最基本的技术,阅读此文档需要掌握shell的基础知识,oracle的基本命令
在windows系统下去备份linux数据库服务上的oracle数据库,可以通过远程自动备份实现。 本文以上述环境为备份场景,采用物理增量备份方法,制定备份策略...本文可作为oracle自动物理增量备份手册,为运维人员参考采用。
Oracle增量备份请参照我写的文档,凡是又不会请加我好友
网上找了很多关于oracle9i关于增量备份的资料,结合自己的项目经验,做了一个windows下的RMAN说明文档,配截图。欢迎大家指正,谢谢。
本文对exp/crontab方式对Oracle数据库的自动备份作了一些尝 试,并不保证在所有的环境下皆能正常运行。
linux 平台下的rman全备份和增量备份
oracle数据库全备份和增量备份.docx
Oracle-RMAN增量备份恢复测试记录
OracleRMAN增量备份恢复测试记录.docx