Olá,
No artigo de Julho/2012 eu apresentei as diferenças e um breve comparativo entre os dois tipos de backups incrementais que podemos realizar com o RMAN (cumulativo vs. diferencial). No artigo deste mês irei também apresentar um comparativo, só que agora, em relação aos tipos de compressão de dados que o RMAN do Oracle 11g R2 tem a nos oferecer. O objetivo será medir e comparar a taxa de compressão e o tempo gasto nas operações de backup/recover.
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:
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:
7 comentários:
Fala Eduardo, blz?
Cara, seus posts sempre me ajudam. Os de RMAN então, são essenciais pra mim.
Parabéns pelo blog.
Forte abraço
Olá Fernando,
Obrigado pela visita!!!
Abraços e até mais
Legatti
Eduardo parabéns pelo post , uma pergunta por favor : Qual a visão ou visões do rman vc usou para exibir o resultado final , com os tipos de compress, tempos
Olá Alexandre,
Eu obtive essas informações durante a execução do próprio RMAN. Ao final da execução de cada backup e recovery ele demonstra o tempo gasto em cada operação. Como no ambiente em que eu trabalho costumo administrar muitos bancos de dados, geralmente eu faço uso de um catálogo de recuperação (recovery catalog) criado em um banco de dados separado especialmente para consolidar várias informações. Geralmente faço uso das seguintes views do catálogo de recuperação:
rc_backup_set_summary
rc_rman_backup_job_details
rc_rman_configuration
rc_database
Abraços e até mais
Legatti
Eduardo, ótimo post mas fiquei com uma dúvida no grafico no high pois voce colocou somente os segundos desprezando os minutos.
Olá Luiz,
Obrigado por notar o erro no gráfico. Acho que comi mosca ao passar os valores para o gráfico ;-)
O gráfico foi atualizado.
Abraços e até mais ...
Legatti
Muito bom Legatti!
Estava procurando algo didático que explicasse conceitos e tempos sobre compressão de backups para mostrar aos meus alunos de turmas de "Backup and Recover" e encontrei mais uma vez um bom artigo no seu blog, vou compartilhar com eles!
[]s
Postar um comentário