RMAN-压缩选项(as compressed backupset)

本文实测了 Oracle 10g 数据库中使用 AS COMPRESSED BACKUPSET 进行压缩备份的方法及效果。比较了压缩与非压缩备份的时间、磁盘占用及 CPU 使用情况。

   
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;
================================================================
下边来做个测试来计较下他们吧:

非压缩备份

RMAN> backup database; 

Starting backup at 28-JUL-12
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/oracle/oradata/orcl/system01.dbf
input datafile fno=00003 name=/oracle/oradata/orcl/sysaux01.dbf
input datafile fno=00005 name=/oracle/oradata/orcl/jietbs01.dbf
input datafile fno=00002 name=/oracle/oradata/orcl/undotbs01.dbf
input datafile fno=00004 name=/oracle/oradata/orcl/users01.dbf
channel ORA_DISK_1: starting piece 1 at 28-JUL-12
channel ORA_DISK_1: finished piece 1 at 28-JUL-12
piece handle=/home/oracle/app/product/10.2.0/db_1/flash_recovery_area/ORCL/backupset/2012_07_28/o1_mf_nnndf_TAG20120728T011430_815m3q6m_.bkp tag=TAG20120728T011430 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:01:06
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel ORA_DISK_1: starting piece 1 at 28-JUL-12
channel ORA_DISK_1: finished piece 1 at 28-JUL-12
piece handle=/home/oracle/app/product/10.2.0/db_1/flash_recovery_area/ORCL/backupset/2012_07_28/o1_mf_ncsnf_TAG20120728T011430_815m5tgv_.bkp tag=TAG20120728T011430 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 28-JUL-12

消耗时间: 
00:01:06+00:00:03=1分08秒=68s
--------------------------------------------------------------------------------------------
压缩备份

RMAN> backup as compressed backupset database;

Starting backup at 28-JUL-12
using channel ORA_DISK_1
channel ORA_DISK_1: starting compressed full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/oracle/oradata/orcl/system01.dbf
input datafile fno=00003 name=/oracle/oradata/orcl/sysaux01.dbf
input datafile fno=00005 name=/oracle/oradata/orcl/jietbs01.dbf
input datafile fno=00002 name=/oracle/oradata/orcl/undotbs01.dbf
input datafile fno=00004 name=/oracle/oradata/orcl/users01.dbf
channel ORA_DISK_1: starting piece 1 at 28-JUL-12
channel ORA_DISK_1: finished piece 1 at 28-JUL-12
piece handle=/home/oracle/app/product/10.2.0/db_1/flash_recovery_area/ORCL/backupset/2012_07_28/o1_mf_nnndf_TAG20120728T012227_815mln9b_.bkp tag=TAG20120728T012227 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:01:15
channel ORA_DISK_1: starting compressed full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel ORA_DISK_1: starting piece 1 at 28-JUL-12
channel ORA_DISK_1: finished piece 1 at 28-JUL-12
piece handle=/home/oracle/app/product/10.2.0/db_1/flash_recovery_area/ORCL/backupset/2012_07_28/o1_mf_ncsnf_TAG20120728T012227_815mo1kh_.bkp tag=TAG20120728T012227 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 28-JUL-12

消耗时间:00:01:15+ 
00:00:03
 
=1分18秒=78s
--------------------------------------------------------------------------------------------
非压缩备份  CPU(18.1%)

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                 
 5483 oracle    18   0  414m  72m  40m D 18.1 10.5   0:54.36 oracle     


压缩备份  CPU(84.0%)

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                             
 5483 oracle    18   0  430m  88m  48m R 84.0 27.8   0:47.09 oracle

--------------------------------------------------------------------------------------------
非压缩备份的大小(107724800+1097728=108822528)
-rw-r----- 1 oracle oinstall 107724800 Jul 28 01:34 o1_mf_nnndf_TAG20120728T013252_815n64k8_.bkp
-rw-r----- 1 oracle oinstall   1097728 Jul 28 01:34 o1_mf_ncsnf_TAG20120728T013252_815n8llv_.bkp

压缩备份的大小(599318528+7143424=606461952)
-rw-r----- 1 oracle oinstall 599318528 Jul 28 01:28 o1_mf_nnndf_TAG20120728T012730_815mw2yz_.bkp
-rw-r----- 1 oracle oinstall   7143424 Jul 28 01:28 o1_mf_ncsnf_TAG20120728T012730_815my5v5_.bkp
=============================================================================================
下边我们来比较下他们之前的差别:
压缩时间(非压缩:压缩)   
68s:78s    大约 4:5 (1:1.14)
压缩占磁盘的空间(非压缩:压缩)  103.78125:578.367188   大约 1:5
压缩CPU使用(非压缩:压缩)  18.1%:84.0%    大约 (1:4.67)

压缩占空间少,相对来说比较消耗CPU和时间,呵呵。

grid@rac11g01 ~]$ #!/bin/bash [grid@rac11g01 ~]$ source ~/.bash_profile [grid@rac11g01 ~]$ backup_log=/home/oracle/ORCL_full_`date +"%Y%m%d"`.log allocate channel ch4 type disk; backup AS COMPRESSED BACKUPSET incremental level=0 database format '/db_backup/%d_FULL_%T_%s_%p.bak'; backup AS COMPRESSED BACKUPSET archivelog all format '/db_backup/%d_ARC_%T_%s_%p.bak' delete input; backup current controlfile format '/db_backup/%d_CTL_%T_%s_%p.bak'; release channel ch1; release channel ch2; release channel ch3; release channel ch4; } exit; EOF[grid@rac11g01 ~]$ [grid@rac11g01 ~]$ rman target / nocatalog msglog $backup_log append << EOF > run { > allocate channel ch1 type disk; > allocate channel ch2 type disk; > allocate channel ch3 type disk; > allocate channel ch4 type disk; > > backup AS COMPRESSED BACKUPSET incremental level=0 database format '/db_backup/%d_FULL_%T_%s_%p.bak'; > backup AS COMPRESSED BACKUPSET archivelog all format '/db_backup/%d_ARC_%T_%s_%p.bak' delete input; > backup current controlfile format '/db_backup/%d_CTL_%T_%s_%p.bak'; > > release channel ch1; > release channel ch2; > release channel ch3; > release channel ch4; > } > exit; > EOF RMAN-00557: could not open MSGLOG "/home/oracle/ORCL_full_20250604.log" Recovery Manager: Release 11.2.0.4.0 - Production on Wed Jun 4 20:30:57 2025 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-00554: initialization of internal recovery manager package failed RMAN-12001: could not open channel default RMAN-10008: could not create channel context RMAN-10002: ORACLE error: ORA-15021: parameter "remote_dependencies_mode" is not valid in asm instance RMAN-10006: error running SQL statement: alter session set remote_dependencies_mode = signature [grid@rac11g01 ~]$
最新发布
06-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值