quinta-feira, 6 de janeiro de 2011

PARAMETROS DE KERNEL ORACLE OU SEMAFOROS.













Olá pessoal, tudo bem?

Trago até vocês hoje uma temática que já é do conhecimento de muitos DBA's do mercado que agregam funções de SYSADMIN's também.

Hoje eu quero compartilhar com vocês algo que li em um livro que comprei a algum tempo , e que fala sobre a "SEMAFORIZAÇÃO" ou "KERNEL PARAMETERS" para compor o processo de instalação do Oracle Database.

KERNEL PARAMETERS ou SEMAFOROS

 Bem , como é do conhecimento de todos, no nosso dia a dia, os sinais que regulam o nosso trânsito tem por função básica algumas opções, são elas :


  • garantir a ordem no trânsito.
  • assegurar um bom funcionamento do trafego de pedestres e carros.
  • evitar acidentes.
  • zelar pela integridade fisica dos condutores e dos transeuntes.
 Essas seriam as premissas básicas dos semaforos de trânsito, que nem sempre são respeitados, criticas a parte no Oracle nós também contamos com esses mecanismos de controles para FREAR, LIMITAR ou até mesmo IMPEDIR que excessos sejam cometidos e venham a comprometer nosso bom funcionamento de ambiente.

Podemos encontrar esses parametros em nossos sistemas operacionais, mais precisamente estou me referindo ao LINUX, dentro do PSEUDO FILESYSTEM chamado "/proc" ou ainda sob a forma do arquivo muito conhecido das documentações oficiais de instalação e configuração de Bancos de Dados Oracle, o SYSCTL.CONF localizado dentro do "/etc". Vejam abaixo nas duas figuras:














 Muito bem, dentro do "/proc/sys/kernel/" nós podemos encontrar individualmente os arquivos SHMMNI,SHMMAX,SHMALL e SEM, como demonstrado abaixo, e cada um desses arquivos é responsável por exemplo pelo numero de arquivos que podem ser abertos, range de portas e IP's, memória compartilhada e etc.





Além de listar eu aproveitei e dei um CAT nos arquivos para que vocês pudessem ver os conteúdos dos mesmos, vamos ver agora como é o formato do outro local onde podemos mudar os nossos parametros de KERNEL, o SYSCTL.CONF  do "/etc" :




DESCRIÇÃO DE ALGUNS PARAMETROS DE KERNEL

Vimos acima que temos "N" parâmetros que nos dão as diretrizes dos nossos limites dentro do S.O, mas vejamos uma breve descrição de alguns deles e sua correlação direta com o ORACLE DATABASE.

Parâmetro: smmsl
Valor: 250
Descrição: determina o numero máximo de semáforos por ID.


Parâmetro: semmns
Valor: 32000
Descrição: determina o número máximo de semáforos no sistema e seu valor deriva da multiplicação do smmni X semmsl.

Parâmetro: semopm
Valor: 100
Descrição: determina o número máximo de operações por chamada de semáforos.

Parâmetro: smmni
Valor: 128
Descrição: determina o numero máximo de semaforós identificados.

Diretamente ligados a nossa SGA, nós temos os seguintes parametros :
Parâmetro: shmall
Valor: 297152
Descrição: determina o numero de memória compartilhada

Parâmetro: shmmax
Valor: metade do tamanho da memoria.
Descrição: determina o tamanho máximo do segmento de memória compartilhado.

Bem, esses são alguns dos parâmetros, a duas maneiras de altera-los, já que são dinâmicos, se estivermos optando por alterar os que se encontram no "/proc/", o meio mais seguro é via comando "echo" , desta maneira:

echo "valor" > /proc/sys/kernel/shmmax
Obs: podemos montar um shell script para que faça as alterações necessárias em todos os arquivos de uma só vez, basta que adicionemos as linhas pertinentes e sigamos o procedimento acima, lembrem-se que por se tratar de arquivos de segurança do S.O devem ser alterados com ZELO e por uma conta de super-usuário, no caso ROOT.


A alteração que fizemos reflete diretamente no nosso BANCO DE DADOS ORACLE, pois dirá ao instalador quando chamarmos o DBCA por exemplo que nossa SGA não poderá passar do valor de 2GB, porém este tamanho é suficiente para rodar uma instalação do produto 10g sem problemas, mais em alguns casos pode ser insuficiente para uma SGA de um banco de grande porte.


Caso optem por usar o bom e velho "sysctl.conf", basta editarmos o mesmo que fica localizado no "/etc/", usando um editor de sua preferência e com uma conta também de super-usuário edite o arquivo e adicione seus parâmetros:


E para ativar as mudanças, basta que executemos na janela TERMINAL o programa "/sbin/sysctl -p" :




E BINGO!!!, alteramos nossos parametros de KERNEL, agora é só colocar o banco para instalar e configurar e correr para o abraço.


Espero que tenham gostado, um abraço á todos e até a próxima!!!

P.S.:Escrevam para mim, comentem , mandem sugestões criticas enfim esse espaço é tanto meu quanto de vocês.