Quem sou eu

2016 ESTÁ INICIANDO E O PROJETO DESTE BLOG ESTA RESSURGINDO !!!!

quarta-feira, 6 de outubro de 2010

LOGICAL LOG - INFORMIX

O que é logical LOG ?

Em varios dos tutoriais que estão neste blog o nome LOGICAL LOG aparece por varias vezes ... este material abaixo tem como finalidade explicar:

- O que é Logical Log
- Localização dos arquivos de logical Log
- Identificação dos arquivos de logical
- Status e flags dos arquivos de Logical Log
- Tamanho do Logical Log
- Numero de arquivos de logical Log
-Considerações de performance

OBSERVAÇÃO: Para monitorar e acompanhar o Logical Log deve ser utilizado o comando "onstat -l" , para movimentar o Logical Log "onmode -l" e para configirar o logical Log (Adicionar, deletar, modificar) o comando "onparams".

O que é Logical Log:

O Logical Log mantém o hitorico de transações da instancia de todas as mudanças ocorridas desde o ultimo backup executado (nivél 0,1 ou 2) ,o INFORMIX gera logicais logs conforme transações com o banco são efetuadas.
O INFORMIX armazena registros dos logicais logs que são construidos de forma circular através de arquivos criados dentro do chunk destinado ao Logical Log.
Os logicais logs podem ser compostos de 3 ou mais arquivos de logs definidos dentro do Chunk

ATENÇÃO: quando o banco é inciado pela primeira vez o logical log está contido no rootdbs e precisa ter no minimo 3 logs para funcionar.

O ultimo backup mais todos os arquivos de logical log gerados formam a base de dados completa (em caso de uma necessidade de restauração de backup será através do ultimo backup (0,1,2) mais os logicais logs que a base de dados será restaurada para o momento mais proximo da cena necessaria

ATENÇÃO: Não confundam os logicais logs existentes no chunk com o backup de LOG, cada vez que um logical log é completado é gerado um arquivo de backup do LOG ... Se o intuito é estar tendo backup de log para estar seguro que quando houver um evento que gere a necessidade de restaurar o backup possamos chegar no ponto mais proximo possivél do desejado então considere que logical log muito grande vai tornar ineficiente e logical log muito pequeno vai tornar muito custoso administrar e compromete a performance então existe um ponto de equilibrio.

A cada vez que o logical log é compeltado o seu uso e passa para o proximo arquivo de log é gerado um arquivo para uma area de despejo de arquivos (diretorio do sistema ) pré definida nos parametros do Onconfig contendo todas as transações ocorridas no logical Log.
Caso não seja feito gerenciamento do backup dos arquivos de log regularmente o INFORMIX irá parar de funcionar suspendendo todos os processos, até regularizar o backup.

Caso não exista interesse de manter o backup do logical Log armazenado deve então mandar para uma area nula /dev/null que o informix entenderá que está sendo feito e evita o travamento.


Gerenciar o backup dp logical Log inclui algumas tarefas:

-- na versão 11 foi feita algumas melhorias onde o backup pode ser feito direto para um diretorio vazio onde o proprio informix cria os arquivos, pode ser configurado o gerenciamento pelo ALARMEPROGRAM

- Escolher um local para ser depositado o logical Log.
- Monitorar o status dos logical Log
- Ter sempre espaço disponivél para o depejo dos novos logicais Logs.
- Alocar adicionais arquivos de log sempre que necessario.
- backup do logical Log para media
- Localização dos arquivos de Logical Log

Quando o banco de dados é instalado o Logical Log é criado pelo INFORMIX no root dbspace assim como o Physical Log também é criado. Por motivos de performance para diminuir o numero de escritas e gravações no root dbspace é recomendado mover os logicais logs para outro dbspace
Para melhorar performance já prevendo uma situação futura o logical log pode ser dividido em 2 grupos de arquivos em discos separados (Não vou me aprofundar neste assunto neste material,veremos isso em outro tutorial mas saiba que é possivél e recomendado)

Identificação dos arquivos de logical Log

cada arquivo de logical log tem um unico numero de identificação "uniqid", já sabemos que o Logical Log é circular ou seja : temos 6 Logical Log começando do numero 1 "number" que vai até o numero 6 "number" o INFORMIX é inicado então começa a gravar as transações no LOG 1 e conforme vai sendo completado o LOG vai vançando para os demais LOG como temos 6 arquivos de LOG quando ele chegar no de numero 6 ele vai retornar e utilizar o de numero 1 novamente porém o numero de "uniqid" será progressivo ou seja no primeiro ciclo o de numero 6 quando for ser utilizado pela segunda vez receberá o nuemro 7 na terceira vez 14 e assim por diante.

Status e flags dos arquivos de Logical Log

A primeira posição do Logical Log sempre será representada pelos status: A (adicionar) , D (deletar) , F (Free) , U (Used)

Tamanho do Logical Log :

O tamanho minimo para o arquivo de logical log é 200 kilobytesO tamanho maximo para o arquivo de logical log é 1048576 paginas (equivalente a 0X100000)
Numero de arquivos de logical Log
O INFORMIX requer no minimo 3 logical Log e pode ter no maximo 32767 arquivos de logical log.
O numero de log vai depender do tamanho dos arquivos de log (em simpes palavras, podemos ter um dbspace de 2 GB com 1 unico logical log de 2GB como podemos ter uma area de 2GB dividida em varios logical log de 15 MB)

O numero de arquivos de logical log e seus tamanho e a quantidade de transações vai influenciar diretamente na frequencia de backup de log, checkpoints .

-- Existe um calculo para chegar no tamanho e quantidade de log necessario para o servidor.

LOGSIZE = (connections * maxrows * rowsize) / 1024) / LOGFILES

- connections > utilize "onstat -u" e pegue a informação maximum concurrent
- maxrows > Numero maximo de linhas previstas para serem atualizadas em uma unica transação
- rowsize> o tamanho médio de uma linha em bytes.

total logical log space = LOGFILES * LOGSIZE

para saber as informações existentes atuais de "LOGFILES" e "LOGSIZE" utilize o "onstat -l"

Obs: O size apresentado no "onstat -l" vai mostrar em paginas para saber o tamanho da pagina criada utilize "onstat -b" para chegar no resultado em KB multiplique o SiZE pelo tamanho do (Buffer size / 1024)