Instalando o Oracle Database 11g 64bit no Ubuntu Server 9.04 64bit
Publicado por 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.

Tela inicial do instalador

Usar o grupo dba

Marcar a versão Enterprise Edition

Mudar o ORACLE_HOME

Clique nas caixas de seleção de requisitos que estão em branco para que sejam marcadas como “verificadas pelo usuário”

Optar por instalar somente o software. O banco de dados poderá ser configurado depois

Mudei os privilégios dos grupos do sistema operacional para dba

Finalmente o sumário
A instalação deve demorar alguns minutos…
Devem ocorrer dois erros como este durante a instalação. Estes erros não impedem a utilização do banco de dados

Nesta tela são exibidos os scripts que devem ser executados como root

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“.
Wagner Bianchi disse
É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.
ericogr disse
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