/home/ericogr/blog

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

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“.

4 Respostas to “Instalando o Oracle Database 11g 64bit no Ubuntu Server 9.04 64bit”

  1. Wagner Bianchi said

    Érico,

    O processo de instalação foi seguido à risca conforme você descreveu no tutorial acima.

    Mas, tenho uma particularidade que é; estou instalando em uma máquina que acessarei através dela mesma, ou seja, uma instalação que estou fazendo em meu próprio notebook. O problema que encontrei é que, eu gostaria de colocar os aplicativos do ORACLE como sqlplus, dbca, emctl, enfim, disponíveis para quando eu me conectar no terminal com o usuário oracle, somente digitar “sqlplus” e este aplicativo já ser chamado.

    Após a instalação, precisei acessar a pasta bin e executar com sqlplus dessa forma:

    oracle@ubuntu:~/product/11.1.0/db_1/bin$ ORACLE_SID=orasrv
    oracle@ubuntu:~/product/11.1.0/db_1/bin$ export ORACLE_SID
    oracle@ubuntu:~/product/11.1.0/db_1/bin$ ./sqlplus

    SQL*Plus: Release 11.1.0.6.0 – Production on Sat Jul 18 17:06:22 2009

    Copyright (c) 1982, 2007, Oracle. All rights reserved.

    Enter user-name: system
    Enter password:

    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 – 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options

    SQL> startup
    ORA-01031: insufficient privileges
    SQL> select count(*) from dba_objects;

    COUNT(*)
    ———-
    68862

    SQL> exit
    Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 – 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options

    Um outra coisa que percebi é que, se tivéssemos a possibilidade de termos um arquivo para automatizar as exportações de determinadas variáveis de ambiente do usuário oracle, seria bastante interessante. Mas, as questões que deixo são:

    => Como colocar os aplicativos do ORACLE (software) no PATH do usuário “oracle”?
    => Como criar o tal arquivo para chamar automaticamente as variáveis de ambiente já com os valores setados? Isso seria acertado através do oraenv?

    Agradeço a você pela ajuda e confesso ter gostado muito do seu tutorial sobre a instalação do ORACLE em ambiente x86_64.

    Um grande abraço e aguardo ansioso pelo seu contato.

  2. ericogr said

    Olá Wagner,

    O passo 27 sugere a edição do arquivo /etc/environment que armazena as configurações das variáveis de ambiente de uma forma geral.

    Você também pode editar o arquivo /home/oracle/.profile e colocar lá todas as configurações referentes ao usuário oracle

    Mais detalhes sobre como tudo isso funciona podem ser vistos em https://help.ubuntu.com/community/EnvironmentVariables

    Abs

  3. Marcelo Pontes said

    Boa tarde,

    fiz os passos da instalação, mas agora e cheguei até a criar o banco, mas agora digito dbca e aparece a mensagem:
    Não é possível criar o diretório “/u01/app/oracle/product/11.1.0/db_1/cfgtoollogs/dbca”.

    Estou logado com o meu usuário que coloquei também no grupo dba

    Tentei também com os outros usuários oracle e como root

    infopontes@infopontes-desktop:~$ sudo su
    [sudo] password for infopontes:
    root@infopontes-desktop:/home/infopontes# dbca
    Comando ‘dbca’ não encontrado, você quis dizer:
    Comando ‘dbck’ do pacote ‘lyskom-server’ (universe)
    Comando ‘dba’ do pacote ‘wise’ (universe)
    dbca: comando não encontrado
    root@infopontes-desktop:/home/infopontes# su oracle
    oracle@infopontes-desktop:/home/infopontes$ dbca
    Comando ‘dbca’ não encontrado, você quis dizer:
    Comando ‘dbck’ do pacote ‘lyskom-server’ (universe)
    Comando ‘dba’ do pacote ‘wise’ (universe)
    dbca: comando não encontrado
    oracle@infopontes-desktop:/home/infopontes$

    SQLPLUS

    fiz os passos do Wagner Bianchi e deu o seguinte erro:

    Enter user-name: system
    Enter password:
    ERROR:
    ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist
    Linux-x86_64 Error: 2: No such file or directory
    Process ID: 0
    Session ID: 0 Serial number: 0

    Vcs podem me ajudar estou tentando conectar com o sqlplus e não consegui, preciso conectar o banco para eu fazer uns teste de replicação assincrona do oracle com o postgres, caso tenham alguma sugestão …

    Agradeço a atenção.

  4. Johnd985 said

    Really great info can be found on site. aeefckdfdbbc

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: