oracle_dest

Para um bom funcionamento do banco de dados Oracle uma das tarefas primordiais é o ajuste do sistema operacional, em outras palavras, adaptar o sistema operacional para hospedar o banco de dados, essa adaptação envolve mudanças no comportamento padrão do sistema operacional, que é requerido para que o Oracle exercer suas atividades, sem quaisquer surpresas.

 

  • Verificação de memória MEMORIA RAM e SWAP

Memoria RAM

Requisitos: Valor mínimo 2.5GB

Como verificar:

/usr/sbin/lsattr -E -l sys0 -a realmem

 

SWAP

Requisitos: Valor mínimo 1,5GG

Como verificar:

/usr/sbin/lsps -a

 

Recomendação: Para uma hardware com capacidade de 2.5GB até 16GB de MEMORIA RAM devemos usar “Valor de SWAP” = “Valor de MEMORIA RAM”. Para uma hardware com capacidade acima de 16GB RAM devemos usar 16GB para SWAP

 

  • Verificação de espaço na partição /tmp do file system

Requisitos: Valor mínimo 2GB

Como verificar:

/usr/bin/df -g /tmp

 

  • Parametrizações do Kernel1. Parametrização do sistema operacional AIX via utilitário no.

no -r -o ipqmaxlen=512
no -r -o rfc1323=1
no -r -o sb_max=1310720
no -r -o tcp_recvspace=65536
no -r -o tcp_sendspace=65536
no -r -o udp_sendspace=65536
no -r -o udp_recvspace=655360
no -p -o tcp_ephemeral_low=9000 -o tcp_ephemeral_high=65500
no -p -o udp_ephemeral_low=9000 -o udp_ephemeral_high=65500

 

Recomendação: Após execução das parametrizações, efetuar um reboot do servidor.

Para verificar os valor dos parâmetros após reboot, utilizar os comandos:

/usr/sbin/no -a | grep ipqmaxlen
/usr/sbin/no -a | grep rfc1323
/usr/sbin/no -a | grep sb_max
/usr/sbin/no -a | grep tcp_recvspace
/usr/sbin/no -a | grep tcp_sendspace
/usr/sbin/no -a | grep udp_sendspace
/usr/sbin/no -a | grep udp_recvspace

 

             2. Parametrização das interface de rede do sistema operacional AIX via utilitário chdev.

 

Requisitos: tcp_recvspace , tcp_sendspace , udp_recvspace e udp_sendspace, devem estar com valores 65536.

 

chdev -l 'enXXXX' -a state='up' -a tcp_recvspace='65536' -a tcp_sendspace='65536'

chdev -l 'enXXXX' -a state='up' -a udp_recvspace='65536' -a udp_sendspace='65536'

 

OBS.: Entende-se por ‘enXXXX’ uma interface de rede valida, por exemplo, en0 (‘enXXXX’ é um nome genérico que representa a sua interface válida.).

Exemplo:

chdev -l 'en1' -a state='up' -a udp_recvspace='65536' -a udp_sendspace='65536'
chdev -l 'en1' -a state='up' -a tcp_recvspace='65536' -a tcp_sendspace='65536'

 

     3. Parametrização dos recursos de hardware interface de rede do sistema operacional AIX via utilitário chdev.

 

Requisitos: Parâmetro “maxuproc” deve ser maior ou igual a 16384.

Como verificar:

lsattr -E -l sys0 -a maxuproc -F value

 

Se, maxuproc não é maior ou igual a 16384, então é necessário ajusta-lo

chdev -l sys0 -a maxuproc=16384

 

 

  • Verificar se existe todas as bibliotecas necessárias para instalação (compilação) do Oracle Database.

 

  1. Checar os filesets necessários para a instalação.

Requisitos: Os seguintes filesets são requeridos:

  • adt.base
  • adt.lib
  • adt.libm
  • perf.libperfstat
  • perf.perfstat
  • perf.proctools
  • aix61.rte:10.1.0.0 ou superior
  • rte.10.1.0.0 ou superior
  • base 3.3.0.11 ou superior

 

Como verificar:

  • O campos “State” deve estar com status “COMMITTED”

lslpp -l bos.adt.base bos.adt.lib bos.adt.libm bos.perf.perfstat bos.perf.libperfstat bos.perf.proctools xlC.aix61.rte rsct.basic.rte rsct.compat.clients.rte xlC.rte

 

2. Verificar se HACMP está instalado.

Como verificar:

  • O retorno do comando deverá informar que as bibliotecas, referente ao HACMP está “not installed”

lslpp -l cluster.es.* rsct.hacmp.rte rsct.compat.basic.hacmp.rte rsct.compat.clients.hacmp.rte

 

  • Verificar se Patch APAR para o “AIX 7.1 TL 0 SP1”, requerido para o Oracle 11gR2 foi aplicado.

APAR é um pedido para a correção de um defeito em uma versão atual de um programa fornecido pela IBM.

Como verificar:

O retorno do comando deverá informar, que foram encontrados todos os filesets para o determinado APAR.

/usr/sbin/instfix -i -k “IZ87216 IZ87564”

 

O Retorno do comando deve ser:

All filesets for IZ87216 were found.
All filesets for IZ87564 were found.

 

  • Workarounds dos bugs 13531373 e 13077654.

1.  bug 13531373 – AIX specific

No arquivo /etc/rc.net, insira o bloco IF abaixo, no fim do arquivo.

######## Workaround bug 13531373 (AIX)
## DBAFURUSHIMA – CARLOS FURUSHIMA
#
if [ -f /usr/sbin/no ] ; then
/usr/sbin/no -p -o tcp_ephemeral_low=9000
/usr/sbin/no -p -o udp_ephemeral_low=9000
/usr/sbin/no -p -o tcp_ephemeral_high=65500
/usr/sbin/no -p -o udp_ephemeral_high=65500
/usr/sbin/no -p -o udp_sendspace=65536
/usr/sbin/no -p -o udp_recvspace=655360
/usr/sbin/no -p -o tcp_sendspace=65536
/usr/sbin/no -p -o tcp_recvspace=65536
/usr/sbin/no -p -o rfc1323=1
/usr/sbin/no -p -o sb_max=4194304
/usr/sbin/no -r -o ipqmaxlen=512
fi
#
########

 

2. bug 13077654 – AIX specific

Criação de link simbólico para utilitários no e lsattr, em /etc.

ln -s /usr/sbin/no /etc/no
ln -s /usr/sbin/lsattr /etc/lsattr

 

  • Criação de usuários e grupos UNIX.

Descreveremos a criação dos usuários grid (Usuário owner do grid infrastructure) e oracle (Usuário owner para o RDBMS).

 

Criação dos grupos

mkgroup -‘A’ id=’501′ adms=’root’ dba
mkgroup -‘A’ id=’502′ adms=’root’ oinstall
mkgroup -‘A’ id=’503′ adms=’root’ oper
mkgroup -‘A’ id=’504′ adms=’root’ asmadmin
mkgroup -‘A’ id=’505′ adms=’root’ asmadba
mkgroup -‘A’ id=’506′ adms=’root’ asmoper

 

Criação dos usuários

mkuser id=’401′ pgrp=’oinstall’ groups=’oinstall,dba,asmadmin,asmdba,asmoper’ home=’/home/grid’ grid
mkuser id=’402′ pgrp=’oinstall’ groups=’oinstall,dba,asmadmin,asmdba,asmoper’ home=’/home/oracle’ oracle

 

  • Atribuir Capabilities para o usuário owner do grid infrastructure.

Atribuindo os Capabilities:

/usr/bin/chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE grid

 

Como verificar:

/usr/bin/lsuser -a capabilities grid

 

  • Definição dos limits em /etc/security/limits para os usuario que estão envolvidos com os binário ORACLE instalados.

 

Os usuários devem conter as seguintes características de limits.

fsize = -1
core = 2097151
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1

 

Exemplo:

grid :

fsize = -1
core = 2097151
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1

 

oracle :

fsize = -1
core = 2097151
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1

 

  • Configuração do NTP

Em caso de implementação do Oracle RAC, o serviço NTP é necessário para sincronização do horário entre os nodes existentes.

Inserir o bloco de configuração abaixo em /etc/ntp.conf, informando o IP de seu servidor NTP, no argumento da linha “server” (Primeira linha).

server <IP DO SEU SERVIDOR NTP>

driftfile /etc/ntp.drift

tracefile /etc/ntp.trace

 

No arquivo /etc/rc.tcpip, retire o comentário da linha com o conteúdo “#start /usr/sbin/xntpd “$src_running”” (Comentário é representado pelo caractere #) e ao final do conteúdo adicione o argumento “-x”.

Linha com comentário

#start /usr/sbin/xntpd “$src_running”

 

Linha sem comentário + argumento “-x”

start /usr/sbin/xntpd “$src_running” “-x”

 

Finalizado todos os ajustes de NTP, realizar um stop/start dos serviços, representado pelo deamon xntpd.

stopsrc -s xntpd

startsrc -s xntpd -a “-x”

 

Como verificar status do NTP:

lssrc -ls xntpd

 

 

Carlos H. Y. Furushima é um especialista em banco de dados relacional, trabalhando como consultor de TI, atuando principalmente como o Oracle Database Administrator (DBA Oracle). Tem uma vasta experiência e conhecimento em “Performance, diagnostic and tuning”, “High Availability”, “Backup & Recovery” e “Exadata”. Ele também está entusiasmado com sistema operacional Linux/Unix, onde contribui com o desenvolvimento do código do kernel Linux em parceria com a comunidade “GNU Linux”, com criação e revisão de novas funcionalidades, melhorias e correções de bugs. Recentemente, Furushima divide seu tempo com consultoria especializada em banco de dados Oracle e estudos sobre “Oracle Internals”, com o objetivo de descobrir e entender os benefícios do bancos de dados Oracle em plataforma Linux/Unix. Siga Furushima em seu blog http://dbafurushima.com.br/.