RMAN备份等级详解

(2011-06-27 11:38:28)

转载

标签:

杂谈

分类:
oracle

在rman增量备份中,有差异增量和累积增量的概念

1、概念

差异增量:是备份上级及同级备份以来所有变化的数据块,差异增量是默认增量备份方式

累积增量:是备份上级备份以来所有变化的块

因为累积增量是备份上级备份以来所有变化的数据块,所以累积增量需要更多的备份时间,同时需要较小的恢复时间;而差异增量正好相反,它可以备份同级备份以来变化的数据块。所以会减少备份时间,但需要更多的恢复时间.在oracle
9中增量备份需要通过扫描整个数据库的数据块才能知道哪些数据块发生了变化,这是一个代价很大,时间很长的过程,而且由于增量备份形成多个不同的备份集,使恢复变得更加不可靠,所以增量备份在版本9中仍然不被推荐使用;在10g中,增量备份作了很大的改进,不需要再扫描所有数据块就能得知哪些数据块发生变化(块跟踪),从而大大提升备份效率。但这些却以牺牲磁盘i/o为代价,所以在oltp事务系统中还得衡量是否愿意以i/o为代价来保证安全及高可用性。10g还支持增量合并,增量备份可支持7级增量。

开启块跟踪功能 (Database Backup and Recovery Basics 4.4.4 Improving Incremental Backup Performance: Change Tracking)

SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE
‘/app/oracle/product/oradata/fatdb/rman_chg.log‘ reuse;

Database altered.

需要说明的是10g起oracle官方只推荐使用level 0和level 1级备份,10g还能使用level 2。本文只讨论下level
2的含义,并不推荐使用。

首先看下Oracle官方解释 载至在线文档Database Backup and Recovery Basics 4.4节RMAN
Incremental Backups:

A level 1 incremental backup can be either of the following types:

A differential backup, which backs up all blocks changed after the most
recent incremental backup at level 1 or 0

A cumulative backup, which backs up all blocks changed after the most recent
incremental backup at level 0

Incremental backups are differential by default.

也就是differential 是上次备份(不论是level 0或者level 1)至今的变化数据,这个是level 1的缺省值。而cumulative
是从上次level 0备份后至今的所有的变化数据,也就是说,如果在level 0 至今,中间如果有若干次增量备份(level 
1的differential 或者cumulative ),所有的变化内容都将保存在这个增量集中。

集合下图理解:

增量备份的level 1是从上次0或者1至今的变化,而level 2是从上次备份至今的增量,无论是0或者1或者2;

累积备份的level 1是从上次0至今的累积变化,而level 2是上次level 0或者level 1至今的累积增量(包括期间的level
2增量累计和)



这里看一个具体例子:若我们对一个星期做如下备份策略。如果我们要恢复到星期五那天,那么差异增量只需要使用星期天的0级,星期三的1级,星期四、五的2级就可以恢复;累积增量则需要星期天的0级、星期三的1级,星期五的2级即可进行恢复。


从网上载了几个备份脚本

全库备份:

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;
}

1级备份:

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;
}

参考资料:

1.ORACLE在线文档

2.http://blog.sina.com.cn/s/blog_4d8a2c970100fxae.html

3.http://jackrui.blog.163.com/blog/static/14951299201072141321938/

时间: 2024-11-12 15:36:48

RMAN备份等级详解的相关文章

Linux-6.5下 MariaDB-10基于LVM快照的备份数据 详解

理解部分: LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性.LVM可以对分区在线扩容,快照,镜像和条带化,功能非常强大.这篇文章的主题就是其中一个功能--快照. 快照(Snapshot)就是关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像.快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品: 其实

(转)MySQL备份原理详解

MySQL备份原理详解 原文:http://www.cnblogs.com/cchust/p/5452557.html 备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(RTO),前者重点关注能恢复到什么程度,而后者则重点关注恢复需要多长时间.这篇文章主要讨论MySQL的备份方案,重点介绍几种备份方式的原理,包括文件系统快照(LVM),逻辑备份工具M

mysqldump数据库备份还原详解

mysqldump备份常见用法 1.导出整个数据库(包括数据库中的数据) mysqldump -u username -p dbname > dbname.sql 2.导出数据库结构(不含数据) mysqldump -u username -p -d dbname > dbname.sql 3.导出数据库中的某张数据表(包含数据) mysqldump -u username -p dbname tablename > tablename.sq mysqldump -uroot -p -B

mysql二进制日志详解及备份恢复、基于mysqldump及lvmsnapshot做备份恢复详解

二进制日志: 时间点恢复 复制 20140411 回顾: 日志文件:6类 一般查询日志:log, general_log, log_output 慢查询日志: 错误日志 二进制日志 中继日志 事务日志 二进制日志:"修改" position:位置 time: 时间 滚动: 1.大小 2.时间 二进制日志的功用: 即时点恢复: 复制: mysql> SHOW MASTER STATUS; mysql> FLUSH LOGS; mysql> SHOW BINARY LOG

mysql备份恢复详解

前言 为什么需要备份数据? 数据的备份类型 MySQL备份数据的方式 备份需要考虑的问题 设计合适的备份策略 实战演练 使用cp进行备份 使用mysqldump+复制BINARY LOG备份 使用lvm2快照备份数据 使用Xtrabackup备份 总结 前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么比数据跟更为重要. 那么我们该如何保证数据不丢

Linux系统备份策略详解

由于linux系统的特殊性,获取root用户权限后,很容易把系统搞崩溃,所以系统备份是一件不容忽视的大事.得益于linux系统自身的优越性,所以系统的备份和还原操作还是相对简单的. Linux系统所有的数据都以文件的形式存在,所以备份就是直接拷贝文件;硬盘分区也被当成文件,所以可以直接克隆硬盘数据. Linux系统自带很多实用工具,比如tar.dd.rsync等,备份还原系统不需要购买或下载第三方软件. Linux系统在运行时其硬盘上的文件可以直接被覆盖,所以还原系统的时候不需要另外的引导盘.

mysql之 mysqldump 备份恢复详解

mysqldump 程序的实现原理是通过我们给的参数信息加上数据库中的系统表信息来一个表一个表获取数据然后生成 INSERT 语句再写入备份文件中的.这样就出现了一个问题,在系统正常运行过程中,很可能会不断有数据变更的请求正在执行,这样就可能造成在 mysqldump 备份出来的数据不一致.也就是说备份数据很可能不是同一个时间点的数据,而且甚至可能都没办法满足完整性约束.这样的备份集对于有些系统来说可能并没有太大问题,但是对于有些对数据的一致性和完整性要求比较严格系统来说问题就大了,就是一个完全

MySQL备份原理详解

备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(RTO),前者重点关注能恢复到什么程度,而后者则重点关注恢复需要多长时间.这篇文章主要讨论MySQL的备份方案,重点介绍几种备份方式的原理,包括文件系统快照(LVM),逻辑备份工具Mysqldump,Mydumper,以及物理备份工具Xtrabackup,同时会详细讲解几种方案的优缺点,以及可能遇到的

Xtrabackup之innobackupex备份恢复详解(转)

原文:http://ourlinux.blog.51cto.com/274624/844854 安装配置Xtrabackup先看看如何安装Xtrabackup,最简单的安装方式是使用RPM包,不过想使用源代码方式安装的话,其安装方式有点古怪,因为它采用的在MySQL源代码上打补丁构建的方式安装的.这里使用二进制包的安装方式,相对比较灵活.Shell> mkdir /usr/local/xtrabackupShell> tar -zxvf xtrabackup-1.6.tar.gz –C /us