天天看點

Oracle10g備份集壓縮新特性(Backupset Compression)

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.