Este documento serve como base para a instalação do Oracle no Linux 32 bits, porém pode ser usado para instalação do Oracle em 64 bits, porém a lista de pacotes rpm muda um pouco, consulte a documentação oficial em http://otn.oracle.com
1) Swap – Tamanho de 4GB – Seguindo as recomendações da Oracle sobre a instalação do Sistema Operação para execução de um banco de dados Oracle. O servidor onde será instalado possui 2GB de memória RAM físico, logo, terá que ser configurado com 4GB de espaço de troca (SWAP).
2) Usuário e Grupos do SO – Para a instalação do Oracle, precisaremos criar dois grupos e um usuário Sistema Operacional os grupos serão “oinstall” e “dba “ e o usuário criado será “ora10g”, associando o usuário ora10g ao grupo oinstall e dba.
3) Sistema de Arquivos – O sistema de arquivos do servidor foi divido para atender as especificações da arquitetura OFA (Optimal Flexible Architecture), nesse servidor temos 2 discos, um deles foi usado para o sistema operacional e outro como o ponto de montagem /u01 foi usado para o Oracle.
4) Parâmetros de Kernel – A instalação do Oracle 10g em qualquer sistema operacional Unix like como linux requer que alteremos alguns parâmetros de kernel relativos a memória compartilhada e semáforos. Estes parâmetros devem ser configurados no arquivo /etc/sysctl.conf
Parameter Recomendado Default Verificar
Shmmax 2147483648 33554432 cat /proc/sys/kernel/shmmax
Shmmni 4096 4096 cat /proc/sys/kernel/shmmni
Shmall 2097152 2097152 cat /proc/sys/kernel/shmall
Shmmin 1 1 ipcs -lm | grep “min seg size”
Semmsl 250 250 cat /proc/sys/kernel/sem | awk ‘{print $1}’
Semmns 32000 32000 cat /proc/sys/kernel/sem | awk ‘{print $2}’
Semopm 100 32 cat /proc/sys/kernel/sem | awk ‘{print $3}’
Semmni 128 128 cat /proc/sys/kernel/sem | awk ‘{print $4}’
file-max 65536 102696 cat /proc/sys/fs/file-max
ip_local_port_range 1024 65000 32768 61000 Cat /proc/sys/net/ipv4/ip_local_port_range
Outros:
rmem_default 262144 cat /proc/sys/net/core/rmem_default
rmem_max 262144 cat /proc/sys/net/core/rmem_max
Wmem_default 262144 cat /proc/sys/net/core/wmem_default
Wmem_max 262144 cat /proc/sys/net/core/wmem_max
SEMMNI – Define o número máximo de semáforos configurados em todo o sistema.
SEMMNS – Define o número máximo de semáforos no sistema. Este parâmetro deve ser a soma de todos os parâmetros PROCESSES de cada instância que roda no servidor * 2 + 10 por cada instância.
SEMMSL – Define o mínimo recomendado para uma instalação inicial
SHMMAX – Define o tamanho máximo de um segmento de memória compartilhado, SGA por exemplo.
SHMMIN – Define o tamanho mínimo de um segmento de memória compartilhado.
SHMMNI – Define o número máximo de segmentos de memória compartilhada no sistema inteiro
SHMSEG – Define o máximo número de segmentos de memória compartilhada que um processo pode alocar.
# No mínimo coloque essas configurações no /etc/sysctl.conf
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
Depois de alterar o arquivo de parâmetros do kernel temos duas alternativas pare que essas mudanças sejam refletidas:
Opção I) /sbin/sysctl -p (Acho que essa é bem mais fácil e rápida)
Opção II) Reboot do sistema
5) Pacotes Necessários e SO (Homologado)
Como o CentOS não é uma versão homologada para instalação do Oracle embora seja um clone do RedHat e funcione perfeitamente, precisamos alterar o arquivo /etc/redhat-release com intuito de enganar o instalador do Oracle.
6) Vrificando pacotes rpm – Para verificar os pacotes mínimos requeridos para instalação no Red Hat Enterprise Linux 4, use o commando:
rpm -q –qf ‘%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})n’ binutils compat-db control-center gcc gcc-c++ glibc glibc-common gnome-libs libstdc++ libstdc++ make pdksh sysstat xscreensaver
# Instale os pacotes abaixo para não ter problemas através de mídia
rpm -Uvh setarch-1*
rpm -Uvh compat-libstdc++-33-3*
rpm -Uvh make-3*
rpm -Uvh glibc-2*
rpm -Uvh openmotif-2*
rpm -Uvh compat-db-4*
rpm -Uvh libaio-0*
rpm -Uvh gcc-3*
rpm -Uvh compat-gcc-32-3*
rpm -Uvh compat-gcc-32-c++-3*
Ou através do yum se estiver com acesso a internet no servidor
yum install setarch
yum install compat-libstdc++
yum install make
yum install glibc
yum install openmotif
yum install compat-db
yum install libaio
yum install gcc
yum install compat-gcc
7) Desative o SELINUX, PAM Linux altere limites de arquivos – Edite o arquivo /etc/selinux/login marcando como disabled, pois ele vai causar problemas na instalação.
8) Adicione a linha abaixo no arquivo /etc/pam.d/login
9) Adicione as linhas abaixo no arquivo /etc/secutiry/limits.conf
10) Criação da $ORACLE_BASE e $ORACLE_HOME
11) Permissões no ponto de montagem /u01
chown –R ora10g.oinstall /u01
12) Descompacte os arquivos de instalação do Oracle
cd /u01
unzip 10201_database_linux32.zip
13) Configurando o arquivo .bash_profile
vi /home/ora10g/.bash_profile e adicione as linhas abaixo
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=dsrj01; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
if [ $USER = “ora10g” ]; then
if [ $SHELL = “/bin/ksh” ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
14) Instalação dos binários do banco de dados Oracle
Vá para o diretório /u01/database e execute o script runInstaler
cd /u01/database
./runInstaler
15) Verificações – O instalador do Oracle 10g Release 2 irá fazer uma série de verificações, por isso o arquivo /etc/redhat-release foi alterado, para enganar o instalador. Além disso, após o SO ele checa rede, parâmetros de kernel e etc.
Instalação do Oracle através do OUI – Desse ponto em diante é fácil seguir as opções disponíveis no OUI (Oracle Universal Installer) que é idêntico em todas as plataformas. Iremos optar por instalação avançada para ele não criar o banco de dados inicial, pois iremos migrar um banco pré-existente para essa máquina.
16) Método de instalação
17) Escolha a versão que irá instalar
18) ORACLE_HOME e ORACLE_BASE – Escolha a ORACLE_HOME, por default o OUI irá usar o que está definido na variável de $ORACLE_HOME no arquivo .bash_profile
19) Checagem de pré-requisitos – Nesse momento, o OUI faz uma série de checagens e é importante que todas elas sejam aceitas por ele para que se tenha uma instalação bem sucedida.
20) Seleção de configuração (criar ou não o banco) – No nosso caso eu optei por só instalar o banco, pois eu irei migrar uma base de dados existente para este servidor. Mas podemos usar o DBCA (Database Creation Assistant)
21) Sumário da instalação – Tela de sumário, onde ainda podemos revisar se está tudo de acordo com o que queremos instalar. Clique em instalar para dar início da instalação.
22) Progresso da instalação – Depois de feito isso é só deixar essa barra de progresso ficar toda azul nos vários processos de instalação que a instalação irá terminar com sucesso.
23) Execução de scripts no SO – Quando a instalação estiver quase completada o OUI irá solicitar para rodar o root.sh logado no SO como usuário root
24) Logue-se como root e execute o comando abaixo
sh /u01/app/Oracle/product/10.2.0./db_1/root.sh
25) Instalação completada – Basta clicar em ok, depois se abrirá a tela de finalização da instalação com os endereços para o isqlplus. Basta clicar em exit.
Seguindo os passos vistos nesse documento o Oracle 10g R2 será instalado no CentOs 4 sem maiores problemas.
Referência
http://tahiti.oracle.com
http://download-east.oracle.com/docs/html/B15659_03/toc.htm
http://www.puschitz.com/InstallingOracle10g.shtml
http://www.oracle-base.com/articles/10g/OracleDB10gR2InstallationOnRedHatAS4.php