Oracle10g容许你和BACKUP命令伴随使用AS COMPRESSED BACKUPSET字句,对备份集进行压缩。
这个压缩备份在恢复时无需解压缩,这一特性在如下条件下可能大为有益:
1.你的备份存储空间有限
2.经过网络备份而带宽有限
3.直接备份至磁带、CD,DVD介质而压缩不可用
你能够选择在备份命令里显示指定压缩选项:
BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;
--仅对1,5文件压缩备份
BACKUP AS COMPRESSED BACKUPSET DATAFILE 1,5;
也能够配置RMAN指定压缩选项:
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET;
可是压缩备份会消耗更多的资源以及时间。
咱们看一下如下测试: 算法
PID USERNAME THR PR NCE SIZE RES STATE TIME FLTS CPU COMMAND 15252 oracle 11 10 0 430M 353M cpu01 1:38 0 26.35% oracle |
PID USERNAME THR PR NCE SIZE RES STATE TIME FLTS CPU COMMAND 15252 oracle 11 52 0 445M 364M sleep 9:07 57 16.43% oracle |
压缩模式较非压缩模式多消耗10%左右的CPU 网络
Rman compressed 分为三种,前两种是默认的。后一种须要手动。 oracle
1.null compression 测试
2.unused block compression spa
3.binary compression code
在10.1版本以前默认的是null compression,10.2之后的默认是1+2啦。 ip
下面就来解释下这三个名词 ci
null compression:在执行rman备份的时候未分配的block不会被备份。 资源
unused block compression:就算是block已经被分配可是数据被delete掉啦。那delete这部分的数据也不会被备份 io
举例说明,我如今有一个datafile 100m,若是已经分配了50m的block,可是又被人delete了25m,若是在10.1版本的时候会备份50m,10.2以后的只会备份25m.
binary compression:这个是手动在执行rman命令的时候要加as compressed命令的。当磁盘空间不够的时候能够考虑压缩备份这种特性。压缩率比较惊人。能够达到1/2-1/4。可是这种高压缩也是有缺点的。就是恢复起来比较慢。这个主要是在磁盘和cpu之间来作衡量。11g 又出来了zlib压缩算法,这种算法比以前要快。可是压缩率不如以前的bzip2.