Quem sou eu

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

segunda-feira, 4 de outubro de 2010

CONFIGURAÇÃO I

Vamos falar neste tutorial das configurações básicas que podem ser feitas após a instalação do IDS.

- Criar dbspaces
- Configurar dbspace Logical Log
- Configurar dbspace Phisical Log
- Configurar dbspace temporario

Para o IDS inicializar pela primeira vez ele requer uma área reservada para Logical Log e Phisical Log, no momento da sua primeira inicialização este espaço é reservado junto ao rootdbs. (veja a matéria explicando o que é logical Log e Phisical Log ) . é necessario existir o minimo de 3 logical log senão o banco não irá inicializar.

Comentário: Relembrando o tutorial de instalação 02 , teremos no arquivo onconfig uma configuração de path e size do rootdbs.


O que vamos fazer agora é desvincular o Logical Log e phisical Log do rootdbs entregando para esses dois objetos áreas reservadas e exclusivas para eles.

Criar arquivos vazios de dados:

Comentário: neste tutorial estamos criando esses espaços por arquivos mas certamente se pensarmos em performance iríamos utilizar rawdevices.

Relembrando: A minha escolha para o local dos arquivos de dados foi de utilizar o diretório /opt/ifmxdata -- eu escolhi esse diretório mas isso não é uma regra.

Comentario: eu gosto de organizar os nomes do chunk seguindo uma lógica que eu sigo em quase todos os lugares onde eu trabalho com IDS, mas é uma convenção e não uma exigência, vou explicar a minha regra de formação de nome.

Dbs = indica que o espaço é do tipo dbspace
nome do dbspace= identifico a finalidade do chunk como exemplo dbs_llog_dat.000 o llog seria o nome do tipo do chunk que relaciono como sendo logical log , se fosse dbs_plog_dat.000 seria phisical Log ou se fosse dbs_temp1_dat.000 seria temporário.
Dat = Relaciono que é um arquivo de dados.
000 = Numero do Chunk do dbspace , um único dbspace pode ter vários chunk então conforme vamos adicionando chunk esse numero é incrementado uma unidade (000, 001, 002 ...)

Maneira como eu faço a construção dos nomes : # reforçando este é o meu padrão, funcionaria com outros nomes sem nenhum problema, sejam criativos !

dbs_llog_dat.000 # Logical Log
dbs_plog_dat.000 # Phisical Log
dbs_temp1_dat.000 # temporario
dbs_dados_dat.000 # dados

Vamos agora criar então os arquivos de chunk :

$ touch /opt/ifmxdata/dbs_llog_dat.000
$ touch /opt/ifmxdata/dbs_plog_dat.000
$ touch /opt/ifmxdata/dbs_temp1_dat.000
$ touch /opt/ifmxdata/dbs_dados_dat.000


Explicação: temos criado arquivos no sistema operacional, até o momento o banco de dados não está utilizando e nem sabe que existe esses espaços.


Comentario adicional: Se estivessemos trabalhando com Rawdevices ao inves de criar o arquivo vazio fariamos link simbolico para o raw que estaria montado através do serviço do rawdevices , lembrando que poderiamos apontar mais de um cunk a unico raw, é importante saber o tamanho fisico existente em cada raw , caso tenha mais de 1 chunk apontado para o mesmo raw vai então utilizar o offset para separar os espaços...

Ex:
$ ln -s /dev/raw/raw1 rootdbs
$ ln -s /dev/raw/raw1 dbs_plog_dat.000
$ ln -s /dev/raw/raw2 dbs_llog_dat.000
$ ln -s /dev/raw/raw3 dbs_temp1_dat.000
$ ln -s /dev/raw/raw4 dbs_dados_dat.000

## O exemplo acima é somente em caso de utilizar rawdevices, não estamos fazendo essa pratica neste tutorial apenas estou demonstrando mais uma opção. (considere o uso do Rawdevice para melhor performance)



Definindo espaço para ser utilizado:


Com base nos arquivos criados no passo acima vamos atuar agora em entregar esses arquivos para o banco de dados e também definir espaço.

Iremos ver agora mais um comando do INFORMIX, esse comando é responsável pelo gerenciamento de espaço (Criar, excluir , adicionar) como padrão do informix em quase todos os comandos se quiser verificar os atributos de comando execute onspaces –


Sintaxe completa do comando que vamos usar agora:

Onspace { -c { -d [-k ] [-t]
-p -o -s [-m ] }

Sintaxe que vamos usar:

Onspaces { –c -d
-p -o -s }

Resumida explicação das Sintaxe do onspaces:

-c = Criar novo dbspace (Só utilizado quando vamos criar um novo dbspace, em casos de adicionar novos chunks esse –c é trocado por –a)
-d = nome do dbspace (Na minha convenção eu uso dbs_llog, dbs_plog, dbs_temp1,dbs_dados ...)
-p = caminho onde está o arquivo ou link para o chunk (No meu caso eu uso /opt/ifmxdata/)
-o = Ponto de inicio de onde deve começar a criar o chunk esse numero vai ser alterado caso no mesmo bloco do disco esteja sendo adicionado mais de 1 único dbspace.
-s = tamanho do dbspace em Kb
-t = define o dbspace como temporário

Antes de criar é importante traçar um plano de espaços que serão adicionados.

Phisical Log , vamos criar com 400Mb
Logical Log , vamos criar com 500MB
Temporario1, Vamos criar com 500MB
Dados, Vamos criar com 1GB


Antes de efetuar a criação execute o comando osntat –d # Esse comando vai mostrar a você a situação atual dos dbspaces, neste momento só teremos o rootdbs
Execute também um

Criando:

$ onspaces –c –d dbs_plog –p /opt/ifmxdata/dbs_plog_dat.000 –o 0 –s 400000
$ onspaces –c –d dbs_llog –p /opt/ifmxdata/dbs_llog_dat.000 –o 0 –s 500000

$ onspaces –c –d dbs_temp1 –t –p /opt/ifmxdata/dbs_temp1_dat.000 –o 0 –s 500000 # esse tem o parâmetro –t que indica ser um dbspace temporário.
$ onspaces –c –d dbs_dados –p /opt/ifmxdata/dbs_dados_dat.000 –o 0 –s 1000000


Execute agora o onstat –d novamente e veja que o banco já tem agora os espaços criados.
Seria legal também executar um ls –lh e verificar que os arquivos estão todos com o o tamanho que definimos ...

Bem agora temos espaços adicionados para o banco, mas o banco ainda não sabe para qual finalidade é cada espaço vamos então agora fazer algumas configurações para dizer ao banco a finalidade de cada um desses espaços.

Vamos inicialmente trabalhar o logical Log

Antes de qualquer mudança executem o comando onstat –l , com este comando será listado o Logical Log .

Observe que teremos 6 logicais Log e na coluna “Begin” o inicio será 1:XXXXX esse numero 1 representa que ele está fisicamente construído no dbspace 1, veja quem é o dbspace 1 com o comando onstat –d . Se fosse 2:XXXX teríamos o logical log no dbspace numero 2 se 3:XXXX seria no dbspace 3 e assim por diante, vale lembrar que posso criar logical log em dbspaces distintos , veremos mais adiante quando for ser criado .

Resposta: O dbspace 1 é o rootdbs , lembra que falei um pouco mais acima que o logical log e phisical log seriam criados fisicamente no roodbs então está ai a comprovação.

Vamos então fazer a alteração do logical log do dbspace 1:XXXX (rootdbs) para o dbspace 2:XXXXX (dbs_llog)

Veremos agora mais 1 comando onparams, esse comando também exibe a sintaxe através do comando onparams -- , o onparans vai permitir criar, apagar e mover logical log .

Sintaxe que vamos utilizar:

Onparams
-a -d [-s ]

-a = adicionar arquivo de logical log
-d = dbspace , nome do dbspace que receberá os arquivos de logical log
-s = tamanho do arquivo de logical log # Neste tutorial estarei criando com o tamanho de 15MB , mas existe uma conta para definir este tamanho , logical log muito grande pode ser problema e logical log muito pequeno pode ser problema tem um tamanho certo , lembrem-se.

$ onparams –a –d dbs_llog –s 15000 (6 vezes)

Vamos repetir esse comando por 6 vezes .

$onstat –l
Comentário: esse comando onstat –l estará mostrando que temos agora 12 arquivos de logical log criados sendo que 6 pertencem ao dbspace rootdbs e 6 pertencem ao dbspace dbs_llog

Teremos então que movimentar o cursor do logical log até a posição 7 para que possamos então excluir os 6 primeiros logical log ficando apenas com os novos .

$ onmode –l (execute esse comando por 6 vezes)
$ onmode –c
$ onstat –l # veja que o cursor estará no logicalLog de numero 7

Excluindo os 6 primeiros logs que estão construídos dentro do rootdbs

Sintaxe excluir logical log:

onparams
{ -d -l [-y] }

-d = excluir (drop)
-l = numero do logical log
-y = Confirmação automática

$ onparams –d –l 1 –y # Excluindo 1 logical Log
$ onparams –d –l 2 –y # Excluindo 2 logical Log
$ onparams –d –l 3 –y # Excluindo 3 logical Log
$ onparams –d –l 4 –y # Excluindo 4 logical Log
$ onparams –d –l 5 –y # Excluindo 5 logical Log
$ onparams –d –l 6 –y # Excluindo 6 logical Log


$onstat –l # Observe que teremos agora apenas 6 Logical Log porém eles estão com o numero 7,8,9,10,11,12

Adicionar então 6 novos logicais Log

$ onparams –a –d dbs_llog –s 15000 (6 vezes)
$ onstat –l # veja que temos agora 12 logical log porém o de numero 1 começa após o de numero 7 .

O passo asseguir não é necessário pois essa numeração é apenas organizacional não irá atrapalhar em nada o funcionamento, mas eu como sendo chato e querendo que quem esteja seguindo esse tutorial pratique vou então arrumar essa sequencia exluindo os logicais de 7 – 12

Leve o cursos até o logical Log 1

$ onmode –l (execute esse comando por 6 vezes)
$ onmode –c
$ onstat –l # veja que o cursor estará no logicalLog de numero 1

Excluir o logical log da posição 7 até a 12

$ onparams –d –l 7 –y # Excluindo 1 logical Log
$ onparams –d –l 8 –y # Excluindo 1 logical Log
$ onparams –d –l 9 –y # Excluindo 1 logical Log
$ onparams –d –l 10 –y # Excluindo 1 logical Log
$ onparams –d –l 11 –y # Excluindo 1 logical Log
$ onparams –d –l 12 –y # Excluindo 1 logical Log

$ onstat –l # veja que o cursor estará no logicalLog de numero 1 e a sequencia de 1 até 6 está correta agora ..

Então agora é só adicionar a quantidade de logical Log que precisamos, lembrando que a área de logical log definida no inicio do tutorial é de 500MB então nesta área teremos como adicionar com o tamanho de 15MB a quantidade máxima de 33 Logical Log .

Temos 6 já criado então falta adicionar 27 para isso então repita o comando abaixo poer 27 vezes ....

$ onparams –a –d dbs_llog –s 15000 (27 vezes)
Comentário: Como somos mentes evoluídas deixamos o trabalho repetitivo para outras pessoas vamos montar uma linha para fazer esse comando de uma vez só

$ for i in $(seq 7 33); do onparams -a -s 15000 $i ; done # Fica essa linha como sugestão, o importante é criar os 27 logical log não importa como o que precisa é quando executar onstat –l tenhamos 33 logical log criados e definido o dbspace dedicado a finalidade de acomodar os logical log.

CONFIGURANDO PHYSICAL LOG

A configuração do Physical Log é feita através do comando onparams o mesmo utilizado para a configuração acima do Logical Log.

Sintax utilizada para a configuração do Phisical Log

Onparams
{ -p -s [-d ] [-y] }

-p = Indica que é physical log
-s = tamanho em Kb definido
-d = nome do dbspace
-y = Confirmação automática do comando

Antes de alterar o dbspace vamos ver com o comando onstat –l o tamanho e local onde está o physical Log.

$ onstat –l # Esse comando trás informações do Logical Log e Physical Log , localize no seu arquivo logo no inicio as informações do Physical Log, o que nos interessa neste momento é a coluna e phybegin physize que respectivamente respondem pela informação de onde está o Phisical e qual o tamanho o size é exibido em paginas (o tamanho de paginas que estamos utilizando no dbspace é de 2Kb)

Physical Logging
Buffer bufused bufsize numpages numwrits pages/io
P-1 4 64 272778 4884 55.85
phybegin physize phypos phyused %used
1:53 32000 143881 45 0.03

$ onmode –u # essa alteração exige que seja feita com o banco em quaisent mode
$ onparams –p –s 400000 –d dbs_plog –y
$ onmode –m # Voltar o banco para modo online
Execute o comando onstat –l e veja que teremos mudanças, phybegin agora está com o dbspace 3 e physize está com 400MB (lembrando que o size é exibido em paginas e trabalhamos com paginas de 2k então para tramanho em Kb deve mutiplicar por 2)

Physical Logging
Buffer bufused bufsize numpages numwrits pages/io
P-2 3 64 272906 4925 55.41
phybegin physize phypos phyused %used
3:53 200000 144050 100 0.06


As alterações automaticamente são escritas no arquivo onconfig PHYSDBS e PHYSFILE