Recentemente, eu decidi estudar administração de banco de dados Oracle. Como primeiro passo, resolvi instalar o Oracle 11g em minha máquina que roda a versão do Ubuntu 11.10 Oneiric 32bits. Não foi uma tarefa simples, e exigiu muitas buscas por blogs e fóruns. Neste post irei descrever os passos que segui para instalar o software do banco com sucesso em minha máquina.
Inicialmente, já vale lembrar que o Ubuntu não é suportado pela Oracle. Portanto, não é recomendável usá-lo em sistemas reais, em produção, etc., já que a Oracle não irá oferecer suporte se o banco estiver instalado sobre o Ubuntu. Esta informação é encontrada no Installation Guide do link http://docs.oracle.com/cd/E11882_01/install.112/e24322/toc.htm. Que aliás, utilizei para obter mais informações da instalação. Mas no meu caso, só resolvi instalar o banco para fins de estudo mesmo.
É bom verificar os requisitos de hardware. A saber, a configuração mínima recomendada é:
■ 1 GB RAM
■ 1.5 GB swap space
■ 400 MB no TEMP (se houver uma partição TEMP, senão, considere o sistema de arquivo do root)
■ 1.5 GB–3.5 GB para a partição onde ficará o Oracle Home
■ 2.4 GB para o flash recovery area
■ 1 GHz CPU
Lógico que não é necessário levar isso à risca. Você pode usar o comando free para ver quanto de espaço possui no sistema de arquivo e na partição de swap e também o df -h para ver o espaço em cada partição. Eu mesmo possuo um swap de 1GB somente.
Dado que haja espaço suficiente, pode-se seguir com os passos da instalação.
1- Fazer o download do banco no site da oracle (será necessário se cadastrar).
Baixei a versão Enterprise para Linux x86.
2- Atualize sua lista de pacotes e faça um upgrade para atualizar seus pacotes já instalados (esteja logado como root).
apt-get update
apt-get upgrade
3- Em seguida, alguns pacotes deverão ser instalados. Use o comando apt-get install <nome_do_pacote>.
- alien
- binutils
- build-essential
- gawk
- gcc-multilib
- ksh
- libaio1
- libc6
- libc6-dev
- libmotif4
- libstdc++5
- libtool
- make
- rpm
- sysstat
- unixodbc
- unzip
O comando abaixo pode ser executado para que se obtenha uma lista de todos os pacotes instalados em seu sistema em um arquivo nomeado pacotes.txt.
dpkg –get-selections >> pacotes.txt
Também é necessário ter pelo menos o java run-time instalado. Você pode obter o java run-time neste link ou mesmo instalar o pacote openjdk executando apt-get install openjdk-7-jre.
4- É comum a prática de criar um usuário com o qual é instalado o banco de dados. Também é criado o grupo dba, que consiste nos usuários que serão administradores do banco, e o grupo oinstall, que são os usuários que fazem parte da instalação. Abaixo foram criados os grupos e o usuário oracle, que terá como grupo primário o oinstall. Ao final, é criada a senha do usuário oracle.
sudo groupadd oinstall
sudo groupadd dba
sudo groupadd nobody
sudo useradd -m oracle -g oinstall -G dba
sudo passwd oracle
5- Alguns parâmetros do Kernel devem ser atualizados. Eu mesmo só tive problemas com 1 deles, que é o net.ipv4.ip_local_port_range que tive que alterar para 65500. No entanto, coloquei aqui uma lista que obtive de fóruns e outros blogs.
Para tal execute o comando como root:
sudo vi /etc/sysctl.conf
Altere os seguintes parâmetros no arquivo
kernel.shmall=2097152
kernel.shmmax=2147483648
kernel.shmmni=4096
kernel.sem=250 32000 100 128
fs.file-max=65536
net.ipv4.ip_local_port_range=65500
fs.aio-max-nr=1048576
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586
Recarregue:
sudo sysctl -p
6- Deverá ser criado o diretório onde o banco será instalado. Esse consistirá nas variáveis de ambiente ORACLE_HOME e ORACLE_BASE definidas posteriormente. O ORACLE_BASE é o diretório onde ficam todos os produtos instalados pertencentes à Oracle. Cada produto instalado terá sua própria ORACLE_HOME, abaixo do ORACLE_BASE. Aqui utilizei os seguintes diretórios
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
Portanto, rodei o seguinte comando:
sudo mkdir -p /u01/app/oracle
Enfim, define-se as permissões para o diretório criado.
sudo chown -R oracle:oinstall /u01
sudo chmod -R 775 /u01
7- Agora será descompactado os arquivos de instalação.
sudo mkdir /ora_install
sudo mv linux_11gR2_database_* /ora_install
cd /ora_install
sudo unzip linux_11gR2_database_1of2.zip
sudo unzip linux_11gR2_database_2of2.zip
sudo chown -R oracle:oinstall /ora_install
8- Antes de iniciar a instalação, os seguintes comandos tiveram que ser executados para corrigir links de arquivos em pastas diferentes.
ln -s /usr/lib/i386-linux-gnu/libpthread_nonshared.a /usr/lib/libpthread_nonshared.a
ln -s /usr/lib/i386-linux-gnu/libc_nonshared.a /usr/lib/libc_nonshared.a
ln -s /usr/bin/basename /bin/basename
ln -s /usr/bin/awk /bin/awk
ln -s /bin/lib/libgcc_s.so.1 /lib/libgcc_s.so
ln -s /lib/i386-linux-gnu/libgcc_s.so.1 /lib/libgcc_s.so.1
ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /usr/lib/libstdc++.so.6
Atenção: para ubuntu 64bit, execute abaixo.
ln -s /usr/lib /usr/lib64
ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib/
ln -s /usr/bin/basename /bin/basename
ln -s /usr/bin/awk /bin/awk
ln -s /bin/lib/libgcc_s.so.1 /lib/libgcc_s.so
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib
Reinicie sua máquina antes de iniciar o próximo passo.
9- Execute o comando xhost + para dar acesso a saída de aplicações gráficas à todos os usuários. Então, altere o RunLevel para 3. Em seguida, logar como usuário oracle e executar o installer. A variável DISPLAY deve ser iniciada antes para o instalador saber o terminal que o usuário deseja que a janela de instalação seja exibida.
sudo xhost +
sudo init 3
su oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export DISPLAY=:0.0
cd /ora_install/database
./runInstaller
10- A janela do instalador deverá ser aberta. Irei exibir aqui somente algumas opções que escolhi na instalação.
Note que ainda tive reclamações do instalador de que o tamanho do swap era pequeno. Também dizia que alguns pacotes não estavam instalados. Simplesmente ignorei esses e segui em frente.
11- Correção dos erros.
Essa parte que foi complicada. Esses errors ocorrem por causa de uma mudança na shared library links do gcc que foi introduzida no Ubuntu 11.
Eu fui corrigindo os erros conforme ocorriam. Sempre que surgia um erro, eu checava o log da instalação acusado na mensagem de erro e também o log do make em /u01/app/oracle/product/11.2.0/dbhome_1/install/make.log.
O primeiro erro foi o abaixo.
Para corrigir, eu abri outra janela do terminal e executei:.
sudo vi /u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk
substitui a linha:
$(SYSMANBIN)emdctl: $(MK_EMAGENT_NMECTL)
por:
$(SYSMANBIN)emdctl: $(MK_EMAGENT_NMECTL) -lnnz11
Feito e salvo, voltei na tela de erro e cliquei em Repetir.
Em seguida, outra mensagem de erro apresentada na figura abaixo.
Para este, consultei o $ORACLE_HOME/install/make.log várias vezes até corrigir o erro por completo e passar deste ponto. A mensagem de erro do instalador era sempre a mesma, mas conforme eu ia corrigindo, o log do make apresentava onde estava o novo erro.
Os passos seguidos foram:
sudo vi $ORACLE_HOME/rdbms/lib/env_rdbms.mk
substituir
KFED_LINKLINE=$(LINK) $(S0MAIN) $(SSKFEDED) $(SKFEDPT) \
por
KFED_LINKLINE=$(LINK) $(S0MAIN) -Wl,--no-as-needed $(SSKFEDED) $(SKFEDPT) \
–
substituir
KFOD_LINKLINE=$(LINK) $(S0MAIN) $(SSKFODED) $(SKFODPT) $(KFODOBJ) \
por
KFOD_LINKLINE=$(LINK) $(S0MAIN) -Wl,--no-as-needed $(SSKFODED) $(SKFODPT) $(KFODOBJ) \
–
substituir
KFNDG_LINKLINE=$(LINK) $(S0MAIN) $(SSKFNDGED) $(SKFNDGPT) $(KFNDGOBJ) \
por
KFNDG_LINKLINE=$(LINK) $(S0MAIN) -Wl,--no-as-needed $(SSKFNDGED) $(SKFNDGPT) $(KFNDGOBJ) \
–
substituir
AMDU_LINKLINE=$(LINK) $(S0MAIN) $(SSKFMUED) $(SKFMUPT) \
por
AMDU_LINKLINE=$(LINK) $(S0MAIN) -Wl,--no-as-needed $(SSKFMUED) $(SKFMUPT) \
–
substituir
ORACLE_KERNEL_LIBS=$(LLIBSKGTR) $(LLIBPERFSRV) $(NAETTOBJS) $(CONFIG) \ $(SPOBJS) $(LLIBSERVER) $(LLIBODM) $(LLIBSAGE) \
por
ORACLE_KERNEL_LIBS=$(LLIBSKGTR) $(LLIBPERFSRV) $(NAETTOBJS) $(CONFIG) \ $(SPOBJS) -Wl,--no-as-needed $(LLIBSERVER) $(LLIBODM) $(LLIBSAGE) \
–
no arquivo /bin/genorasdksh
sudo vi $ORACLE_HOME/bin/genorasdksh
substituir
$LD $LD_RUNTIME $LD_OPT $LD_OUT $LD_SELF_CONTAINED $BASE_LIB \
por
$LD $LD_RUNTIME -Wl,--no-as-needed $LD_OPT $LD_OUT $LD_SELF_CONTAINED $BASE_LIB \
–
no arquivo /srvm/lib/ins_srvm.mk
sudo vi $ORACLE_HOME/srvm/lib/ins_srvm.mk
substituir
GETCRSHOME_LINKLINE=$(LINK) $(LDPATHFLAG)$(RDBMSLIB) $(CDEBUG) $(OPT) $(GETCRSHOME_OBJ1) \ $(OCRLIBS_DEFAULT) $(LLIBCLNTSH) $(LINKLDLIBS)
por
GETCRSHOME_LINKLINE=$(LINK) $(LDPATHFLAG)$(RDBMSLIB) $(CDEBUG) $(OPT) $(GETCRSHOME_OBJ1) -Wl,--no-as-needed \ $(OCRLIBS_DEFAULT) $(LLIBCLNTSH) $(LINKLDLIBS)
–
Por último, tive o erro abaixo.
Este no arquivo /network/lib/env_network.mk.
sudo vi $ORACLE_HOME/network/lib/env_network.mk
substituir
TNSLSNR_LINKLINE=$(LINK) $(TNSLSNR_OFILES) $(LINKTTLIBS) $(LLIBONS) \
por
TNSLSNR_LINKLINE=$(LINK) $(TNSLSNR_OFILES) -Wl,--no-as-needed $(LINKTTLIBS) $(LLIBONS) \
Feito isso a instalação terminou como bem-sucedida.
Até o momento já criei banco, subi o listener, fiz o startup do banco, iniciei o Enterprise Manager, conectei por sqlplus e sqldeveloper e nenhum problema!
Fontes: http://mikesmithers.wordpress.com/2010/03/14/installing-oracle-11gr2-on-ubuntu-9-10/ http://barrasbin.wordpress.com/2011/05/09/ubuntu-10-10-64-bits-oracle-11g-r2-64-bits/ https://forums.oracle.com/forums/thread.jspa?threadID=1091616 https://forums.oracle.com/forums/thread.jspa?threadID=2301639 http://blog.arkzoyd.com/2011/11/oracle-database-11g-and-ubuntu-1110.html http://www.pythian.com/news/13291/installing-oracle-11gr2-enterprise-edition-on-ubuntu-10-04-lucid-lynx/
Sou iniciante em linux (no geral), mas eu caso só conheço o windows mesmo. Bom no meu caso o oracle gerou o seguinte erro:
Causa – O Oracle home selecionado estava fora do Oracle base.
Ação – A Oracle recomenda a instalação do software da Oracle no diretório do Oracle base. Ajuste o Oracle home ou Oracle base de acordo.
Como posso corrigir isso já que alguns passos descrito não funcionaram como o passo 8, a linha de comando do xhost.
possuo o Ubuntu 11.10.
Desde já agradeço a ajuda.
Oi Emerson.
Esse erro foi gerado durante a executação do installer?
Pelo que entendi, sua variável ORACLE_HOME não foi definida como um subdiretório da variável ORACLE_BASE.
No passo 10, tem uma parte do wizard que ele pede pra definir sua ORACLE_BASE e ORACLE_HOME (nessa figura https://whoisroot.files.wordpress.com/2012/02/ora05.jpg). Certifique-se que o campo Localização do Software (que seria seu ORACLE_HOME), seja definido como um subdiretório de ORACLE_BASE.
O xhost + não funcionou? Mas você conseguiu executar o installer mesmo assim? Porque se o xhost + falha, geralmente nem se consegue executar o installer. Qualquer coisa posta a mensagem de erro que você recebeu.
Qualquer dúvida entre em contato de novo!
Valeu pela visita e comentário!
Olá, venho agradecer a ajuda, pois conssegui passar daquela fase, pois o Oracle coocou no lugar de oracle (nome da pasta) colocou o nome do meu usuário Oracle. Eu alterei e conssegui prossegui de tela. Bom agora o problema é outro, pois ao verificar no inicio do tutorial, observei que você utilizou o comando FREE e DF -H. Ou observei e nada entendi. vou disponibilizar o resultado, você poderia dizer-me o problema, pois o Oracle gerou outro erro.
total used free shared buffers cached
Mem: 1931160 1715320 215840 0 103984 1011572
-/+ buffers/cache: 599764 1331396
Swap: 5292028 0 5292028
root@eikos…a:/tmp/CVU_11.2.0.1.0_emerson# df -h
Sist. Arq. Tam Usad Dispon. Uso% Montado em
/dev/sda5 461G 34G 404G 8% /
udev 936M 4,0K 936M 1% /dev
tmpfs 378M 924K 377M 1% /run
none 5,0M 0 5,0M 0% /run/lock
none 943M 360K 943M 1% /run/shm
/dev/sdb1 466G 191G 275G 41% /media/Emerson
Erro gerado:
Limite Rígido: número máximo de descritores de arquivo abertos – Esta condição é pré-requisito para testar se o limite rígido para “número máximo de descritores de arquivo abertos” foi definido para pelo menos 65536.
Valor Esperado
: 65536
Valor Real
: 4096
Lista de erros:
–
PRVF-4354 : Limite rígido adequado para o recurso “número máximo de descritores de arquivo abertos” não encontrado no nó “eiko…a-GA-MA69VM-S2” [Esperado = “65536” ; Encontrado = “4096”] – Cause: O limite rígido do recurso não atende às exigências no nó especificado. – Action: Modifique o limite de recursos para atender às exigências.
Bom desde já agradeço a ajuda.
Cara…
Isso parece ser alguma configuração no arquivo /etc/sysctl.conf.
No passo 5, tenta fazer o seguinte. Edita o arquivo sysctl.conf
sudo vi /etc/sysctl.conf
E altera esse parâmetro conforme abaixo.
fs.file-max=65536
Daí você salva e fecha. Então recarrega com o comando.
sudo sysctl -p
Uma alternativa é simplesmente executar o comando abaixo… Acredito que deva funcionar.
sysclt -w file-max=65536
Desculpa a demora na resposta. Muita coisa na cabeça ultimamente…
olá amigão, estou instalando o oracle no ubuntu 11.10 e estou com problemas na etapa 11 – correção de erros, na parte para substituir as linhas, vc poderia informar detalhadamente como vc fez a substituição das linhas, pois quando eu tento substituir pelo comado que vc mostrou no tutorial aparece a tela do terminal sem nenhuma informação, ou quando eu tento utilizar o GEDIT no segundo erro ele diz que env_rdbms.mk esta em uso pelo “application/octet-stream”. grato.
Eu percebi uns erros de formatação no post. Não estava dando pra ver a linha completa a ser substituida. Já corrigi isso.
Bom, pra substituir eu fui fazendo exatamente como no post. Quando surgiu a primeira mensagem de erro, eu abri outra janela de terminal, abri o arquivo com sudo gedit mesmo e fiz a substituição. Daí eu salvei e fechei o arquivo, para então voltar na tela de erro da instalação e clicar em Repetir.
Esse erro do GEDIT, você tentou abrir o arquivo como root usando o comando sudo gedit?
Essa parte do tutorial eu usei a fonte desse blog (em inglês)
http://blog.arkzoyd.com/2011/11/oracle-database-11g-and-ubuntu-1110.html
Estou seguindo o tutorial para instalar o BD no Linux Mint 12 (derivado do ubuntu) e estou com problemas na etapa 11.
Aparece a msg de erro:
“Erro ao chamar o destino ‘install’ do make file
‘/u01/app/oracle/product/11.2.0/dbhome_1/sqlplus/lib/ins_sqlplus.mk'”
Vc sabe o que pode ser ?
Obrigado!
Hum,,, pode ser mais problemas dos links das bibliotecas do gcc…
Tenta dar uma olhada no log do make pra ter uma idéia mais clara do que está acontecendo. Deve ter msgs de erro lá q vao dar alguma pista.
Esse log deve estar na pasta $ORACLE_HOME/install/make.log
Olá, tudo bem?
Depois de executar o passo 9
$sudo xhost +
$sudo init 3
$su oracle
$export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
$export DISPLAY=:0.0
$cd /ora_install/database
$./runInstaller
apareceu a seguinte mensagem de erro:
mensagem de erro: /ora_install/database/install/.oui: 2: /ora_install/database/install/.oui: Syntax error: “)” unexpected
você têm ideia do que posso fazer para resolver?
informo abaixo alguns dados do sistema?
Memória 5,8 GiB
Processador Intel® Core™2 Quad CPU Q6600 @ 2.40GHz × 4
Sistema 64-bit
esqueci de citar a versão do meu ubuntu é a 12.10
Oi Herbert.
Humm… será que isso poderia ser por causa do shell em uso? Korn, Bash, c-shell… No script do runInstaller, ele usa o .#!/bin/sh.
Quando vc fizer o su oracle, digita
echo $SHELL
e veja se ele retorna /bin/sh
Aí dependendo do que retornar, talvez vc tenha que mudar o shell. Aí vc digita
sh
E depois vc roda o installer do diretorio /ora_install/database
./runInstaller
Eu instalei o meu rodando o bash. Tenta mudar pro interpretador do bash também.
Eu já segui esse tutorial pra instalar no Ubuntu 12.10 e funcionou normalmente. Então não é problema de ser o 12.10.
Falou!!
Muito obrigado pelo retorno.
fiquei ontem o dia inteiro em cima desta instalação… fiz tantas coisas e segui tantos “tutos” que você nem imagina… agora a msg de erro é essa?
./runInstaller: linha 254: /home/oracle/database/install/.oui: impossível executar o arquivo binário
Estou usando o sh e não funcionou… eu instalei a versão 12.10 Desktop… isso pode ter influenciado em algo? de qualquer forma, por desencargo de consciência, vou baixar e instalar a versão server do Ubuntu 12.10 e continuar tentando…
muito obrigado pela ajuda.
abç
Herbert
Cara… eu instalei no ubuntu 12.10 Desktop mesmo. Funcionou normal.
Vc tá tentando executar o runInstaller como usuário oracle mesmo, certo?
O oracle é owner dos arquivos de instalação? Se não for, entao tenta rodar abaixo…
sudo chown -R oracle:oinstall /home/oracle/database
Talvez vc possa tentar também dar permissão em todo o diretório
sudo chmod -R 775 /home/oracle/database
Talvez vc tenha desempacotando o zip como usuário root… ai as permissões pro usuario oracle não estão setadas.
Sim estou usando o usuário oracle… o diretório database tem todas as permissões… vou remover e fazer a instalação novamente do principio…
Bom dia, no passo de correção de erros, quando eu executo o comando sudo vi $ORACLE_HOME/rdbms/lib/env_rdbms.mk abre um arquivo em branco, o que está errrado?
Obrigado.
Olá.
Então… sua variável $ORACLE_HOME está definida? Tenta fazer um echo $ORACLE_HOME
Deveria retornar o diretório da instalação. Se você escolheu o mesmo diretório do tutorial aqui deveria ser /u01/app/oracle/product/11.2.0/dbhome_1.
Abcs
Aew cara, esse tutorial funcionou direitinho comigo e já uso o Ubuntu 13.04. Valeu mesmo!
Só não consigo acessar o APEX. Retorna que não consegue conectar! Alguma dica?
Rolou tudo jeito que está aqui no tutorial. Instalou tranquilo, mas na hora de acessar pelo browser não consigo!
cara… Você tem alguma mensagem de erro que aparece?
Porque no tutorial eu só mostrei como instalar o Oracle 11g. Depois você ainda teria que configurar listeners (pelo netca ou manual), criar um banco (manual ou pelo dbca) e configurar o Enterprise Manager.
É mais fácil se voce executar o netca e o dbca em seguida (ambos em $ORACLE_HOME/bin). O dbca já configura o Enterprise Manager, daí vc já consegue acessar pelo browser
O APEX tambẽm precisara ser instalado/configurado.
Consegui configurar o netca e dbca. Mas o que queria mesmo era o APEX. Só quero para manipular alguns scripts em SQL para a cadeira de Banco de Dados 2 da Faculdade.
Valeu pela ajuda. Vou ver se consigo configurar o caminho para acessar o apex pelo browser.
Andei vendo no site da Oracle e ela já não disponibiliza mais o Oracle XE para o Ubuntu. Desisti. Mas muito obrigado mesmo pela ajuda.
Dica: Passo-a-passo para instalar Oracle 11gR1 no Enterprise Linux 5 – 32bits e 64bits:
http://clientedigital.com.br/instalar-oracle-11gr1-no-enterprise-linux-5/