Introdução
O ILM "Information Lifecycle Management" é a estrategia implementada em banco de dados para reduzir custo de armazenamento e melhorar o acesso aos dados, adaptando-os de acordo com a necessidade de negocio de forma inteligente e automatica. Através do ILM é possivel "classificar" a informação e fazer a manutenção dos dados de forma inteligente e automática.
O ILM surgiu pois nem toda a informação no banco de dados é acessado da mesma maneira, dados novos são lidos com mais frequencia, conforme a informação vai se tornando velha os dados se tornam menos acessados, e por fim quase não são acessados, porém muitas vezes são mantidos no banco de dados. O ILM é o framework responsavel por automatizar a manutenção do dados, utilizando duas features, Compression e Storage Tiering.
OBS - Para fazer uso do ILM deve estar na versão Enterprise, ter a feature Advanced Compression e para 12.1 não estar dentro de um contexto de CDB.
Oracle ILM (Information Lifecycle) |
Componentes
Os doiscomponentes para a manutenção do ciclo de vida das informação (ILM), são o mapa de calor (Heat Map) e o ADO (Automatic Database Optimization), otimização dos dados automatica.A organização das informações é feito pelo através de um mapa de calor, heat map, assim o mecanismo de otimização, ADO Automatic Data Optimization, avalia as informações do mapa de calor e dispara uma ação de acordo com a politica definida. Politicas baseadas em linha são executadas assim que detectadas pelo MMON, politicas baseadas em segmentos são executadas na janela de manutenção.
Heat Map
O Heat Map é uma nova feature do Oracle 12c a qual faz um mapeamento da utilização dos dados a nivel de linhas e segmentos. É mapeado as modificações, leituras, acesso full e acesso via index, assim traçando um mapa de calor do que esta sendo utilizado, sendo a trigger para optimização do armazenamento dos dados, o mapeamento dos dados é feito através de acessos ao segmento e modificações a nivel de bloco e semento.
O primeiro passo para utilizar o ILM é habilitar o Mapa de Calor (Heat Map), o qual é controlado pelo parametro heat_map. Este parametro faz com que DML e acessos a segmentos sejam mapeados na memoria e futuramente armazenados na tablespace SYSAUX.
alter system set heat_map=on;
O Tracking dos dados é armazenado em memoria e pode ser consultado pela view V$HEAT_MAP_SEGMENT, periodicamente é armazenado em disco pela DMBS_SCHEDULER e pode ser consultados pelas views, DBA_HEAT_MAP_SEGMENT, DBA_HEAT_MAP_SEG_HISTOGRAM, DBA_HEATMAP_TOP_TABLESPACES.
Automatic Data Optimization (ADO)
ADO prove a habilidade de declarar politicas em diferentes escopo de objetos no banco de dados, assim automatizando a manutenção dos dados de acordo com necessidade de negocio, tendo como base o heat map.
O ADO depende de algumas diretrizes para funcionar, basicamente depende do escopo, condição e uma ação.
Basicamente o ADO monitora através das politicas uma condição, como por exemplo N tempo sem acesso a um segmento pode disparar uma ação de compressão da tabela ou partição especifica.
O ADO depende de algumas diretrizes para funcionar, basicamente depende do escopo, condição e uma ação.
Basicamente o ADO monitora através das politicas uma condição, como por exemplo N tempo sem acesso a um segmento pode disparar uma ação de compressão da tabela ou partição especifica.
- Escopo Tablespace, tabela, partição, subpartição e linha
- Classicação / Condição Ultimo Acesso, ultima modificação, data de criação
- Ações compression, Storage Tiering
Abaixo temos as diretrizes que podemos utilizar para se criar uma politica.
Oracle ADO (Automatic Data Optimization) |
Existem alguma diretrizes que devem ser obervadas.
- Quando o espoco é de linha, somente pode ser utilizada a condição de "não modificação".
- Storage Tiering é feito somente com base em dados, ou seja quando a tablespace se encontra com thresshold de utilização acima do definido
Abaixo temos as possiveis relação de ação, objeto e condição:
Exemplos
Politica a nivel de segmento
ALTER TABLE t1 ILM ADD POLICY
COLUMN STORE COMPRESS FOR QUERY HIGH
SEGMENT AFTER 90 DAYS OF NO MODIFICATION;
Na instrução temos para cada cor um aspecto da politica.
Ação - A ação que será executada quando encontrada a condição
Target - O Target, indica que o segmento inteiro receberá a ação
Condição - A condição que é espera para disparar o gatilho da ação.
Politica a nivel de linha
ALTER TABLE t2 ILM ADD POLICY
ROW STORE COMPRESS ADVANCED
ROW AFTER 90 DAYS OF NO MODIFICATION;
Na instrução temos para cada cor um aspecto da politica.
Ação - A ação que será executada quando encontrada a condição
Target - O Target, indica que a linha receberá a ação
Condição - A condição que é espera para disparar o gatilho da ação.
Casos especiais
Muitas politicas no mesmo segmento
É possivel habilitar muitas policitas desde que sejam seguidas algumas regras, são elas.
Todas as politicas deven seguir a mesma condição, seja ela no access, no modification ou creation time, essa deve seguir sempre com a mesma condição em todas as politicas.
A ação sempre deve ser uma ação em um nivel superior ao anterior, ou seja o nivel de compressão
sempre deve ser maior, quando mais velho o dado maior o nivel da ação.
Linha
É aceito apenas uma politica a nivel de linha.
A unica condição aceita a nivel de linha é a "No Modification"
Politicas de segmento não sobrepoem politicas de Linhas.
Herança
Caso seja especificado uma politica para um objeto que tenha dependencias, por exemplo partições de uma tabela, as partições recebem a mesma politica como hereança da politica da tabela. Caso nessa tabela seja criada uma politica a nivel de partição, essa politica sobrepoem a politica de tabela para aquela partição.
Mecanismo
Para politicas de linha o ADO utiliza o processo de MMON, o qual a cada 15 minutos avalia as linhas / Politicas e realiza qualquer ação que tiver sua condição quebrada.
Para os demais objetos somente são avaliados e qualquer ação tomada dentro da janela de manutenção. Para quebrar essa regra podemos utilizar duas procedures:
Avalia a politica: DBMS_ILM_ADMIN.EXECUTE_ILM
Para executar a Politica: DBMS_ILM_ADMIN.EXECUTE_ILM_TASK
Alguasm views que podem ser utilizadas para monitorar o ILM são
DBA_ILM_TASK
DBA_ILMEVALUATIONDETAILS
DBA_ILMRESULTS
Tipos de Compressão
Embora o ILM não trata dos detalhes de compressão, acho interessante ter em mente o básico de comprssão para entender muitas vezes o efeito esperado com o ILM.
- Row Compression
O tipo de compressão a nivel de linha é feito pelo Oracle através do agrupamento das colunas de uma mesma linha e removida os valores duplicados, assim substituindo por ponteiro para o valor original, até a próxima linha, a qual é agrupada no mesmo bloco. Existe dois tipos de compressão pra linha, row basic e advanced.
- Row Compression Basic
- Nivel de compressão mais básico
- Licença Enterprise Edition
- Não Suporta DML
- Metodos - Direct path insert, alter table move, redefinition
- Advanced Row Compression
- Adequado para OLT
- Suporta DML
- Requer licença especial de Advanced Compression
- Hybrid Columnar Compression
A compressão colunar é um pouco diferente da linha, o agrupamento é feito por vetores na coluna, portanto é utilizado um grupo de linhas, e a compressão é feito na coluna e armazenada como compression unit, podendo estar fisicamente armazenado em vários blocos.
Basicamente existem dois tipos de compressão HCC, For Query e For Archive.
HCC Requires: Exadata, SuperCluster, Pillar Axiom or ZFSSA storage
- Warehouse Compression
- For Query Low
- For Query High
- Archive Compression
- For Archive log
- For Archive High
Sintaxe para cada tipo de compressão:
Referencia
http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/ilm/ilm_tiering/ilm_tiering.html
https://docs.oracle.com/database/121/ADMIN/tables.htm#ADMIN015
https://docs.oracle.com/database/121/VLDBG/GUID-0193CE0F-4D9A-4D6F-8B19-E471DE94107C.htm#VLDBG007
Nenhum comentário:
Postar um comentário