Oracle Advanced Compression White paper Oracle Abril de 2008 Oracle Advanced Compression Introdução.......................................................................................................2 Oracle Advanced Compression.......................................................................2 Compactação de dados relacionais...............................................................3 Algoritmo inovador..............................................................................3 Benefícios da Compressão de Tabelas..............................................................4 Mínimo impacto na performance............................................................4 Compactação de dados não-estruturados.........................................................6 Desduplicação do SecureFiles.......................................................................6 Compactação do SecureFiles........................................................................7 Compactação de dados de backup...................................................................8 Compactação com o Oracle Data Pump........................................................................8 Compactação com o Oracle Recovery Manager...........................................................9 Compactação do tráfego de rede...........................................................10 Conclusão........................................................................................................11 Oracle Advanced Compression INTRODUÇÃO As empresas estão vivenciando uma explosão no volume de dados necessários para administrar os negócios com eficácia. Essa tendência no crescimento dos dados pode ser atribuída a vários fatores cruciais. Recentes mudanças no panorama regulamentar, como as legislações Sarbanes-Oxley e HIPAA, estão intensificando essa tendência, obrigando as empresas a reter vastas quantidades de informações por longos períodos. A distribuição em massa de conteúdo rico e multimídia na Internet, possibilitada graças aos avanços das tecnologias de banda larga, também facilitam o crescimento do volume geral dos dados. Impulsionando ainda mais a tendência exponencial desse crescimento está o advento da Web 2.0, em que os aplicativos colaborativos promovem enormes quantidades de conteúdo gerado pelo usuário. Segundo várias estimativas, o volume dos dados praticamente dobra a cada 2 a 3 anos. Essa repentina explosão no volume de dados apresenta um desafio de gerenciamento aterrorizante para os administradores de TI. O grande desafio são os custos de armazenamento crescentes. É verdade que o custo por MB de armazenamento vem despencando nos últimos anos, mas o enorme crescimento no volume de dados que precisam ser retidos online torna o armazenamento um dos maiores componentes de custo do orçamento de TI. Além disso, a escalabilidade e performance dos aplicativos precisa continuar atendendo às demandas dos negócios – mesmo diante da explosão no volume de dados. O Banco de Dados Oracle 11g introduz o opcional Advanced Compression para ajudar os clientes a lidar com esses desafios. As inovações nas tecnologias de compactação da Oracle ajudam os clientes a diminuir os recursos e custos de gerenciamento de grandes volumes de dados. A introdução dessas novas e fascinantes tecnologias vem em momento oportuno, à medida que os bancos de dados com tamanho na casa dos terabytes, antes considerados uma novidade, estão se tornando predominantes nos data centers empresariais. ORACLE ADVANCED COMPRESSION O opcional Advanced Compression do Banco de Dados Oracle 11g introduz um conjunto completo de recursos de compactação para ajudar os clientes a maximizar a utilização de recursos e reduzir os custos. Ele permite aos administradores de TI reduzir significativamente o tamanho do armazenamento de banco de dados geral, possibilitando a compactação de todos os tipos de dados – sejam dados relacionais normais (estruturados), não-estruturados (documentos, planilhas etc.) ou de backup. Além disso, apesar de a economia no custo de armazenamento em geral ser vista como o benefício mais palpável da compactação, as inovadoras tecnologias inclusas no opcional Advanced Compression foram projetadas para reduzir os recursos necessários e os custos de tecnologia em todos os componentes da infra-estrutura de TI, incluindo memória e largura de banda da rede. Compactação de dados relacionais A Oracle é uma das pioneiras na introdução da tecnologia de compactação de banco de dados. O Banco de Dados Oracle 9i introduziu a Compactação de Tabelas há vários anos para permitir que os dados fossem compactados durante operações de carregamento em massa, como carregamento de caminho direto, CREATE TABLE AS SELECT…. (CTAS), etc. Esse formato de compactação era perfeito para ambientes de data warehousing, em que a maioria dos dados é carregada no banco de dados usando processos em lote. O Banco de Dados Oracle 11g introduz um novo recurso chamado Compactação de Tabelas OLTP, que permite que os dados sejam compactados durante todos os tipos de operações de manipulação, incluindo DML convencional, como INSERT e UPDATE. Além disso, o novo recurso melhora significativamente a performance reduzindo o impacto das operações de gravação, sendo adequado também para ambientes transacionais ou OLTP. Assim, essa inovação revolucionária estende os benefícios da compactação a todas as cargas de trabalho dos aplicativos. Convém observar que o recurso de Compactação de Tabelas introduzido no Banco de Dados Oracle 9i é um recurso básico do Enterprise Edition (EE) e continua assim inclusive no Banco de Dados Oracle 11g. Entretanto, o novo recurso de Compactação de Tabelas OLTP faz parte do opcional Oracle Advanced Compression, que precisa ser licenciado além do Enterprise Edition. Algoritmo inovador A Oracle usa um algoritmo de compactação exclusivo projetado especificamente para trabalhar com dados relacionais. O algoritmo funciona eliminando valores duplicados em um bloco de banco de dados, inclusive entre várias colunas. Os blocos compactados contêm uma estrutura chamada tabela de símbolos que mantém os metadados de compactação. Quando um bloco é compactado, os valores duplicados são eliminados primeiramente adicionando uma única cópia do valor duplicado à tabela de símbolos. Cada valor duplicado é substituído por uma breve referência à entrada apropriada na tabela de símbolos. Através desse design inovador, os dados compactados ficam autocontidos no bloco do banco de dados, pois os metadados usados para converter os dados compactados em seu estado original ficam contidos no bloco. Em comparação com os algoritmos de compactação da concorrência que mantêm uma tabela de símbolos do banco de dados global, a abordagem exclusiva da Oracle oferece benefícios de performance significativos porque não envolve I/O adicional ao acessar dados compactados. Figura 1. Comparação entre o bloco compactado e o bloco não-compactado Benefícios da Compactação de Tabelas A proporção de compactação atingida em um determinado ambiente depende da natureza dos dados sendo compactados, especificamente da cardinalidade dos dados. Em geral, os clientes podem esperar reduzir o consumo do espaço de armazenamento em 2 a 4 vezes usando o recurso de compactação de tabelas, ou seja, a quantidade de espaço consumido por um volume de dados descompactados será de duas a quatro vezes maior do que a dos dados compactados. Os benefícios da compactação vão além das meras economias no armazenamento em disco. Uma vantagem importante é a capacidade do Oracle de ler os blocos compactados diretamente sem precisar antes descompactar o bloco. Portanto, não há diminuição mensurável da performance ao acessar dados compactados. Aliás, em muitos casos a performance pode melhorar devido à redução de I/O, já que o Oracle terá de acessar menos blocos. Além disso, você pode obter um cache de buffer mais eficiente armazenando mais dados no cache sem precisar aumentar o tamanho da memória. Mínimo impacto na performance Conforme mencionado acima, o recurso de Compactação de Tabelas não causa impacto negativo nas operações de leitura. Entretanto, a compactação exige um esforço adicional durante a gravação dos dados, tornando inevitável eliminar o impacto na performance para operações de gravação. A Oracle empreendeu esforços significativos para minimizar esse impacto para a Compactação de Tabelas OLTP. O Oracle compacta um bloco em modo de lote, em vez compactar dados toda vez em que ocorre uma operação de gravação. Um bloco recém-inicializado permanece descompactado até que os dados no bloco atinjam um limite controlado internamente. Quando uma transação faz com que os dados no bloco alcancem esse limite, todo o conteúdo do bloco é compactado. Posteriormente, à medida que mais dados são adicionados ao bloco e o limite é atingido mais uma vez, o bloco inteiro é recompactado para atingir o nível mais alto de compactação. Esse processo se repete até que o Oracle determine que o bloco não pode mais se beneficiar de compactação adicional. Somente as transações que disparam a compactação do bloco sofrerão o mínimo impacto na compactação. Portanto, a maioria das transações OLTP em blocos compactados terá exatamente a mesma performance que teria com os blocos descompactados. Figura 2. Processo de compactação de blocos Bloco vazio Bloco inicialmente descompactado Bloco compactado Bloco parcialmente compactado Bloco compactado Legenda Dados de cabeçalho Espaço livre Dados descompactados Dados compactados Os gráficos a seguir ilustram o impacto da Compactação de Tabelas OLTP na performance de um aplicativo real. Esses testes foram conduzidos nas dez maiores tabelas de um banco de dados de ERP: Figura 3. Impacto da compactação na performance Performance da varredura de tabelas Tempo (segundos) 2,5 vezes mais rápido Economia de armazenamento MB 3 vezes menor Performance de DML Tempo (segundos) Impacto inferior a 3% Como fica evidente nesses gráficos, o Advanced Compression proporciona não só economias de armazenamento significativas, como também melhorias de performance para cargas de trabalho com leituras intensas. Para operações de DML, ele tem um impacto baixíssimo devido ao algoritmo de compactação em lote exclusivo descrito anteriormente. Como habilitar a Compactação de Tabelas O exemplo a seguir mostra como a Compactação de Tabelas OLTP pode ser habilitada: CREATE TABLE emp ( emp_id NUMBER , first_name VARCHAR2(128) , last_name VARCHAR2(128) ) COMPRESS FOR ALL OPERATIONS; Da mesma maneira, a Compactação de Tabelas pode ser habilitada em ambientes de data warehousing conforme mostrado a seguir. Esta é a sintaxe de compactação padrão: CREATE TABLE emp ( emp_id NUMBER , first_name VARCHAR2(128) , last_name VARCHAR2(128) ) COMPRESS [FOR DIRECT_LOAD OPERATIONS]; Compactação de dados não-estruturados O SecureFiles, um novo recurso do Banco de Dados Oracle 11g, oferece a melhor combinação de arquiteturas para armazenar conteúdo não-estruturado, como documentos, planilhas e arquivos XML. O SecureFiles foi projetado especificamente para oferecer alta performance em dados de arquivos equivalente à de sistemas de arquivos tradicionais, ao mesmo tempo mantendo as vantagens do banco de dados Oracle. O SecureFiles foi projetado como um superconjunto da norma ANSI LOB e oferece fácil migração originária de antigos LOBs ou BasicFiles. Com o SecureFiles, as organizações agora podem gerenciar todos os dados relacionais e dados de arquivos associados no Oracle usando um único modelo de segurança/auditoria, um processo unificado de backup e recuperação, além de executar pesquisa em todas as informações. O opcional Advanced Compression do Banco de Dados Oracle 11g inclui tecnologias que reduzem drasticamente o tamanho do armazenamento dos dados do SecureFiles. Desduplicação do SecureFiles É extremamente comum os aplicativos armazenarem réplicas exatas dos arquivos. Um exemplo típico é um aplicativo de e-mail em que vários usuários podem receber o mesmo anexo. A Desduplicação do SecureFiles é uma tecnologia inteligente que elimina cópias duplicadas dos dados do SecureFiles. O Oracle armazena uma única imagem dos dados do SecureFiles e substitui as cópias duplicadas pelas referências a essa imagem. Considere um aplicativo de e-mail em que dez usuários recebem um e-mail com o mesmo anexo de 1 MB. Sem a Desduplicação do SecureFiles, o sistema armazenaria uma única cópia do arquivo para cada um dos dez usuários – exigindo 10 MB de armazenamento. Se o aplicativo de e-mail de nosso exemplo tivesse usado a Desduplicação do SecureFiles, teria armazenado o anexo de 1 MB apenas uma vez. Isso representa economias de 90% nos requisitos de armazenamento. Além das economias de armazenamento, a Desduplicação do SecureFiles também aumenta a performance do aplicativo. Especificamente, as operações de gravação e cópia são muito mais eficientes porque somente são gravadas referências à imagem do SecureFiles. Além disso, as operações de leitura podem melhorar se os dados duplicados do SecureFiles já existem no cache de buffer. Figura 4. Desduplicação do SecureFiles Hash seguro Como habilitar a Desduplicação do SecureFiles A desduplicação pode ser habilitada para o SecureFiles conforme a seguir: CREATE TABLE images ( image_id NUMBER, image BLOB) LOB(image) STORE AS SECUREFILE (TABLESPACE lob_tbs DEDUPLICATE); Compressão do SecureFiles O opcional Advanced Compression do Banco de Dados Oracle 11g oferece mais um mecanismo para controlar o tamanho dos dados do SecureFiles. Além da Desduplicação tratada anteriormente, a Compactação do SecureFiles utiliza algoritmos de compactação para minimizar ainda mais o armazenamento necessário aos dados do SecureFiles. A compactação de arquivos típicos, como documentos ou arquivos XML, tem uma redução de 2 a 3 vezes no tamanho. Usando inteligência incorporada, a Compactação do SecureFiles evita automaticamente a compactação de dados que não obteriam benefícios – por exemplo um documento que foi compactado com uma ferramenta de terceiros antes de ser inserido no banco de dados como SecureFile. Atualmente, dois níveis de compactação são suportados, sendo que o nível mais alto atinge maior compactação, porém exige mais utilização de CPU. O impacto típico da Compactação do SecureFiles na CPU fica entre 3 e 5%. Os aplicativos ainda são capazes de executar leituras e gravações aleatórias nos dados compactados do SecureFiles, porque os dados compactados estão divididos em pequenas porções. Isso pode melhorar em grande medida a performance em comparação com a compactação de arquivos inteiros antes de inseri-los no banco de dados. Como habilitar a Compactação do SecureFiles O exemplo a seguir mostra como a compactação pode ser habilitada para o SecureFiles: CREATE TABLE images ( image_id NUMBER, image BLOB) LOB(image)STORE AS SECUREFILE (TABLESPACE lob_tbs COMPRESS); Compactação de dados de backup Além de compactar dados armazenados no banco de dados, o Oracle Advanced Compression também inclui o recurso de compactar dados de backup. O Oracle Recovery Manager (RMAN) e o Oracle Data Pump são as duas ferramentas mais usadas para fazer backup dos dados armazenados no Banco de Dados Oracle. O RMAN faz um backup de cada bloco dos dados do banco de dados, também conhecido como backup “físico”, que pode ser usado para executar recuperação de banco de dados, tablespace ou em nível de bloco. Em contrapartida, o Data Pump é usado para executar um backup “lógico” descarregando dados de uma ou mais tabelas em um arquivo simples. O Oracle Advanced Compression inclui a capacidade de compactar os dados de backup gerados por uma dessas ferramentas. Compactação com o Oracle Data Pump A capacidade de compactar os metadados associados a um trabalho do Oracle Data Pump é oferecida no Banco de Dados Oracle 10g Release 2. No Banco de Dados Oracle 11g, esse recurso de compactação foi estendido para que os dados de tabela possam ser compactados na exportação. A compactação com o Data Pump é uma operação em linha, por isso o tamanho reduzido do arquivo de despejo significa uma economia considerável no espaço em disco. Diferentemente de utilitários de compactação do sistema de arquivos ou sistema operacional, a compactação do Data Pump é totalmente em linha na importação também, por isso não é necessário descompactar um arquivo de despejo antes de importálo. Os conjuntos de arquivos de despejo compactados são descompactados automaticamente durante uma operação de importação, sem exigir quaisquer etapas adicionais do administrador de banco de dados. No seguinte exemplo de compactação do banco de dados Oracle de amostra, os esquemas OE e SH foram exportados enquanto compactavam simultaneamente todos os dados e metadados. O tamanho do arquivo de despejo foi reduzido em 74,67%. Três versões do utilitário gzip (GNU zip) e um utilitário de compactação UNIX foram usados para compactar o conjunto de arquivos de depuração de 6,0 MB. A redução no tamanho dos arquivos foi equivalente à da compactação com o Data Pump. Observe que a redução no tamanho dos arquivos de despejo varia dependendo dos tipos de dados e de outros fatores. A funcionalidade total do Data Pump está disponível usando um arquivo compactado. Qualquer comando usado em um arquivo normal também funcionará em um arquivo compactado. Os usuários têm as seguintes opções para determinar quais partes de um conjunto de arquivos de despejo devem ser compactados: • ALL permite a compactação de toda a operação de exportação. • DATA-ONLY permite a gravação de todos os dados no arquivo de despejo em formato compactado. • METADATA-ONLY possibilita que todos os metadados sejam gravados no arquivo de despejo em formato compactado. Esse é o padrão. • NONE desabilita a compactação para toda a operação de exportação. Para obter mais informações sobre o Oracle Data Pump, acesse http://www.oracle.com/technology/products/database/utilities/index.html Como habilitar a compactação com o Data Pump O exemplo a seguir mostra como a compactação pode ser habilitada para o Data Pump: expdp hr FULL=y DUMPFILE=dpump_dir:full.dmp COMPRESS; Compactação com o Oracle Recovery Manager O crescimento contínuo dos bancos de dados empresariais cria um enorme desafio para os administradores de bancos de dados. Os requisitos de armazenamento para manter os backups de banco de dados e a performance dos procedimentos de backup são afetados diretamente pelo tamanho do banco de dados. O Oracle Recovery Manager (RMAN), um utilitário de backup e recuperação da Oracle, introduziu recursos de compactação no Banco de Dados Oracle 10g. A compactação com o RMAN oferece uma drástica redução no armazenamento necessário para backups. Devido à forte integração do RMAN com o Banco de Dados Oracle, os dados de backup são compactados antes de serem gravados em disco ou fita e não precisam ser descompactados antes da recuperação, oferecendo uma enorme redução nos custos de armazenamento. Entretanto, a performance do backup é afetada devido à grande proporção de compactação, resultando em maiores intervalos de backup. O Oracle Advanced Compression introduz novos recursos de compactação que melhoram a performance do RMAN, ao mesmo tempo reduzindo drasticamente o armazenamento necessário para backups. Com base no algoritmo de compactação ZLIB padrão de mercado, os backups compactados no RMAN são até 40% mais rápidos do que os backups compactados no Banco de Dados Oracle 10g. A Oracle atinge essa drástica melhoria na performance enquanto reduz a proporção de compactação em menos de 20%. A rápida compactação do RMAN é uma solução perfeita para backups incrementais ocorridos durante o expediente de trabalho normal. Os gráficos a seguir ilustram o impacto da compactação no tamanho e performance do backup do RMAN. Esses testes foram conduzidos em um banco de dados de ERP real. Figura 4. Compactação com o RMAN Comparação do tamanho do backup A compactação reduziu o tamanho do backup em 6 vezes. Sem compactação Compactação no 10g Compactação no 11g Comparação de velocidade do backup – I/O rápido (disco) A compactação no 11g é quase 2,5 vezes mais rápida do que a compactação no 10g Sem compactação Compactação no 10g Compactação no 11g Comparação de velocidade do backup – I/O lento (fita) A compactação no 11g reduz o tempo de backup em quase 3 vezes Sem compactação Compactação no 10g Compactação no 11g Esses gráficos demonstram que o opcional Advanced Compression do Banco de Dados Oracle 11g oferece backups de RMAN compactados muito mais rápidos em comparação com o Banco de Dados Oracle 10g. Isso ajuda a manter o intervalo de backup curto e reduzir o tamanho dos backups. Como habilitar a compactação com o RMAN A sintaxe para a rápida compactação no RMAN é esta: RMAN> CONFIGURE COMPRESSION ALGORITHM ‘zlib’; A compactação do RMAN pode ser executada da seguinte maneira: RMAN> backup as COMPRESSED BACKUPSET database archivelog all; Compactação do tráfego de rede O Oracle Data Guard oferece a infra-estrutura de software de gerenciamento, monitoração e automação para criar, manter e monitorar um ou mais bancos de dados de standby, a fim de proteger os dados empresariais contra falhas, catástrofes, erros e corrupções de dados. O Data Guard mantém a sincronização de bancos de dados principais e de standby usando dados de redo (as informações necessárias para recuperar uma transação). Como as transações ocorrem no banco de dados principal, os dados de redo são gerados e gravados nos arquivos de log de redo locais. Os Serviços de Transporte de Redo do Data Guard são usados para transferir esses dados para o(s) local(is) de standby. Indisponibilidades na rede ou no servidor de standby podem impedir que os dados de redo sejam transportados para o servidor de standby. Quando a indisponibilidade é resolvida, o Oracle executa automaticamente uma resolução de lacunas de redo, transportando todos os dados de redo necessários para sincronizar o banco de dados de standby. O Oracle Advanced Compression introduz o recurso de compactar os dados de redo conforme são enviados pela rede durante a resolução de lacunas. Através dessa compactação, a largura de banda da rede é maximizada para aumentar a taxa de transferência da resolução de lacunas, que pode ficar até duas vezes mais rápida com a compactação, garantindo que o banco de dados de standby seja sincronizado rapidamente e a alta disponibilidade seja alcançada. Para obter mais informações sobre o Oracle Data Guard, acesse http://www.oracle.com/technology/deploy/availability/index.html CONCLUSÃO A explosão no volume de dados vivenciada pelas empresas apresenta desafios importantes. As empresas precisam se adaptar rapidamente às mudanças no panorama dos negócios sem afetar os resultados finais. Os gerentes de TI precisam gerenciar com eficiência sua infra-estrutura existente para controlar custos e ainda continuar oferecendo extraordinária performance nos aplicativos. O opcional Advanced Compression do Banco de Dados Oracle 11g fornece um conjunto robusto de recursos de compactação que permitem aos gerentes de TI obter sucesso nesse complexo ambiente. Utilizando o opcional Advanced Compression, as empresas podem gerenciar de maneira eficiente o aumento nos requisitos de dados em todos os componentes do data center, minimizando os custos e ao mesmo tempo continuando a alcançar os mais altos níveis de performance dos aplicativos. Banco de Dados Oracle 11g Oracle Advanced Compression Abril de 2008 Autor: William Hodak Colaboradores: Carol Palmer, Timothy Chien, Sushil Kumar, Ajeet Singh Oracle Corporation Filial Brasil Av. Alfredo Egídio de Souza Aranha, 100 – 5º andar Chácara Santo Antônio – São Paulo – SP – 04726-170 Brasil Telefone para contato: 0800-891-4433 Internet: www.oracle.com/br Copyright © 2007, Oracle. Todos os direitos reservados. Este documento é fornecido com propósito meramente informativo, e as informações aqui contidas estão sujeitas a alterações sem prévio aviso. Este documento pode não estar isento de erros, nem está sujeito a nenhuma outra garantia ou condição, seja expressa oralmente ou implícita pela lei, incluindo garantias implícitas e condições de comercialização ou adequação a um propósito específico. A Oracle especificamente se isenta de qualquer responsabilidade com respeito a este documento. Nenhuma obrigação contratual é estabelecida direta ou indiretamente por este documento. Este documento não pode ser reproduzido ou transmitido de forma ou meio algum, seja mecânico ou eletrônico, para nenhuma finalidade, sem autorização prévia expressa por escrito. Oracle é uma marca registrada da Oracle Corporation e/ou de suas afiliadas. Outros nomes podem ser marcas comerciais de seus respectivos proprietários.