Oracle RMAN各类压缩算法对比测试
1.背景概述
2.本次测试环境基本信息
3.测试步骤
3.1. 使用BCO进行压缩备份
3.2. 不使用压缩备份
3.3. 使用ACO中LOW级别进行压缩备份
3.4. 使用ACO中MEDIUM级别进行压缩备份
3.5. 使用ACO中HIGH级别进行压缩备份
4.各类备份方式对比分析
4.1. 生成备份文件大小差异
4.2. 备份时长差异
4.3. 备份CPU资源差异
4.4. 备份Memory资源差异
4.5. 备份IO资源差异
5.总结
1.背景概述
本文是对Oracle RMAN各类压缩算法的对比测试。
Oracle RMAN的各类压缩算法:
Oracle 提供Basic Compression Option(BCO)和Advanced Compression Option(ACO)两种选项,其中ACO又包含HIGH、MEDIUM、LOW三种压缩级别。
2.本次测试环境基本信息
测试环境:AIX 7.1 + Oracle 11.2.0.4
测试数据量:93G
SQL> select sum(bytes/1024/1024/1024) "GB" from dba_segments;
GB
----------
93.4935303
RMAN当前配置选项:
RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name jingyudb are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DATA/jingyudb/snapcf_jingyudb.f';
测试环境确认停止业务测试后,在准备期间发现数据库仍有大量job在运行,为了尽可能避免其对测试结果的影响,申请设置参数禁止job运行(注意测试完成后要恢复原始设置):
SQL> alter system set job_queue_processes=0;
System altered.
RMAN备份配置:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO BACKUPSET;
3.测试步骤
3.1 使用BCO进行压缩备份
RMAN设置压缩备份的类型(默认就是这种压缩备份算法):
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
脚本名称:rman01-basic.sh
echo "=================================================" >> /orabak/rman/rman01-basic.log
echo "Begin backup at: `date`" >> /orabak/rman/rman01-basic.log
rman target / <<EOF >> /orabak/rman/rman01-basic.log
run {
backup
as compressed backupset
incremental level = 0
filesperset = 3
format='/orabak/rman/Test01-basic_%d_%U'
database
include current controlfile spfile ;
}
exit;
EOF
echo "End backup at: `date`" >> /orabak/rman/rman01-basic.log
echo "=================================================" >> /orabak/rman/rman01-basic.log
exit 0
脚本输出日志:rman01-basic.log
=================================================
Begin backup at: Tue Jun 2 15:08:03 CST 2020
Recovery Manager: Release 11.2.0.4.0 - Production on Tue Jun 2 15:08:03 2020
Copyright (c) 1982, 2011, Oracle and/or its affiliates All rights reserved.
connected to target database: jingyudb (DBID=3820045113)
RMAN> 2> 3> 4> 5> 6> 7> 8> 9>
Starting backup at 02-JUN-20
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1335 instance=jingyudb1 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=1807 instance=jingyudb1 device type=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: SID=2187 instance=jingyudb1 device type=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: SID=2 instance=jingyudb1 device type=DISK
channel ORA_DISK_1: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00007 name=+DATA/jingyudb/datafile/pt_data.1
input datafile file number=00003 name=+DATA/jingyudb/datafile/undotbs1.262.971441603
input datafile file number=00011 name=+DATA/jingyudb/datafile/pt_indx.2
channel ORA_DISK_1: starting piece 1 at 02-JUN-20
channel ORA_DISK_2: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
input datafile file number=00009 name=+DATA/jingyudb/datafile/pt_indx.1
input datafile file number=00005 name=+DATA/jingyudb/datafile/users.265.971441611
input datafile file number=00008 name=+DATA/jingyudb/datafile/pt_indx
channel ORA_DISK_2: starting piece 1 at 02-JUN-20
channel ORA_DISK_3: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_3: specifying datafile(s) in backup set
input datafile file number=00006 name=+DATA/jingyudb/datafile/pt_data
input datafile file number=00004 name=+DATA/jingyudb/datafile/undotbs2.264.971441609
channel ORA_DISK_3: starting piece 1 at 02-JUN-20
channel ORA_DISK_4: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_4: specifying datafile(s) in backup set
input datafile file number=00010 name=+DATA/jingyudb/datafile/pt_data.2
input datafile file number=00002 name=+DATA/jingyudb/datafile/sysaux.261.971441603
input datafile file number=00001 name=+DATA/jingyudb/datafile/system.260.971441599
channel ORA_DISK_4: starting piece 1 at 02-JUN-20
channel ORA_DISK_2: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test01-basic_jingyudb_2tv1ofmm_1_1 tag=TAG20200602T150805 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:08:25
channel ORA_DISK_2: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
including current control file in backup set
channel ORA_DISK_2: starting piece 1 at 02-JUN-20
channel ORA_DISK_2: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test01-basic_jingyudb_30v1og6f_1_1 tag=TAG20200602T150805 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_2: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_2: starting piece 1 at 02-JUN-20
channel ORA_DISK_2: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test01-basic_jingyudb_31v1og6h_1_1 tag=TAG20200602T150805 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_3: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test01-basic_jingyudb_2uv1ofmm_1_1 tag=TAG20200602T150805 comment=NONE
channel ORA_DISK_3: backup set complete, elapsed time: 00:09:52
channel ORA_DISK_4: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test01-basic_jingyudb_2vv1ofmm_1_1 tag=TAG20200602T150805 comment=NONE
channel ORA_DISK_4: backup set complete, elapsed time: 00:10:12
channel ORA_DISK_1: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test01-basic_jingyudb_2sv1ofmm_1_1 tag=TAG20200602T150805 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:13:23
Finished backup at 02-JUN-20
Starting Control File and SPFILE Autobackup at 02-JUN-20
piece handle=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/c-3820045113-20200602-05 comment=NONE
Finished Control File and SPFILE Autobackup at 02-JUN-20
RMAN>
Recovery Manager complete.
End backup at: Tue Jun 2 15:21:30 CST 2020
=================================================
3.2 不使用压缩备份
RMAN设置压缩备份的类型:无需设置。
脚本名称:rman02-nocomp.sh
echo "=================================================" >> /orabak/rman/rman02-nocomp.log
echo "Begin backup at: `date`" >> /orabak/rman/rman02-nocomp.log
rman target / <<EOF >> /orabak/rman/rman02-nocomp.log
run {
backup
incremental level = 0
filesperset = 3
format='/orabak/rman/Test02-nocomp_%d_%U'
database
include current controlfile spfile ;
}
exit;
EOF
echo "End backup at: `date`" >> /orabak/rman/rman02-nocomp.log
echo "=================================================" >> /orabak/rman/rman02-nocomp.log
exit 0
脚本输出日志:rman02-nocomp.log
=================================================
Begin backup at: Tue Jun 2 15:47:39 CST 2020
Recovery Manager: Release 11.2.0.4.0 - Production on Tue Jun 2 15:47:39 2020
Copyright (c) 1982, 2011, Oracle and/or its affiliates All rights reserved.
connected to target database: jingyudb (DBID=3820045113)
RMAN> 2> 3> 4> 5> 6> 7> 8>
Starting backup at 02-JUN-20
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1807 instance=jingyudb1 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=2187 instance=jingyudb1 device type=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: SID=2 instance=jingyudb1 device type=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: SID=193 instance=jingyudb1 device type=DISK
channel ORA_DISK_1: starting incremental level 0 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00007 name=+DATA/jingyudb/datafile/pt_data.1
input datafile file number=00003 name=+DATA/jingyudb/datafile/undotbs1.262.971441603
input datafile file number=00011 name=+DATA/jingyudb/datafile/pt_indx.2
channel ORA_DISK_1: starting piece 1 at 02-JUN-20
channel ORA_DISK_2: starting incremental level 0 datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
input datafile file number=00009 name=+DATA/jingyudb/datafile/pt_indx.1
input datafile file number=00005 name=+DATA/jingyudb/datafile/users.265.971441611
input datafile file number=00008 name=+DATA/jingyudb/datafile/pt_indx
channel ORA_DISK_2: starting piece 1 at 02-JUN-20
channel ORA_DISK_3: starting incremental level 0 datafile backup set
channel ORA_DISK_3: specifying datafile(s) in backup set
input datafile file number=00006 name=+DATA/jingyudb/datafile/pt_data
input datafile file number=00004 name=+DATA/jingyudb/datafile/undotbs2.264.971441609
channel ORA_DISK_3: starting piece 1 at 02-JUN-20
channel ORA_DISK_4: starting incremental level 0 datafile backup set
channel ORA_DISK_4: specifying datafile(s) in backup set
input datafile file number=00010 name=+DATA/jingyudb/datafile/pt_data.2
input datafile file number=00002 name=+DATA/jingyudb/datafile/sysaux.261.971441603
input datafile file number=00001 name=+DATA/jingyudb/datafile/system.260.971441599
channel ORA_DISK_4: starting piece 1 at 02-JUN-20
channel ORA_DISK_2: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test02-nocomp_jingyudb_34v1oi0u_1_1 tag=TAG20200602T154742 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:07:08
channel ORA_DISK_2: starting incremental level 0 datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
channel ORA_DISK_3: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test02-nocomp_jingyudb_35v1oi0v_1_1 tag=TAG20200602T154742 comment=NONE
channel ORA_DISK_3: backup set complete, elapsed time: 00:07:09
channel ORA_DISK_3: starting incremental level 0 datafile backup set
channel ORA_DISK_3: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_3: starting piece 1 at 02-JUN-20
channel ORA_DISK_4: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test02-nocomp_jingyudb_36v1oi0v_1_1 tag=TAG20200602T154742 comment=NONE
channel ORA_DISK_4: backup set complete, elapsed time: 00:07:09
including current control file in backup set
channel ORA_DISK_2: starting piece 1 at 02-JUN-20
channel ORA_DISK_1: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test02-nocomp_jingyudb_33v1oi0u_1_1 tag=TAG20200602T154742 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:07:36
channel ORA_DISK_2: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test02-nocomp_jingyudb_37v1oieb_1_1 tag=TAG20200602T154742 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:25
channel ORA_DISK_3: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test02-nocomp_jingyudb_38v1oiec_1_1 tag=TAG20200602T154742 comment=NONE
channel ORA_DISK_3: backup set complete, elapsed time: 00:00:26
Finished backup at 02-JUN-20
Starting Control File and SPFILE Autobackup at 02-JUN-20
piece handle=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/c-3820045113-20200602-06 comment=NONE
Finished Control File and SPFILE Autobackup at 02-JUN-20
RMAN>
Recovery Manager complete.
End backup at: Tue Jun 2 15:55:22 CST 2020
=================================================
3.3 使用ACO中LOW级别进行压缩备份
RMAN设置压缩备份的类型(压缩算法设置为LOW,其他不变):
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE COMPRESSION ALGORITHM 'LOW' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ;
脚本名称:rman03-low.sh
echo "=================================================" >> /orabak/rman/rman03-low.log
echo "Begin backup at: `date`" >> /orabak/rman/rman03-low.log
rman target / <<EOF >> /orabak/rman/rman03-low.log
run {
backup
as compressed backupset
incremental level = 0
filesperset = 3
format='/orabak/rman/Test03-low_%d_%U'
database
include current controlfile spfile ;
}
exit;
EOF
echo "End backup at: `date`" >> /orabak/rman/rman03-low.log
echo "=================================================" >> /orabak/rman/rman03-low.log
exit 0
脚本输出日志:rman03-low.log
=================================================
Begin backup at: Tue Jun 2 13:28:37 CST 2020
Recovery Manager: Release 11.2.0.4.0 - Production on Tue Jun 2 13:28:37 2020
Copyright (c) 1982, 2011, Oracle and/or its affiliates All rights reserved.
connected to target database: jingyudb (DBID=3820045113)
RMAN> 2> 3> 4> 5> 6> 7> 8> 9>
Starting backup at 02-JUN-20
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1807 instance=jingyudb1 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=2187 instance=jingyudb1 device type=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: SID=2 instance=jingyudb1 device type=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: SID=193 instance=jingyudb1 device type=DISK
channel ORA_DISK_1: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00007 name=+DATA/jingyudb/datafile/pt_data.1
input datafile file number=00003 name=+DATA/jingyudb/datafile/undotbs1.262.971441603
input datafile file number=00011 name=+DATA/jingyudb/datafile/pt_indx.2
channel ORA_DISK_1: starting piece 1 at 02-JUN-20
channel ORA_DISK_2: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
input datafile file number=00009 name=+DATA/jingyudb/datafile/pt_indx.1
input datafile file number=00005 name=+DATA/jingyudb/datafile/users.265.971441611
input datafile file number=00008 name=+DATA/jingyudb/datafile/pt_indx
channel ORA_DISK_2: starting piece 1 at 02-JUN-20
channel ORA_DISK_3: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_3: specifying datafile(s) in backup set
input datafile file number=00006 name=+DATA/jingyudb/datafile/pt_data
input datafile file number=00004 name=+DATA/jingyudb/datafile/undotbs2.264.971441609
channel ORA_DISK_3: starting piece 1 at 02-JUN-20
channel ORA_DISK_4: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_4: specifying datafile(s) in backup set
input datafile file number=00010 name=+DATA/jingyudb/datafile/pt_data.2
input datafile file number=00002 name=+DATA/jingyudb/datafile/sysaux.261.971441603
input datafile file number=00001 name=+DATA/jingyudb/datafile/system.260.971441599
channel ORA_DISK_4: starting piece 1 at 02-JUN-20
channel ORA_DISK_2: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test03-low_jingyudb_28v1o9s8_1_1 tag=TAG20200602T132839 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:03:45
channel ORA_DISK_2: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
including current control file in backup set
channel ORA_DISK_2: starting piece 1 at 02-JUN-20
channel ORA_DISK_2: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test03-low_jingyudb_2bv1oa39_1_1 tag=TAG20200602T132839 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:03
channel ORA_DISK_2: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_2: starting piece 1 at 02-JUN-20
channel ORA_DISK_2: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test03-low_jingyudb_2cv1oa3e_1_1 tag=TAG20200602T132839 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:03
channel ORA_DISK_3: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test03-low_jingyudb_29v1o9s8_1_1 tag=TAG20200602T132839 comment=NONE
channel ORA_DISK_3: backup set complete, elapsed time: 00:04:25
channel ORA_DISK_4: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test03-low_jingyudb_2av1o9s8_1_1 tag=TAG20200602T132839 comment=NONE
channel ORA_DISK_4: backup set complete, elapsed time: 00:04:55
channel ORA_DISK_1: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test03-low_jingyudb_27v1o9s8_1_1 tag=TAG20200602T132839 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:05:05
Finished backup at 02-JUN-20
Starting Control File and SPFILE Autobackup at 02-JUN-20
piece handle=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/c-3820045113-20200602-02 comment=NONE
Finished Control File and SPFILE Autobackup at 02-JUN-20
RMAN>
Recovery Manager complete.
End backup at: Tue Jun 2 13:33:46 CST 2020
=================================================
3.4 使用ACO中MEDIUM级别进行压缩备份
RMAN设置压缩备份的类型(压缩算法设置为MEDIUM,其他不变):
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE COMPRESSION ALGORITHM 'MEDIUM' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ;
脚本名称:rman04-medium.sh
echo "=================================================" >> /orabak/rman/rman04-medium.log
echo "Begin backup at: `date`" >> /orabak/rman/rman04-medium.log
rman target / <<EOF >> /orabak/rman/rman04-medium.log
run {
backup
as compressed backupset
incremental level = 0
filesperset = 3
format='/orabak/rman/Test04-medium_%d_%U'
database
include current controlfile spfile ;
}
exit;
EOF
echo "End backup at: `date`" >> /orabak/rman/rman04-medium.log
echo "=================================================" >> /orabak/rman/rman04-medium.log
exit 0
脚本输出日志:rman04-medium.log
=================================================
Begin backup at: Tue Jun 2 13:40:22 CST 2020
Recovery Manager: Release 11.2.0.4.0 - Production on Tue Jun 2 13:40:22 2020
Copyright (c) 1982, 2011, Oracle and/or its affiliates All rights reserved.
connected to target database: jingyudb (DBID=3820045113)
RMAN> 2> 3> 4> 5> 6> 7> 8> 9>
Starting backup at 02-JUN-20
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1807 instance=jingyudb1 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=2187 instance=jingyudb1 device type=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: SID=2 instance=jingyudb1 device type=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: SID=193 instance=jingyudb1 device type=DISK
channel ORA_DISK_1: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00007 name=+DATA/jingyudb/datafile/pt_data.1
input datafile file number=00003 name=+DATA/jingyudb/datafile/undotbs1.262.971441603
input datafile file number=00011 name=+DATA/jingyudb/datafile/pt_indx.2
channel ORA_DISK_1: starting piece 1 at 02-JUN-20
channel ORA_DISK_2: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
input datafile file number=00009 name=+DATA/jingyudb/datafile/pt_indx.1
input datafile file number=00005 name=+DATA/jingyudb/datafile/users.265.971441611
input datafile file number=00008 name=+DATA/jingyudb/datafile/pt_indx
channel ORA_DISK_2: starting piece 1 at 02-JUN-20
channel ORA_DISK_3: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_3: specifying datafile(s) in backup set
input datafile file number=00006 name=+DATA/jingyudb/datafile/pt_data
input datafile file number=00004 name=+DATA/jingyudb/datafile/undotbs2.264.971441609
channel ORA_DISK_3: starting piece 1 at 02-JUN-20
channel ORA_DISK_4: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_4: specifying datafile(s) in backup set
input datafile file number=00010 name=+DATA/jingyudb/datafile/pt_data.2
input datafile file number=00002 name=+DATA/jingyudb/datafile/sysaux.261.971441603
input datafile file number=00001 name=+DATA/jingyudb/datafile/system.260.971441599
channel ORA_DISK_4: starting piece 1 at 02-JUN-20
channel ORA_DISK_2: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test04-medium_jingyudb_2fv1oai9_1_1 tag=TAG20200602T134024 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:04:15
channel ORA_DISK_2: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
channel ORA_DISK_3: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test04-medium_jingyudb_2gv1oai9_1_1 tag=TAG20200602T134024 comment=NONE
channel ORA_DISK_3: backup set complete, elapsed time: 00:04:15
channel ORA_DISK_3: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_3: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_3: starting piece 1 at 02-JUN-20
including current control file in backup set
channel ORA_DISK_2: starting piece 1 at 02-JUN-20
channel ORA_DISK_3: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test04-medium_jingyudb_2jv1oaq8_1_1 tag=TAG20200602T134024 comment=NONE
channel ORA_DISK_3: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_2: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test04-medium_jingyudb_2iv1oaq8_1_1 tag=TAG20200602T134024 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_4: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test04-medium_jingyudb_2hv1oai9_1_1 tag=TAG20200602T134024 comment=NONE
channel ORA_DISK_4: backup set complete, elapsed time: 00:05:01
channel ORA_DISK_1: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test04-medium_jingyudb_2ev1oai9_1_1 tag=TAG20200602T134024 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:05:51
Finished backup at 02-JUN-20
Starting Control File and SPFILE Autobackup at 02-JUN-20
piece handle=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/c-3820045113-20200602-03 comment=NONE
Finished Control File and SPFILE Autobackup at 02-JUN-20
RMAN>
Recovery Manager complete.
End backup at: Tue Jun 2 13:46:18 CST 2020
=================================================
3.5 使用ACO中HIGH级别进行压缩备份
RMAN设置压缩备份的类型(压缩算法设置为HIGH,其他不变):
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE COMPRESSION ALGORITHM 'HIGH' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ;
脚本名称:rman05-high.sh
echo "=================================================" >> /orabak/rman/rman05-high.log
echo "Begin backup at: `date`" >> /orabak/rman/rman05-high.log
rman target / <<EOF >> /orabak/rman/rman05-high.log
run {
backup
as compressed backupset
incremental level = 0
filesperset = 3
format='/orabak/rman/Test05-high_%d_%U'
database
include current controlfile spfile ;
}
exit;
EOF
echo "End backup at: `date`" >> /orabak/rman/rman05-high.log
echo "=================================================" >> /orabak/rman/rman05-high.log
exit 0
脚本输出日志:rman05-high.log
=================================================
Begin backup at: Tue Jun 2 13:49:57 CST 2020
Recovery Manager: Release 11.2.0.4.0 - Production on Tue Jun 2 13:49:57 2020
Copyright (c) 1982, 2011, Oracle and/or its affiliates All rights reserved.
connected to target database: jingyudb (DBID=3820045113)
RMAN> 2> 3> 4> 5> 6> 7> 8> 9>
Starting backup at 02-JUN-20
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1807 instance=jingyudb1 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=2187 instance=jingyudb1 device type=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: SID=2 instance=jingyudb1 device type=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: SID=193 instance=jingyudb1 device type=DISK
channel ORA_DISK_1: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00007 name=+DATA/jingyudb/datafile/pt_data.1
input datafile file number=00003 name=+DATA/jingyudb/datafile/undotbs1.262.971441603
input datafile file number=00011 name=+DATA/jingyudb/datafile/pt_indx.2
channel ORA_DISK_1: starting piece 1 at 02-JUN-20
channel ORA_DISK_2: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
input datafile file number=00009 name=+DATA/jingyudb/datafile/pt_indx.1
input datafile file number=00005 name=+DATA/jingyudb/datafile/users.265.971441611
input datafile file number=00008 name=+DATA/jingyudb/datafile/pt_indx
channel ORA_DISK_2: starting piece 1 at 02-JUN-20
channel ORA_DISK_3: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_3: specifying datafile(s) in backup set
input datafile file number=00006 name=+DATA/jingyudb/datafile/pt_data
input datafile file number=00004 name=+DATA/jingyudb/datafile/undotbs2.264.971441609
channel ORA_DISK_3: starting piece 1 at 02-JUN-20
channel ORA_DISK_4: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_4: specifying datafile(s) in backup set
input datafile file number=00010 name=+DATA/jingyudb/datafile/pt_data.2
input datafile file number=00002 name=+DATA/jingyudb/datafile/sysaux.261.971441603
input datafile file number=00001 name=+DATA/jingyudb/datafile/system.260.971441599
channel ORA_DISK_4: starting piece 1 at 02-JUN-20
channel ORA_DISK_2: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test05-high_jingyudb_2mv1ob48_1_1 tag=TAG20200602T134959 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:24:25
channel ORA_DISK_2: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
including current control file in backup set
channel ORA_DISK_2: starting piece 1 at 02-JUN-20
channel ORA_DISK_2: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test05-high_jingyudb_2pv1oci1_1_1 tag=TAG20200602T134959 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_2: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_2: starting piece 1 at 02-JUN-20
channel ORA_DISK_2: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test05-high_jingyudb_2qv1oci3_1_1 tag=TAG20200602T134959 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_3: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test05-high_jingyudb_2nv1ob48_1_1 tag=TAG20200602T134959 comment=NONE
channel ORA_DISK_3: backup set complete, elapsed time: 00:46:52
channel ORA_DISK_4: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test05-high_jingyudb_2ov1ob48_1_1 tag=TAG20200602T134959 comment=NONE
channel ORA_DISK_4: backup set complete, elapsed time: 00:53:13
channel ORA_DISK_1: finished piece 1 at 02-JUN-20
piece handle=/orabak/rman/Test05-high_jingyudb_2lv1ob47_1_1 tag=TAG20200602T134959 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:58:23
Finished backup at 02-JUN-20
Starting Control File and SPFILE Autobackup at 02-JUN-20
piece handle=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/c-3820045113-20200602-04 comment=NONE
Finished Control File and SPFILE Autobackup at 02-JUN-20
RMAN>
Recovery Manager complete.
End backup at: Tue Jun 2 14:48:24 CST 2020
=================================================
4.各类备份方式对比分析
根据实际测试的结果,对比各类备份方式的差异。
4.1 生成备份文件大小差异
$ du -sg Test01-basic*|awk '{a+=$1}END{print a}'
17.31
$ du -sg Test02-nocomp*|awk '{a+=$1}END{print a}'
90.21
$ du -sg Test03-low*|awk '{a+=$1}END{print a}'
20.58
$ du -sg Test04-medium*|awk '{a+=$1}END{print a}'
16.67
$ du -sg Test05-high*|awk '{a+=$1}END{print a}'
10.49
从本次测试结果来看,当前环境下,各类备份方式生成备份文件大小:
不使用压缩(90.21G) > ACO-low(20.58G) > BCO-basic(17.31G) > ACO-medium(16.67G) > ACO-high(10.49G)。
4.2 备份时长差异
$BCO-basic(13分27秒)
Begin backup at: Tue Jun 2 15:08:03 CST 2020
End backup at: Tue Jun 2 15:21:30 CST 2020
$不使用压缩(7分43秒)
Begin backup at: Tue Jun 2 15:47:39 CST 2020
End backup at: Tue Jun 2 15:55:22 CST 2020
$ACO-low(5分9秒)
Begin backup at: Tue Jun 2 13:28:37 CST 2020
End backup at: Tue Jun 2 13:33:46 CST 2020
$ACO-medium(5分56秒)
Begin backup at: Tue Jun 2 13:40:22 CST 2020
End backup at: Tue Jun 2 13:46:18 CST 2020
$ACO-high(58分27秒)
Begin backup at: Tue Jun 2 13:49:57 CST 2020
End backup at: Tue Jun 2 14:48:24 CST 2020
从本次测试结果来看,当前环境下,各类备份方式备份时长差异:ACO-high(58分27秒) > BCO-basic(13分27秒) > 不使用压缩(7分43秒) > ACO-medium(5分56秒) > ACO-low(5分9秒)。
4.3 备份CPU资源差异
使用OSW采集到的数据进行分析,只需关注 13:00 - 16:00 这个时间区间内的情况。
java -Duser.language=en -Duser.country=us -jar oswbba.jar -i /Users/jingyuzhao/Documents/oswbb/archive/ -b Jun 2 13:00:00 2020 -e Jun 2 16:00:00 2020
综上,可以看到CPU主要都是User消耗的:在使用ACO-low备份期间(13:28:37 - 13:33:46),CPU使用率为10%左右;在使用ACO-medium备份期间(13:40:22 - 13:46:18),CPU使用率为37%左右;在使用ACO-high备份期间(13:49:57 - 14:48:24),CPU使用率为40%左右;在使用BCO-basic压缩备份期间(15:08:03 - 15:21:30),CPU使用率为40%左右;在不使用压缩备份期间(15:47:39 - 15:55:22),CPU使用率为1%左右。
4.4 备份Memory资源差异
综上,可以看到Memory的free实际在几次备份看不出明显差异,从swap使用来看也同样没有明显差异(上下浮动不到100MB)。从现有的内存监控数据来看,各类备份看不出对内存有明显的差异。
4.5 备份IO资源差异
综上,可以看到IO主要集中在hdisk0、hdisk1、hdisk2三块盘:在使用ACO-low备份期间(13:28:37 - 13:33:46),IO使用率为100%左右;在使用ACO-medium备份期间(13:40:22 - 13:46:18),IO使用率为100%左右;在使用ACO-high备份期间(13:49:57 - 14:48:24),IO使用率平均在15%左右;在使用BCO-basic压缩备份期间(15:08:03 - 15:21:30),IO使用率为50%左右;在不使用压缩备份期间(15:47:39 - 15:55:22),IO使用率为100%左右。
5.总结
本文档对5种类型的备份方式分别进行了实际测试和对比分析,下面将相关结论总结为下表:
备份时间 | 压缩类型 | 备份时长 | 备份文件大小 | CPU使用 | Memory | IO |
---|---|---|---|---|---|---|
13:28:37 - 13:33:46 | ACO-low | 5分9秒 | 20.58GB | 10% | 不明显 | 100% |
13:40:22 - 13:46:18 | ACO-medium | 5分56秒 | 16.67GB | 37% | 不明显 | 100% |
13:49:57 - 14:48:24 | ACO-high | 58分27秒 | 10.49GB | 40% | 不明显 | 15% |
15:08:03 - 15:21:30 | BCO-basic | 13分27秒 | 17.31GB | 40% | 不明显 | 50% |
15:47:39 - 15:55:22 | 不使用压缩 | 7分43秒 | 90.21GB | 1% | 不明显 | 100% |
整体来看,如果没有特殊的需求,BCO的basic已经可以满足需求;如果确认选用ACO,可以看到ACO-low级别CPU使用率最低,备份文件要比BCO-basic偏大;ACO-medium级别在CPU使用率、备份时长、备份文件大小都要比BCO-basic有所提升;而ACO-high级别的备份,虽然备份文件是最小的,但消耗时间过长,要谨慎使用。
另外需要特别说明的是,Oracle官方也在文档中明确提到,不同压缩级别的性能具体表现如何,取决于实际环境,所以本文测试结论只局限于该测试环境和数据情况,如果其他环境需要选择,还需要针对性进行测试。
Oracle RMAN各类压缩算法对比测试的更多相关文章
- Oracle RMAN 备份一例
Oracle RMAN备份一例: Solaris 10 + Oracle 11.2.0.3 Shell:csh,安装有bash,脚本调用bash 备份策略:周日0级备份,周一~周六1级备份,每6小时备 ...
- Oracle—RMAN备份(三)
一.增量备份的相关概念 1. 在前面说明了RMAN的完整备份,完整备份是备份所用使用过的块,不备份没有使用的过的块:增量备份只备份自上次备份以来更改过的块. 2.即使RMAN的默认操作是在增量备份时扫 ...
- Oracle—RMAN备份(一)
一.RMAN备份相关概念 1.RMAN备份中表空间不需要处于backup模式下,它备份数据文件,归档日志文件,控制文件,spfile和备份集片,但不备份联机重做日志文件,临时文件和口令文件. 2.备份 ...
- Oracle—RMAN备份(二)
在Oracle RMAN备份(一)中,对各种文件在RMAN中备份进行了说明, 一.备份集的复制 在RMAN 备份中,可以备份其自己的备份,即备份一个文件放在多个目录下,oralce支持最多备份四个. ...
- oracle rman异机恢复
Oracle源主机 Oracle目标主机 主机平台 CentOS6.2(final) CentOs6.2(FInal) 主机名 vick rman IP地址 192.168.1.11 192.16 ...
- ORACLE RMAN介绍
本地连接: $ rman target / or $ rman target / nocatalog 远程连接: $ rman target sys/sys@sky RMAN命令执行方式: 1.单条 ...
- [Oracle][RMAN] Use RMAN to Migrate database from CentOS_5-11201-SingleDB to OracleLinux_5-11204-SingleDB
リンク:How to Move/Restore DB to New Host and File System using RMAN (Doc ID 1338193.1)https://docs.ora ...
- [Oracle][RMAN]关于Oracle RMAN里面的Merged Incremental Backups的Tag分离机能
关于Oracle RMAN里面的Merged Incremental Backups的机能,RMAN使用的比较多的DBA们可能会有所了解. 基本上,每次都实行同样的Backup命令即可完成BACK. ...
- ORACLE RMAN备份及还原(转)
RMAN可以进行增量备份:数据库,表空间,数据文件 只有使用过的block可以被备份成backup set 表空间与数据文件对应关系:dba_data_files / v$datafile_heade ...
随机推荐
- 移动端APP自动化测试超全基础汇总
目录 一.面试过程 1.自动化岗位要求 2.面试流程,面试类型 3.沟通技巧,不同级别要求 二.真实面试案例 1.一个输入框的面试题(有人拿到高级岗位,有人连初级都没拿到,为什么) 三.自我分析 1. ...
- python之模块、类、对象
模块就像字典 字典是python中唯一映射关系,它用一个事物对应另外一个事物,也就是所谓的key->value. 模块包含一些变量和函数,可以导入,并且可以用点(·)来操作访问变量和函数. 记住 ...
- 00001- layui 表格的默认工具栏添加自定义按钮
首先定义table: var tableIns = table.render({ elem:'#businessUserListTable' ,url: ctx+'/business/business ...
- Centos7 下代理配置
对于提供服务的服务器来说,一般都配置在内网环境中,而在内网下公司处于安全的考虑,一般不开放外网的访问权限.这时如果想要访问外网,一般需要配置公司提供的代理服务器再进行使用.下面介绍几种配置代理的方法: ...
- Redux:action
引入redux之后,代码中对组件state的更新变得规范而可控,不再是分散的一句句setState,而是将组件的state集合在一个单例store中,并以引用的方式获取各自的state. 对于stat ...
- 8.3 Go channel
8.3 Go channel 在Go语言中,关键字go的引入使得Go语言并发编程更加简单而优雅,但是并发编程的复杂性,以及时刻关注并发编程容易出现的问题需要时刻警惕. 并发编程的难度在于协调,然而协调 ...
- CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\ad888a2
http://wenwen.sogou.com/z/q445150234.htm IIS_USRS
- Socket - TCP编程
Socket是网络编程的一个抽象概念. 通常我们用一个Socket表示“打开了一个网络链接”,而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型即可 socket参数及常用功能 ...
- python的性能测试(timeit)
import timeit def test(): lista = [] listb = [] for i in range(100): lista.append(i) for i in range( ...
- webpack-dev-server 使用 react-router 启用 browserhistory 采坑记
问题的产生 今天下午请假,忙完手头事之后,在家实在无聊,想着从0开始搭建一个 react 的项目.webpack 基本配置之前研究过,没什么大问题.谁想,在 react-router 的配置时出现了个 ...