/home/ericogr/blog

Experiências no desenvolvimento de aplicações e afins

Posts Tagged ‘server’

Instalando o Oracle Database 11g 64bit no Ubuntu Server 9.04 64bit

Posted by ericogr em 17 maio 2009

Introdução

Neste post vou tentar ajudar os iniciantes, com um pouco de conhecimento em linux, na instalação do Oracle 11g Database Server 64bit no Ubuntu Server 9.04 64bit. Provavelmente os passos descritos aqui poderão ser utilizado com futuras versões do Ubuntu/Oracle.

Hardware: A máquina servidor utilizada na instalação foi um AMD64 3200 com 1 Gb de memória RAM, HD de 80Gb, placa de rede Wireless 802.11 g, Ubuntu Server 9.04 64bit usando o novo sistema de arquivos EXT4. A máquina cliente é um notebook HP básico com Ubuntu 9.04 Desktop 32bit.

Os procedimentos a seguir foram executados por mim e não necessariamente representam a melhor forma de se fazer a instalação.

Resumo: para instalar o Oracle Database Server na máquina servidor, que NÃO vem com suporte para aplicações gráficas (por padrão), você precisará de uma máquina cliente, que TEM esse suporte. Presumindo que não temos acesso fácil ao servidor, poderemos usar o aplicativo ssh para conectar, executar as configurações necessárias e no final, enviar as telas que o instalador mostraria no servidor para a máquina cliente. Não vou entrar nos detalhes técnicos de como isso funciona, um outro post seria necessário só para este assunto. É importante lembrar que durante a instalação do Ubuntu Server, você instale também o OpenSSH para executar os passos aqui descritos remotamente. Não é recomendado instalar o servidor gráfico na máquina servidor.

O que motivou a criação deste post foi a falta de informações disponíveis em português para alguns problemas encontrados na instalação da versão 64bit, problemas que não ocorrem na versão 32bit do Ubuntu.

Não fornecerei detalhes sobre a instalação do Ubuntu (Server/Desktop), você poderá procurar algum tutorial para isso na internet, mas acredito ser bastante simples.

Instalação do Banco de Dados

Depois de instalado o sistema operacional e da rede entre a máquina servidor e a cliente estar configurada, precisamos efetuar algumas alterações recomendadas pela Oracle para que o banco de dados funcione adequadamente. É importante lembrar que o Ubuntu não é homologado para a instalação do Oracle Database Server.

Abaixo, colocarei uma longa “receita de bolo” que vai facilitar a configuração.

Observações:
1. O símbolo $ indica que os comandos devem ser executados com o usuário normal
2. O símbolo # indica que os comandos devem ser executados como root ($ sudo su)
3. Onde houver o símbolo S, os comandos devem ser executados no servidor e onde tiver o C, no cliente. Ex 01S indica que os comandos serão executados no servidor (usando o ssh).
4. Para conectar no servidor remoto, utilize o ssh <máquina>. Ex: ssh 192.168.0.100
5. A versão servidor do Ubuntu não vem com o X, portanto a instalação será feita a partir de outra máquina com um servidor X instalado (Ubuntu Desktop por exemplo).

Vamos lá…

01S. Atualize o sistema
# apt-get update
# apt-get dist-upgrade

02S. Baixar pacotes requeridos
# apt-get install gcc make binutils gawk x11-utils rpm alien ksh lsb-rpm libaio1 lesstif2 libmotif3 unzip

03S. Alterar link simbólico
# ln -sf /bin/bash /bin/sh

04S. Criar links simbólicos para alguns programas
# ln -s /usr/bin/awk /bin/awk
# ln -s /usr/bin/rpm /bin/rpm
# ln -s /usr/bin/basename /bin/basename
# ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so

05S. Adicionar o grupo oinstall, dba e nobody
# addgroup oinstall
# addgroup dba
# addgroup nobody

06S. Alterar o GID do grupo padrão do usuário para o valor especificado
# usermod -g nobody nobody

07S. Criar diretório de usuário Oracle
# mkdir /home/oracle

08S. Alterar os donos do diretório de usuário Oracle
# chown -R oracle:dba /home/oracle

09S. Adicionar usuário oinstall com senha password
# useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle

10S. Adicionar comando “su oracle” ao visudo para que todos os usuários do grupo admin possam entrar com usuário oracle sem senha (passo opcional)
# visudo

Na última linha do arquivo adicionar:
%admin ALL=NOPASSWD:/bin/su oracle

Para testar digite no prompt
$ sudo su oracle

11S. Criar /etc/rc.d e seus links
# mkdir /etc/rc.d
# for i in 0 1 2 3 4 5 6 S ; do ln -s /etc/rc$i.d /etc/rc.d/rc$i.d ; done

12S. Criar diretório para a instalação e alterar as permissões
# mkdir -p /u01/app/oracle
# chown -R oracle:dba /u01

13S. Criar e alterar o dono da pasta onde estará o instalador
# mkdir /home/oracle/inst
# chown -R oracle:oinstall /home/oracle/inst

14S. Alterar os parâmetros de configuração do kernel
# cd /etc
# cp sysctl.conf sysctl.conf.original
# pico sysctl.conf

#Linhas para serem adicionadas no final do arquivo
fs.file-max = 65535
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144

15S. Modificar o arquivo /etc/security/limits.conf que impõe limites para usuários
# cd /etc/security/
# cp limits.conf limits.conf.original
# pico /etc/security/limits.conf

#estas configurações devem ser adicionadas no final do arquivo
oracle soft nproc 2047
oracle hard nproc 16383
oracle soft nofile 1023
oracle hard nofile 65535

16S. Modificar configurações de segurança
# cd /etc/pam.d
# cp login login.original
# pico login

#adicionar as linhas no final do arquivo
session required /lib/security/pam_limits.so
session required pam_limits.so

17S. Reinicie o sistema
# reboot

18S. Entre com o usuário Oracle
$ sudo su oracle

19C. Desative os efeitos visuais (caso estejam ativados)

Na máquina onde serão exibidas as telas do instalador as telas podem não ser exibidas corretamente se os efeitos visuais estiverem habilitados.

– Clique em Sistema>Preferências>Aparência e clique na guia Efeitos Visuais
– Clique em Nenhum e depois em Fechar

20C. Verifique se a máquina está com as conexões TCP para o servidor X habilitadas
– Clique no menu Sistema>Administração>Janela de inicio de sessão
– Clique na aba Segurança
Desabilite a opção “Negar conexões TCP para o servidor X” (caso esteja marcado)

21C. Habilite a conexão TCP do servidor para a máquina cliente indicando o IP do servidor
# xhost +192.168.0.100

22S. Montar o dispositivo com os arquivos da instalação do oracle.
No meu caso é um drive de dvd que está em /dev/scd0. Substitua o /dev/scd0 de acordo com as configurações do seu sistema.
# if [ ! -e /media/cdrom ]; then mkdir -p /media/cdrom; fi
# mount /dev/scd0 /media/cdrom

23S. Copiar o arquivo de instalação do dispositivo
Copiar os arquivos do dvd/pendrive para a pasta /home/oracle/database. No meu caso, os arquivos estão na pasta linux do dvd.
# cp /media/cdrom/linux/linux.x64_11gR1_database_*.zip /home/oracle/inst

24S. Descompactado o arquivo de instalação do oracle.
# cd /home/oracle/inst
# unzip *.zip
# chown -R oracle.oinstall /home/oracle/inst

25S. Algum bug ao descompactar alguns arquivos me obrigaram a criar esta gambiarra (isso ocorreu na versão 64bit)

#sudo su oracle
$ mv /home/oracle/inst/database/install/unzip /home/oracle/inst/database/install/unzip.bak
$ ln -s $(which unzip) /home/oracle/inst/database/install/unzip

26S. Executar a instalação exportando o display para a máquina cliente
* Lembre-se que 192.168.0.105 é a máquina que tem o servidor X instalado (onde as imagens do instalador devem aparecer)
# export DISPLAY=192.168.0.105:0.0
# /home/oracle/inst/database/runInstaller -ignoreSysPrereqs

* Durante a instalação, pode ocorrer um erro ao executar um determinado processo. Ignore e prossiga com o procedimento.

Abaixo coloquei algumas telas do instalador. Você pode observar as opções que eu usei para configurar a sua instalação.

Instalação do Oracle 11g 64bit - Tela 1
Tela inicial do instalador

Instalação do Oracle 11g 64bit - Tela 2
Usar o grupo dba

Instalação do Oracle 11g 64bit - Tela 3
Marcar a versão Enterprise Edition

Instalação do Oracle 11g 64bit - Tela 4
Mudar o ORACLE_HOME

Instalação do Oracle 11g 64bit - Tela 5
Clique nas caixas de seleção de requisitos que estão em branco para que sejam marcadas como “verificadas pelo usuário”

Instalação do Oracle 11g 64bit - Tela 7
Optar por instalar somente o software. O banco de dados poderá ser configurado depois

Instalação do Oracle 11g 64bit - Tela 8
Mudei os privilégios dos grupos do sistema operacional para dba

Instalação do Oracle 11g 64bit - Tela 9
Finalmente o sumário

A instalação deve demorar alguns minutos…

Instalação do Oracle 11g 64bit - Erro 1Devem ocorrer dois erros como este durante a instalação. Estes erros não impedem a utilização do banco de dados

Instalação do Oracle 11g 64bit - Lista De Scripts
Nesta tela são exibidos os scripts que devem ser executados como root

Instalação do Oracle 11g 64bit - Tela 10
Finalizamos a instalação

27S. Editar o arquivo /etc/environment
# pico /etc/environment

Coloque o seguinte conteúdo:

ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/u01/app/oracle/product/11.1.0/db_1/bin”

28S. Criar o arquivo oracledb
Depois de ter instalado o banco de dados, vamos criar o arquivo /etc/init.d/oracledb:

# pico /etc/init.d/oracledb

Conteúdo do arquivo:

#!/bin/bash
#
# /etc/init.d/oracledb
#
# Run-level Startup script for the Oracle Listener and Instances
# It relies on the information on /etc/oratab
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
export ORACLE_OWNR=oracle
export PATH=$PATH:$ORACLE_HOME/bin
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo “Oracle startup: cannot start”
exit 1
fi
case “$1” in
start)
# Oracle listener and instance startup
echo -n “Starting Oracle: ”
su $ORACLE_OWNR -c “$ORACLE_HOME/bin/lsnrctl start”
su $ORACLE_OWNR -c “$ORACLE_HOME/bin/dbstart $ORACLE_HOME”
touch /var/lock/oracle
echo “OK”
;;
stop)
# Oracle listener and instance shutdown
echo -n “Shutdown Oracle: ”
su $ORACLE_OWNR -c “$ORACLE_HOME/bin/lsnrctl stop”
su $ORACLE_OWNR -c “$ORACLE_HOME/bin/dbshut $ORACLE_HOME”
rm -f /var/lock/oracle
echo “OK”
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo “Usage: `basename $0` start|stop|restart|reload”
exit 1
esac
exit 0

29S. Configurar a execução automática
# chmod a+x /etc/init.d/oracledb
# update-rc.d oracledb defaults 99

30S. Crie o banco de dados usando o SID orasrv

Observe que você deve alterar o endereço IP 192.168.0.105 para o da sua máquina cliente!

$ sudo su oracle
$ export DISPLAY=192.168.0.105:0.0
$ export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
$ export PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/u01/app/oracle/product/11.1.0/db_1/bin”
$ dbca

31. Automatizar a execução do Oracle no boot:
# pico /etc/oratab

Altere o último caractere de N para Y assim (exemplo):

[original] orasrv:/u01/app/oracle/product/11.1.0/db_1:N
[alterado] orasrv:/u01/app/oracle/product/11.1.0/db_1:Y

* A última linha só existirá depois que o banco de dados for criado.

“E chegamos ao fim, espero que você tenha conseguido seguir os passos descritos aqui. Se tiver alguma sugestão, por favor, deixe seu comentário“.

Posted in banco de dados, oracle | Etiquetado: , , , , , , , , , | 4 Comments »