Esse artigo tem por finalidade seguir passo a passo a preparação e ambiente de instalação do Oracle 10gR2 x64 no sistema operacional CentOS 6.4 x64. Parte do pressuposto que o CentOS tenha sido instalado na configuração Basic Server e adicionado apenas os pacotes do grupo X Window System e Desktop.
Alguns artigos anteriores poderão ser úteis:
Utilizarei o usuário root na execução dos comando até que seja expressa a mudança de usuário no decorrer do artigo. É importante ter acesso ao sistema como root, pois em alguns momentos será necessária sua utilização.
Host
A documentação da Oracle recomenda que o servidor tenha um nome de rede qualificado e endereço IP fixo, porém, nesta instalação utilizarei o localhost. O uso de um nome qualificado não interferirá nos procedimentos de instalação, basta seguir a mesma orientação.
Verifique que a primeira linha do arquivo /etc/hosts tenha o nome e endereço do servidor, trata-se de um requisito da instalação:
$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Tudo ok!
Contas e Grupos
Será necessário criar grupos para os usuários do sistema que utilizam ou inicializam o banco de dados. Inicialmente será criado o grupo Oracle Inventory:
$ /usr/sbin/groupadd oinstall
Também, criar o grupo de OSDBA:
$ /usr/sbin/groupadd dba
Apesar de opcional, criar o grupo de operadores OSOPER:
$ /usr/sbin/groupadd oper
Agora um ponto importante, a criação do usuário da aplicação deverá inseri-lo no grupo oinstall (primário), dba e oper:
$ /usr/sbin/useradd -g oinstall -G dba,oper oracle
Em seguida, atribuir uma senha:
$ /usr/bin/passwd oracle
Por último, avaliar se existe no sistema um usuário chamado nobody. Normalmente ele está presente nos sistemas operacionais baseados em Linux. Caso não existe será necessário criá-lo:
$ id nobody
uid=99(nobody) gid=99(nobody) grupos=99(nobody)
Finalizamos esta fase de configuração.
Parâmetros do Kernel
Há uma série de verificações que se deve realizar para enquadrarmos os requisitos de kernel da Oracle. Aqui não abordaremos a comparação necessária, que poderá ser obtida no guia de instalação da Oracle, no item Configuring Kernel Parameters, página 2-14. Em geral, as alterações serão aplicadas serão consideradas abaixo:
Adicionar no arquivo /etc/sysctl.conf as seguintes linhas:
kernel.sem = 250 32000 100 128
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
vm.hugetlb_shm_group = 502
Note que o valor de vm.hugetlb_shm_group corresponde ao id do grupo dba criado anteriormente e obtido do arquivo /etc/groups.
Para saber mais sobre o HUGETBL há um bom artigo que pode ser acessado em http://www.linuxinsight.com/oracle10g_on_debian.html
Executar o comando a seguir para que as alterações sejam disponibilizadas para o kernel em operação:
$ /sbin/sysctl -p
Atualizar o arquivo /etc/sysconfig/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
Verificar se o arquivo /etc/pam.d/login contém a linha abaixo. Em caso negativo inclua:
session required pam_limits.so
Oracle Base Directory
Neste servidor o diretório raiz para as aplicações oracle ficará na pasta /opt/oracle/app. Esse diretório é importante pois a partir dele se dará a instalação dos módulos do banco de dados. A criação do diretório será realizada pelos seguintes comando:
$ /bin/mkdir -p /opt/oracle/app
$ /bin/chown -R oracle:oinstall /opt/oracle/app
$ /bin/chmod -R 775 /opt/oracle/app
O comando mkdir criará o diretório, já o comando chown alterará o owner e grupo do diretório e chmod fornecerá as permissões de leitura, escrita e execução.
Configuração do Usuário
Visando facilitar o acesso aos recursos do sistema para o usuário oracle, vamos lterar o arquivo /home/oracle/.bash_profile incluindo o seguinte código:
ORACLE_BASE=/opt/oracle/app
ORACLE_SID=ORCL
export ORACLE_BASE
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
umask 022
Tudo pronto para iniciar o processo de instalação de bibliotecas.
Instalando Pré-Requisitos
Utilizando a ferramenta yum deve-se proceder a instalação de bibliotecas necessárias a execução da instalação. Cada biblioteca abaixo deverá ser instalada através do comando: yum install <library>
binutils
compat-db
control-center
gcc
gcc-c++
glibc
glibc-common
libstdc++
libstdc++-devel
make
sysstat
libXp
libXp.i686
libXt
libXt.i686
libXtst.i686
glibc.i686
compat-gcc
glic_devel.i686
glibc_static
glibc_static.i686
libgcc.i686
compat_libstdc++
Distribuição
O pacote de instalação será executado a partir de um diretório temporário:
$ /bin/mkdir /tmp/Oracle10gR2
$ /bin/chown -R oracle:oinstall /tmp/Oracle10gR2
$ /bin/chmod -R 775 /tmp/Oracle10gR2
Copiar o arquivo compactado da distribuição para o diretório temporário:
$ /bin/cp oracle_10201_database_linux_x86_64.cpio.gz /tmp/Oracle10gR2
Descompactar a distribuição Oracle:
$ cd /tmp/Oracle10gR2
$ /bin/gunzip oracle_10201_database_linux_x86_64.cpio.gz
Será criado um arquivo chamado oracle_10201_database_linux_x86_64.cpio. Caso o arquivo compactado ainda persista no diretório, pode removê-lo sem preocupação.
O arquivo cpio trata-se do arquivo de instalação. Deve-se descompactá-lo utilizando o comando cpio como segue:
$ /bin/cpio -idmv < oracle_10201_database_linux_x86_64.cpio
Neste ponto temos a instalação pronta para ser executada. Caso o arquivo de instalação persista no diretório, pode ser removido sem preocupação. Reinicie o sistema operacional e logue com o usuário oracle. Avalie os itens que foram configurados e parta para a instalação do Oracle:
$ cd /tmp/Oracle10gR2/database $ ./runInstaller
Pós Instalação
Após a instalação a documentação da Oracle recomenda realizar backup do arquivo root.sh porque quando houver execução de patchs ou produtos esse arquivo será sobreposto:
$ cd /opt/oracle/app/oracle/product/10.2.0/db_1
$ /bin/cp root.sh root.sh_oracle_10.2.0
É muito interessante adicionar alguns paths nas variáveis de ambiente do usuário oracle para facilitar a gestão do banco. Este procedimento deve ser realizado apenas para a primeira instalação, pois caso haja mais de uma instâncias de banco instalada, gerará conflito.
$ vim /home/oracle/.bash_profile
# adicionar
ORACLE_HOME=$ORACLE_BASE/oracle/product/10.2.0/db_1
export ORACLE_HOME
# alterar
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
# adicionar
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export LD_LIBRARY_PATH
Execute o comando a seguir para que seja realizada atualização das variáveis de ambiente:
$ . /home/oracle/.bash_profile
Finalmente inicie o banco de dados:
$ lsnrctl start $ dbstart
Neste ponto a execução do segundo comando, dbstart, pode lhe apresentar um erro: Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr. Isso significa que seu banco não pode ser inicialiado por esse comando. Altere o arquivo /etc/otatab trocando o último caracter da linha que identifica seu banco de N por Y, como segue:
$ vim /etc/oratb orcl:/opt/oracle/app/oracle/product/10.2.0/db_1:Y
Execute novamente o comando de inicialização do banco:
$ dbstart
A mensagem de erro decorre de um código hardcoded no script do comando dbstart. Pode ser resolvido alterando o script trocando o path /ade/vikrkuma_new/oracle/bin/tnslsnr por $ORACLE_HOME:
$ vim /opt/oracle/app/oracle/product/10.2.0/db_1/bin/dbstart
# alterar
ORACLE_HOME_LISTNER=$ORACLE_HOME
Teste SQLPlus
Neste ponto temos o banco de dados iniciado. Faça uma conexão com o aplicativo sqlplus para evidenciar a conexão:
$ sqlplus system@orcl
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Aug 20 14:19:06 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL>
Temos o pronto para execução de instruções SQL.
Shutdown
Para finalizar o Oracle manualmente segue-se o seguinte:
$ dbshut
$ lsnrctl stop