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消耗:
|
大約在26%左右。
而非壓縮模式下CPU消耗:
|
大約為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.