Oracle10g备份集压缩新特性(Backupset Compression)

时间:2022-07-01 07:38:08

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;

但是压缩备份会消耗更多的资源以及时间。
我们看一下以下测试:

1.压缩备份

注意压缩备耗时:00:08:35 + 00:00:07 = 8:42 = 522s

2.非压缩备份


非压缩备份耗时: 00:01:55 + 00:00:07 = 2:02 = 122s
压缩备份使用的时间是非压缩方式的: 522 / 122 = 4.28 倍 .

3.压缩比率

压缩备份大小: 190103552 + 1093632 = 182.33984375 M
非压缩备份集: 1130618880 + 1302528 = 1079.484375 M

非压缩较压缩大小: 1079.484375/182.33984375 = 5.9 倍
压缩方式大大节省了空间。

4.CPU消耗
压缩备份时CPU消耗:
 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

大约在26%左右。
而非压缩模式下CPU消耗:
 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

大约为16%

压缩模式较非压缩模式多消耗10%左右的CPU

      Rman compressed 分为三种,前两种是默认的。后一种需要手动。

1.null compression

2.unused block compression

3.binary compression

在10.1版本之前默认的是null compression,10.2以后的默认是1+2啦。

下面就来解释下这三个名词

null compression:在执行rman备份的时候未分配的block不会被备份。

unused block compression:就算是block已经被分配但是数据被delete掉啦。那delete这部分的数据也不会被备份

举例说明,我现在有一个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.