
Bom, até o Oracle 10g R2, o RMAN oferecia apenas a compressão do tipo BZIP2, que possui uma boa taxa de compressão e um consumo médio de CPU. No Oracle 11g R1, além do tipo de compressão BZIP2, surgiu também a opção de compressão usando o algoritmo ZLIB, que preza pela eficiência e menor consumo de CPU, mas possui uma taxa de compressão menor se comparado com a compressão do tipo BZIP2. O ZLIB é parte da option do Oracle Advanced Compression. No Oracle 11g R2, o tipo de compressão BZIP2 referente ao tipo de compressão existente no Oracle 10g R2, passou a ser chamada de BASIC. O resultado do SQL abaixo nos mostra os tipos de compressão de backups existentes no RMAN do Oracle 11g R2:
C:\>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Dom Jul 7 10:30:15 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Conectado a:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select algorithm_name,
2 initial_release,
3 algorithm_description
4 from v$rman_compression_algorithm;
ALGORITHM_NAME INITIAL_RELEASE ALGORITHM_DESCRIPTION
-------------- --------------- -------------------------------------------
BASIC 10.0.0.0.0 good compression ratio
LOW 11.2.0.0.0 maximum possible compression speed
MEDIUM 11.2.0.0.0 balance between speed and compression ratio
HIGH 11.2.0.0.0 maximum possible compression ratio
Como dito anteriormente, o tipo de compressão BASIC utiliza o algoritmo BZIP2 (10g R2) na qual oferece uma boa taxa de compressão e um consumo médio de CPU. O tipo de compressão LOW corresponde a um algoritmo chamado LZO que, além de oferecer uma taxa de compressão menor, consome pouca CPU. O tipo de compressão MEDIUM utiliza o algoritmo de compressão ZLIB na qual oferece uma boa taxa de compressão e tem um consumo médio de CPU. Já o tipo de compressão HIGH utiliza o algoritmo de compressão BZIP2 (11g R2) na qual oferece a mais alta compressão. No entanto, o mesmo consome muita CPU. Vale a pena salientar que é necessário uma licença do Oracle Advanced Compression para utilizar os tipos LOW, MEDIUM e HIGH.
Enfim, o teste que irei realizar se resume em realizar o backup de uma tablespace que contém um arquivo de dados (data file) com tamanho de 500 MB. Vale a pena ressaltar que este arquivo de dados possui todos os seus blocos preenchidos, ou seja, todo o seu espaço foi utilizado. O primeiro backup que irei realizar não usará nenhuma compressão (NONE). Os backups seguintes irão utilizar respectivamente as compressões BASIC, LOW, MEDIUM e HIGH. Após a realização do backup, irei simular um processo de restore e recover de forma a computar o tempo gasto nas operações. Ao final irei apresentar um quadro comparativo.
Sem algoritmo de compressão (NONE)
C:\>rman target /
Gerenciador de Recuperação: Release 11.2.0.1.0 - Production on Dom Jul 7 10:36:45 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
conectado ao banco de dados de destino: BD02 (DBID=2725208301)
RMAN> configure device type disk clear;
RMAN> backup tablespace TBS_01 tag 'NONE';
Iniciando backup em 07/07/2013 10:36:59
canal alocado: ORA_DISK_1
canal ORA_DISK_1: SID=30 tipo de dispositivo=DISK
canal ORA_DISK_1: iniciando conjunto de backup completo de arquivo de dados
canal ORA_DISK_1: especificando arquivo[s] de dados no conjunto de backups
número do arquivo=00005 nome=E:\ORACLE\ORADATA\BD02\TBS_01.DBF do arquivo de dados de entrada
canal ORA_DISK_1: iniciando o componente 1 em 07/07/2013 10:37:00
canal ORA_DISK_1: componente 1 finalizado em 07/07/2013 10:37:35
handle de componente=E:\ORACLE\FLASH_RECOVERY_AREA\BD02\BACKUPSET\2013_07_07\O1_MF_NNNDF_NONE_8W26BDQG_.BKP tag=NONE comentário=NONE
canal ORA_DISK_1: conjunto de backups concluído, tempo decorrido: 00:00:35
Finalizado backup em 07/07/2013 10:37:35
RMAN> sql 'alter tablespace TBS_01 offline';
instrução sql: alter tablespace TBS_01 offline
RMAN> restore tablespace TBS_01 from tag 'NONE';
Iniciando restore em 07/07/2013 10:37:38
utilizando o canal ORA_DISK_1
canal ORA_DISK_1: iniciando restauração de conjunto de backups de arquivo de dados
canal ORA_DISK_1: especificando arquivo(s) de dados para restauração a partir do conjunto de backups
canal ORA_DISK_1: restaurando o arquivo de dados 00005 em E:\ORACLE\ORADATA\BD02\TBS_01.DBF
canal ORA_DISK_1: lendo da parte de backup E:\ORACLE\FLASH_RECOVERY_AREA\BD02\BACKUPSET\2013_07_07\O1_MF_NNNDF_NONE_8W26BDQG_.BKP
canal ORA_DISK_1: handle de componente=E:\ORACLE\FLASH_RECOVERY_AREA\BD02\BACKUPSET\2013_07_07\O1_MF_NNNDF_NONE_8W26BDQG_.BKP tag=NONE
canal ORA_DISK_1: restaurada a parte de backup 1
canal ORA_DISK_1: restauração concluída, tempo decorrido: 00:00:25
Finalizado restore em 07/07/2013 10:38:04
RMAN> recover tablespace TBS_01;
Iniciando recover em 07/07/2013 10:38:04
utilizando o canal ORA_DISK_1
iniciar recuperação de mídia
recuperação da mídia concluída, tempo decorrido: 00:00:01
Finalizado recover em 07/07/2013 10:38:05
RMAN> sql 'alter tablespace TBS_01 online';
instrução sql: alter tablespace TBS_01 online
Algoritmo de compressão (BASIC)
RMAN> configure device type disk backup type to compressed backupset;
RMAN> run {
2> configure compression algorithm 'BASIC';
3> backup tablespace TBS_01 tag 'BASIC';
4> sql 'alter tablespace TBS_01 offline';
5> restore tablespace TBS_01 from tag 'BASIC';
6> recover tablespace TBS_01;
7> sql 'alter tablespace TBS_01 online';
8> }
Iniciando backup em 07/07/2013 10:38:06
canal alocado: ORA_DISK_1
canal ORA_DISK_1: SID=30 tipo de dispositivo=DISK
canal ORA_DISK_1: iniciando conjunto de backup completo e compactado do arquivo de dados
canal ORA_DISK_1: especificando arquivo[s] de dados no conjunto de backups
número do arquivo=00005 nome=E:\ORACLE\ORADATA\BD02\TBS_01.DBF do arquivo de dados de entrada
canal ORA_DISK_1: iniciando o componente 1 em 07/07/2013 10:38:07
canal ORA_DISK_1: componente 1 finalizado em 07/07/2013 10:38:52
handle de componente=E:\ORACLE\FLASH_RECOVERY_AREA\BD02\BACKUPSET\2013_07_07\O1_MF_NNNDF_BASIC_8W26DH2G_.BKP tag=BASIC comentário=NONE
canal ORA_DISK_1: conjunto de backups concluído, tempo decorrido: 00:00:45
Finalizado backup em 07/07/2013 10:38:52
instrução sql: alter tablespace TBS_01 offline
Iniciando restore em 07/07/2013 10:38:52
utilizando o canal ORA_DISK_1
canal ORA_DISK_1: iniciando restauração de conjunto de backups de arquivo de dados
canal ORA_DISK_1: especificando arquivo(s) de dados para restauração a partir do conjunto de backups
canal ORA_DISK_1: restaurando o arquivo de dados 00005 em E:\ORACLE\ORADATA\BD02\TBS_01.DBF
canal ORA_DISK_1: lendo da parte de backup E:\ORACLE\FLASH_RECOVERY_AREA\BD02\BACKUPSET\2013_07_07\O1_MF_NNNDF_BASIC_8W26DH2G_.BKP
canal ORA_DISK_1: handle de componente=E:\ORACLE\FLASH_RECOVERY_AREA\BD02\BACKUPSET\2013_07_07\O1_MF_NNNDF_BASIC_8W26DH2G_.BKP tag=BASIC
canal ORA_DISK_1: restaurada a parte de backup 1
canal ORA_DISK_1: restauração concluída, tempo decorrido: 00:00:46
Finalizado restore em 07/07/2013 10:39:38
Iniciando recover em 07/07/2013 10:39:38
utilizando o canal ORA_DISK_1
iniciar recuperação de mídia
recuperação da mídia concluída, tempo decorrido: 00:00:00
Finalizado recover em 07/07/2013 10:39:39
instrução sql: alter tablespace TBS_01 online
Algoritmo de compressão (LOW)
RMAN> run {
2> configure compression algorithm 'LOW';
3> backup tablespace TBS_01 tag 'LOW';
4> sql 'alter tablespace TBS_01 offline';
5> restore tablespace TBS_01 from tag 'LOW';
6> recover tablespace TBS_01;
7> sql 'alter tablespace TBS_01 online';
8> }
Iniciando backup em 07/07/2013 10:39:41
utilizando o canal ORA_DISK_1
canal ORA_DISK_1: iniciando conjunto de backup completo e compactado do arquivo de dados
canal ORA_DISK_1: especificando arquivo[s] de dados no conjunto de backups
número do arquivo=00005 nome=E:\ORACLE\ORADATA\BD02\TBS_01.DBF do arquivo de dados de entrada
canal ORA_DISK_1: iniciando o componente 1 em 07/07/2013 10:39:41
canal ORA_DISK_1: componente 1 finalizado em 07/07/2013 10:39:56
handle de componente=E:\ORACLE\FLASH_RECOVERY_AREA\BD02\BACKUPSET\2013_07_07\O1_MF_NNNDF_LOW_8W26HFWB_.BKP tag=LOW comentário=NONE
canal ORA_DISK_1: conjunto de backups concluído, tempo decorrido: 00:00:15
Finalizado backup em 07/07/2013 10:39:56
instrução sql: alter tablespace TBS_01 offline
Iniciando restore em 07/07/2013 10:39:57
utilizando o canal ORA_DISK_1
canal ORA_DISK_1: iniciando restauração de conjunto de backups de arquivo de dados
canal ORA_DISK_1: especificando arquivo(s) de dados para restauração a partir do conjunto de backups
canal ORA_DISK_1: restaurando o arquivo de dados 00005 em E:\ORACLE\ORADATA\BD02\TBS_01.DBF
canal ORA_DISK_1: lendo da parte de backup E:\ORACLE\FLASH_RECOVERY_AREA\BD02\BACKUPSET\2013_07_07\O1_MF_NNNDF_LOW_8W26HFWB_.BKP
canal ORA_DISK_1: handle de componente=E:\ORACLE\FLASH_RECOVERY_AREA\BD02\BACKUPSET\2013_07_07\O1_MF_NNNDF_LOW_8W26HFWB_.BKP tag=LOW
canal ORA_DISK_1: restaurada a parte de backup 1
canal ORA_DISK_1: restauração concluída, tempo decorrido: 00:00:15
Finalizado restore em 07/07/2013 10:40:12
Iniciando recover em 07/07/2013 10:40:13
utilizando o canal ORA_DISK_1
iniciar recuperação de mídia
recuperação da mídia concluída, tempo decorrido: 00:00:00
Finalizado recover em 07/07/2013 10:40:13
instrução sql: alter tablespace TBS_01 online
Algoritmo de compressão (MEDIUM)
RMAN> run {
2> configure compression algorithm 'MEDIUM';
3> backup tablespace TBS_01 tag 'MEDIUM';
4> sql 'alter tablespace TBS_01 offline';
5> restore tablespace TBS_01 from tag 'MEDIUM';
6> recover tablespace TBS_01;
7> sql 'alter tablespace TBS_01 online';
8> }
Iniciando backup em 07/07/2013 10:40:16
utilizando o canal ORA_DISK_1
canal ORA_DISK_1: iniciando conjunto de backup completo e compactado do arquivo de dados
canal ORA_DISK_1: especificando arquivo[s] de dados no conjunto de backups
número do arquivo=00005 nome=E:\ORACLE\ORADATA\BD02\TBS_01.DBF do arquivo de dados de entrada
canal ORA_DISK_1: iniciando o componente 1 em 07/07/2013 10:40:16
canal ORA_DISK_1: componente 1 finalizado em 07/07/2013 10:40:41
handle de componente=E:\ORACLE\FLASH_RECOVERY_AREA\BD02\BACKUPSET\2013_07_07\O1_MF_NNNDF_MEDIUM_8W26JJNJ_.BKP tag=MEDIUM comentário=NONE
canal ORA_DISK_1: conjunto de backups concluído, tempo decorrido: 00:00:25
Finalizado backup em 07/07/2013 10:40:41
instrução sql: alter tablespace TBS_01 offline
Iniciando restore em 07/07/2013 10:40:42
utilizando o canal ORA_DISK_1
canal ORA_DISK_1: iniciando restauração de conjunto de backups de arquivo de dados
canal ORA_DISK_1: especificando arquivo(s) de dados para restauração a partir do conjunto de backups
canal ORA_DISK_1: restaurando o arquivo de dados 00005 em E:\ORACLE\ORADATA\BD02\TBS_01.DBF
canal ORA_DISK_1: lendo da parte de backup E:\ORACLE\FLASH_RECOVERY_AREA\BD02\BACKUPSET\2013_07_07\O1_MF_NNNDF_MEDIUM_8W26JJNJ_.BKP
canal ORA_DISK_1: handle de componente=E:\ORACLE\FLASH_RECOVERY_AREA\BD02\BACKUPSET\2013_07_07\O1_MF_NNNDF_MEDIUM_8W26JJNJ_.BKP tag=MEDIUM
canal ORA_DISK_1: restaurada a parte de backup 1
canal ORA_DISK_1: restauração concluída, tempo decorrido: 00:00:15
Finalizado restore em 07/07/2013 10:40:57
Iniciando recover em 07/07/2013 10:40:57
utilizando o canal ORA_DISK_1
iniciar recuperação de mídia
recuperação da mídia concluída, tempo decorrido: 00:00:00
Finalizado recover em 07/07/2013 10:40:58
instrução sql: alter tablespace TBS_01 online
Algoritmo de compressão (HIGH)
RMAN> run {
2> configure compression algorithm 'HIGH';
3> backup tablespace TBS_01 tag 'HIGH';
4> sql 'alter tablespace TBS_01 offline';
5> restore tablespace TBS_01 from tag 'HIGH';
6> recover tablespace TBS_01;
7> sql 'alter tablespace TBS_01 online';
8> }
Iniciando backup em 07/07/2013 10:41:00
utilizando o canal ORA_DISK_1
canal ORA_DISK_1: iniciando conjunto de backup completo e compactado do arquivo de dados
canal ORA_DISK_1: especificando arquivo[s] de dados no conjunto de backups
número do arquivo=00005 nome=E:\ORACLE\ORADATA\BD02\TBS_01.DBF do arquivo de dados de entrada
canal ORA_DISK_1: iniciando o componente 1 em 07/07/2013 10:41:01
canal ORA_DISK_1: componente 1 finalizado em 07/07/2013 10:47:36
handle de componente=E:\ORACLE\FLASH_RECOVERY_AREA\BD02\BACKUPSET\2013_07_07\O1_MF_NNNDF_HIGH_8W26KXJM_.BKP tag=HIGH comentário=NONE
canal ORA_DISK_1: conjunto de backups concluído, tempo decorrido: 00:06:35
Finalizado backup em 07/07/2013 10:47:36
instrução sql: alter tablespace TBS_01 offline
Iniciando restore em 07/07/2013 10:47:37
utilizando o canal ORA_DISK_1
canal ORA_DISK_1: iniciando restauração de conjunto de backups de arquivo de dados
canal ORA_DISK_1: especificando arquivo(s) de dados para restauração a partir do conjunto de backups
canal ORA_DISK_1: restaurando o arquivo de dados 00005 em E:\ORACLE\ORADATA\BD02\TBS_01.DBF
canal ORA_DISK_1: lendo da parte de backup E:\ORACLE\FLASH_RECOVERY_AREA\BD02\BACKUPSET\2013_07_07\O1_MF_NNNDF_HIGH_8W26KXJM_.BKP
canal ORA_DISK_1: handle de componente=E:\ORACLE\FLASH_RECOVERY_AREA\BD02\BACKUPSET\2013_07_07\O1_MF_NNNDF_HIGH_8W26KXJM_.BKP tag=HIGH
canal ORA_DISK_1: restaurada a parte de backup 1
canal ORA_DISK_1: restauração concluída, tempo decorrido: 00:01:05
Finalizado restore em 07/07/2013 10:48:42
Iniciando recover em 07/07/2013 10:48:42
utilizando o canal ORA_DISK_1
iniciar recuperação de mídia
recuperação da mídia concluída, tempo decorrido: 00:00:00
Finalizado recover em 07/07/2013 10:48:43
instrução sql: alter tablespace TBS_01 online
Após a realização das operações acima, segue abaixo o resultado:
Compress Type LV Size Device Type Elapsed Time Recovery Time
-------- ---- -- ---------- ----------- ------------ -------------
NONE Full 497.04M DISK 00:00:35 00:00:25
BASIC Full 75.48M DISK 00:00:45 00:00:46
LOW Full 108.59M DISK 00:00:15 00:00:15
MEDIUM Full 91.63M DISK 00:00:25 00:00:15
HIGH Full 55.52M DISK 00:06:35 00:01:05
De acordo com os resultados demonstrados acima, podemos perceber que os tipos de compressão BASIC e MEDIUM oferecem taxas de compressão relativamente próximas. No entanto, o tempo gasto para realização de backup e recover usando o tipo MEDIUM é bem menor em comparação com o tipo BASIC. O tipo LOW possui uma compressão menor se comparados com BASIC e MEDIUM, no entanto realiza de forma mais rápida operações de backup e recover. Em relação ao tipo HIGH, a taxa de compressão foi a maior em comparação com todas as outras, no entanto o tempo de backup foi absurdamente maior. Comparando o tipo HIGH com o tipo MEDIUM, acredito valer mais a pena utilizar a compressão MEDIUM do que utilizar a compressão do tipo HIGH. No mais, o gráfico abaixo nos oferece uma visão mais clara deste comparativo: