【翻译自mos文章】对rman 压缩的彻底理解

对rman 压缩的彻底理解

来源于:

A Complete Understanding of RMAN Compression (文档 ID 563427.1)

适用于:

Oracle Database - Enterprise Edition - Version 8.1.7.4 to 11.2.0.3 [Release 8.1.7 to 11.2]

Information in this document applies to any platform.

***Checked for relevance on 14-Oct-2014***

目标:

rman 压缩是怎么工作的?

解决方案:

默认,rman 有3种类型的压缩:

1. null 压缩

2. unused block 压缩

3. binary 压缩

10.1及其以前,只有null 压缩可以被使用

从10.2开始,null压缩和unused block 压缩 可以被使用。

这些压缩是自动被执行的,不需要特别的命令来执行压缩。

null 压缩和 unused block 压缩 是对进行backup的 block 实施 过滤(当然有过滤的规则)

binary 压缩 是一个额外的压缩,该压缩是在进行backup的block级别实行的。

1. null 压缩

当备份datafile到backupset中时,rman 不会备份 那些 从没有被allocate 的data block(在之前的版本中,该行为被称作null 压缩)

这意味着rman从来不备份 那些 从来没有used的 blocks 。直到oracle 9i ,rman执行的就是null 压缩。

举例:

有一个tablespace,该tablespace有一个datafile,该datafile size 是100MB,在这100MB中,有50MB已经被使用,那么rman只会备份50MB

2.unused block 压缩

从oracle 10.2开始,rman备份时会skip 掉 那些 当前不包括data(数据)的block,该行为称作unused block 压缩。

通过skip掉那些 当前不用来存储data(数据)的block,rman 建立了更为紧凑的datafile的备份。 在之前的oracle版本中,

rman 仅仅支持null 压缩,null压缩是指 skip掉 datafile 中的那些从来没有被allocate过的空间。使用该特性时,不需要dba进行额外的工作。

举例:有一个tablespace,该tablespace中有一个datafile,该datafile有100MB,在100MB中,50MB 已经被user table使用掉了。

然后 user drop了 该表空间中一个25MB的表,with the new Unused Block Compression on 25MB of the files is backed up.

在该例子中,若是使用null压缩的话,将会备份50MB,null压缩会考虑(其实考虑翻译成备份更为合适)那些已经formattd,曾经used 过的block。

如果下面的所有条件被满足,unused block 压缩才会被启用:

1) compatible 参数被设置为10.2

2) db中没有定义guaranteed restore points

3) datafile 是本地管理

4) datafile作为 full backup 或者level 0 incremental backup 的备份集的一部分被备份、

5) 备份集被创建在disk上

或者

使用OSB(Oracle Secure Backup)将备份集创建在tape上。

注意:若是使用第三方备份软件备份到tape上,unused block 压缩将不会被使用。

跳过unused data block 将会使rman 备份datafile 时,用更少的空间,使得io更有效率。

3 binary 压缩

binary 压缩可以通过在backup 子句中指定关键字‘as compressed’ 来使用,这种压缩称之为binary 压缩

当rman 写数据到backup set中时,rman可以使用binary 压缩算法。 这个压缩类似于 很多tape vendors 在备份数据到tape上时的压缩。

但是,我们不能给出一个确切的压缩百分比。这个binary 压缩算法可以极大的降低备份文件所占用的磁盘空间。典型的是2倍或者4倍,对于文本密集型database 甚至更高的压缩倍数。

做压缩备份的命令为

RMAN> backup as compressed backupset database;

压缩backupset时,会有cpu的过载。当在数据库负载最大的时候,做数据库的压缩备份时,你会发现使用as compressed backupset方式进行备份是不可接受的。

在多数其他场景中,压缩备份集节省出足够的disk space,是值得让cpu 负载提高的。

从compressed backupset中restore database,不需要特别的命令,restore命令和非压缩备份时的restore命令一样。

从compressed backupset中restore的时间要比非压缩备份时的时间长。

除了oracle 10g中binary 压缩使用的BZIP2压缩算法,rman 11g也支持ZLIB算法,用来压缩使用 database 11g 高级压缩选项的backup。

BZIP2是11g和10g中默认的压缩算法。

BZIP2 压缩率很高,但是很慢,并且是cpu敏感型的。

ZLIB  很快,但是压缩率不想其他算法那么高(11g 并且使用高级压缩option时才能用)

受支持的压缩算法是BZIP2(默认的)和ZLIB。对最大程度上压缩而言,BZIP2 压缩算法是最优化的。

而ZLIB压缩算法是CPU使用率上最优化的。BZIP2的cpu 资源消耗比ZLIB要高,但是一般会生成更紧凑的backup。

对ZLIB压缩算法,初始化参数compatible必须设置为11.0.0 或者更高,并且需要Oracle 高级压缩 option

binary压缩可以使用于:controlfile,archive log, datafile

比如:

MAN> backup as compressed backupset archivelog all;
RMAN> backup as compressed backupset database;
RMAN> backup as compressed backupset current controlfile;

在写入到disk之前,rman 压缩backupset的内容(contents).对于rman 压缩backup,不需要额外的解压缩步骤。

配置压缩算法的方法如下:

RMAN> CONFIGURE COMPRESSION ALGORITHM '<alg_name>';

4.各种不同的压缩算法:

对于不同的压缩算法,可以去查询V$RMAN_COMPRESSION_ALGORITHM

SQL> select ALGORITHM_NAME, ALGORITHM_DESCRIPTION, ALGORITHM_COMPATIBILITY from V$RMAN_COMPRESSION_ALGORITHM ;

ALGORITHM_NAME  ALGORITHM_DESCRIPTION                                        ALGORITHM_COMPATIB
--------------- ------------------------------------------------------------ ------------------
BZIP2           good compression ratio                                       9.2.0.0.0
BASIC           good compression ratio                                       9.2.0.0.0
LOW             maximum possible compression speed                           11.2.0.0.0
ZLIB            balance between speed and compression ratio                  11.0.0.0.0
MEDIUM          balance between speed and compression ratio                  11.0.0.0.0
HIGH            maximum possible compression ratio                           11.2.0.0.0

6 rows selected.
时间: 2024-12-16 21:58:55

【翻译自mos文章】对rman 压缩的彻底理解的相关文章

【翻译自mos文章】rman 备份时报:ORA-02396: exceeded maximum idle time

rman 备份时报:ORA-02396: exceeded maximum idle time 参考原文: RMAN backup faling with ORA-02396: exceeded maximum idle time, please connect again (Doc ID 1446182.1) 适用于: Oracle Server - Enterprise Edition - Version 11.2.0.1 and later Information in this docu

【翻译自mos文章】rman 标准版和企业版的兼容性

rman 标准版和企业版的兼容性 来源于: RMAN Standard and Enterprise Edition Compatibility (文档 ID 730193.1) 适用于: Oracle Server - Enterprise Edition - Version 10.2.0.4 and later Information in this document applies to any platform. 目标: 当target database 是企业版时, recovery

【翻译自mos文章】使用buffer memory 参数来调整rman的性能。

使用buffer memory 参数来调整rman的性能. 本文翻译自mos文章:RMAN Performance Tuning Using Buffer Memory Parameters (Doc ID 1072545.1) rman 性能调整的目的是分辨一个特定的backup or  restore job的瓶颈. 并使用使用rman命令.初始化参数 或者对physical media的调整来提高整体的性能. 由于数据库容量持续变大,在客户的环境中,几十到几百TB的数据库很常见, serv

【翻译自mos文章】ABMR:在asm 环境中测试Automatic Block Recover 特性的方法

ABMR:在asm 环境中测试Automatic Block Recover 特性的方法 参考原文: ABMR: How to test Automatic Block Recover Feature with ASM setup (Doc ID 1510090.1) 适用于: Oracle Database - Enterprise Edition - Version 11.2.0.3 and later Information in this document applies to any

【翻译自mos文章】对于每一个文件的 file.id and file.incarnation number,重命名文件别名

对于每一个文件的 file.id and file.incarnation number,重命名文件别名 参考原文: Rename Alias of Datafile as Per file.id and file.incarnation number (Doc ID 1494661.1) 适用于: Oracle Database - Enterprise Edition - Version 11.2.0.0 and later Information in this document appl

【翻译自mos文章】尽管指定了目的地,asmcmd cp命令还是在 +DATA/ASM 下创建文件

尽管指定了目的地,asmcmd cp命令还是在  +DATA/ASM 下创建文件 参考原文: ASMCMD Cp Creates Files In +DATA/ASM Instead Of Destination Specified (Doc ID 1488934.1) 适用于: Oracle Database - Enterprise Edition - Version 11.2.0.3 and later Information in this document applies to any

【翻译自mos文章】 asmcmd cp命令不能拷贝大于2GB的文件。

asmcmd cp命令不能拷贝大于2GB的文件. 参考原文: Asmcmd CP Command Can Not Copy Files Larger Than 2 GB (Doc ID 786258.1) 适用于: Oracle Server - Enterprise Edition - Version: 11.1.0.7 This problem can occur on any platform. Oracle Server Enterprise Edition - Version: 11.

【翻译自mos文章】 11gR1版本 asmcmd的新命令--cp、md_backup、md_restore

11gR1版本 asmcmd的新命令--cp.md_backup.md_restore 参考原文: ASMCMD - New commands in 11gR1 (Doc ID 451900.1) 适用于: Oracle Database - Enterprise Edition - Version 11.1.0.6 to 11.1.0.7 [Release 11.1] Information in this document applies to any platform. ***Checke

【翻译自mos文章】找到&#39;cursor: pin S wait on X&#39; 等待事件的阻塞者session(即:持有者session)

找到'cursor: pin S wait on X' 等待事件的阻塞者session(即:持有者session) 来源于: How to Determine the Blocking Session for Event: 'cursor: pin S wait on X' (Doc ID 786507.1) 适用于: Oracle Database - Enterprise Edition - Version 10.2.0.1 to 11.2.0.3 [Release 10.2 to 11.2