Para instalar o Oracle 11g XE no Ubuntu 16.04 encontrei alguns tutoriais para versões anteriores que foram muito úteis. Um dos mais completos foi o do blog WhiteHorses, com este post: Installing Java, Oracle 11g R2 Express Edition and SQL Developer on Ubuntu 64-bit por Mike Heeren.
Mas, como acontece algumas vezes, nem tudo funciona como o esperado. Então precisei de alguns complementos, que foram encontrados vasculhando entre fóruns, blogs e sites. Preparei o passo a passo abaixo compilando informações encontradas nas várias fontes e nos testes que executei, até acertar o processo.
Bora agredir!
Passo #01: Download
A versão exata que utilizei foi o Oracle 11g R2 XE, (oracle-xe-11.2.0-1.0.x86_64.rpm.zip) que pode ser baixado através do link: Oracle Express Edition 11g R2
Passo #02: Descompactar o arquivo
Após baixar o arquivo você poderá descompactá-lo com o comando abaixo:
unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
Passo #03: Ferramentas
Instale os seguintes pacotes:
- Libaio1: Permite executar chamadas I/O assíncronas ao Kernel. Importante para performance do banco de dados;
- UnixODBC: Gerenciador de drivers;
- Alien: Conversor de pacotes “.rpm”.
Para tal, proceda com o seguinte comando:
sudo apt-get install alien libaio1 unixodbc
Passo #04: Convertendo
Arquivos “.rpm” como o que foi baixado são pacotes próprios para outras distribuições do Linux. Para que possamos utilizá-los é necessário convertê-lo para pacote “.deb”.
Com o pacote “Alien” já instalado, estando você na pasta onde descompactou o arquivo “.rpm”, execute o seguinte comando:
sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
A conversão deste pacote é um processo bastante demorado.
Passo #05: Arquivos de configuração
Para criar/editar os arquivos, você poderá utilizar o editor de sua preferência. Algumas pessoas utilizam o vi, outros o vim. Eu, me sinto confortável utilizando o nano. Mas você também poderá utilizar o gedit se estiver no modo gráfico, que não foi o meu caso.
Criar o chkconfig:
sudo nano /sbin/chkconfig
Seu conteúdo deve ser este:
#!/bin/bash # Oracle 11gR2 XE installer chkconfig hack for Ubuntu file=/etc/init.d/oracle-xe if [[ ! `tail -n1 $file | grep INIT` ]]; then echo >> $file echo '### BEGIN INIT INFO' >> $file echo '# Provides: OracleXE' >> $file echo '# Required-Start: $remote_fs $syslog' >> $file echo '# Required-Stop: $remote_fs $syslog' >> $file echo '# Default-Start: 2 3 4 5' >> $file echo '# Default-Stop: 0 1 6' >> $file echo '# Short-Description: Oracle 11g Express Edition' >> $file echo '### END INIT INFO' >> $file fi update-rc.d oracle-xe defaults 80 01 #EOF
Depois de salvar o arquivo, altere as permissões para execução:
sudo chmod 755 /sbin/chkconfig
Em seguida, crie o arquivo 60-oracle.conf
sudo nano /etc/sysctl.d/60-oracle.conf
Com este conteúdo:
# Oracle 11g XE kernel parameters fs.file-max=6815744 net.ipv4.ip_local_port_range=9000 65000 kernel.sem=250 32000 100 128 kernel.shmmax=2147483648
O valor do parâmetro “shmmax” deve ser o valor de máximo da memória RAM dispoível, em bytes. No meu caso era de 2Gigas.
2 * 1024 * 1024 * 1024 = 2147483648
Este é um ponto em que tive problemas. Vale dar uma olhada nos outros arquivos que estão nesta pasta. O número 60 que precede o nome do arquivo o ordena a forma que os scripts são carregados. Verifique o interior dos outros scripts. No meu caso, um script que era executado após, setava um valor menor do que o necessário.
Para atualizar os novos parâmetros, execute o comando abaixo:
sudo service procps start
Passo #06: Swap Space
O espaço destinado ao Swap de memória requerido pelo Oracle XE é de no mínimo 2Gigas. Você poderá verificar o quanto está disponível no seu sistema operacional utilizando o seguinte comando:
free -m
Se não tiver espaço suficiente, você poderá liberar 2Gigas de espaço em uma partição exclusiva com a seguinte sequencia:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=2097152 sudo mkswap /swapfile sudo swapon /swapfile sudo cp /etc/fstab /etc/fstab.orig sudo echo '/swapfile swap swap defaults 0 0' >> /etc/fstab
Passo #07: Últimos preparativos
Crie o link
sudo ln -s /usr/bin/awk /bin/awk
Crie o diretório subsys:
sudo mkdir /var/lock/subsys
E, dentro dele, o arquivo vazio:
sudo touch /var/lock/subsys/listener
Passo #08: Instalando o Oracle
Agora sim, até que enfim. Execute:
sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb
Mas, ainda não acabou: siga os próximos passos.
Passo #09: Variáveis de ambiente
Execute esta sequencia de comandos, setando as variáveis de ambiente necessárias e atualizando a variável PATH.
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe export ORACLE_SID=XE export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh` export ORACLE_BASE=/u01/app/oracle export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export PATH=$ORACLE_HOME/bin:$PATH
Para carregar estas alterações no profile, execute o seguinte comando:
. ./.profile
mas, para isso, esteja na pasta do seu usuário em “/home/<seuusuario>”.
Enfrentei problemas de perda destas variáveis. Caso você passe pelo mesmo problema, poderá colocá-las no arquivo sudo “bash.bashrc”. Execute o comando abaixo e acrescente estas linhas de “export” das variáveis ao final do arquivo.
sudo nano /etc/bash.bashrc
Passo #10: Configurando o Oracle
sudo /etc/init.d/oracle-xe configure
Ao executar este comando, será apresentada a sequencia de 5 perguntas já oferecendo os valores padrões:
1- Porta HTTP para o APEX.
2- Porta do listener do SGDB.
3- Senha do SYS e SYSTEM.
4- Confirmação da senha.
5- Necessidade de iniciar o Oracle junto com o sistema operacional.
Tendo finalizado, basta iniciar o serviço do banco de dados com o comando:
sudo service oracle-xe start
Esse tutorial ficou muito bom! Segui os passos e funcionou perfeitamente. Parabéns.
CurtirCurtir
Obrigado!
CurtirCurtir
Ao executar o comando para configurar o oracle recebo este retorno: Oracle Database 10g Express Edition is already configured
Não consigo acessar o banco de dados pois não consigo configurar uma senha de SYS. Pode me ajudar con isso ?
CurtirCurtir
Olá Efimino01.
Localize o arquivo “/etc/default/oracle-xe” e altera a linha que contem a instrução “CONFIGURE_RUN=true” para “CONFIGURE_RUN=false”.
Depois disso, faça a reconfiguração passo a passo executando o comando “sudo /etc/init.d/oracle-xe configure”.
Se não funcionar, remova “/etc/sysconfig/oracle-xe” e depois execute o comando “sudo /etc/init.d/oracle-xe configure”.
CurtirCurtir
Aqui da que já esta configurado mas nao tem o “/etc/sysconfig/oracle-xe” mudei para false e aparece erro de Status : Com FalhaFalha no teste: Erro de ES: The Network Adapter could not establish the connection
CurtirCurtir
O serviço não está sendo iniciado, do Listener. Geralmente a pasta padrão da instalação é “/u01/app/oracle/product/11.2.0/xe”. Tente acessar a pasta bin e iniciar manualmente o serviço por lá. Só uma sugestão. Na pior das hipóteses, dependendo do conhecimento de cado um, o mais simples é desfazer e recomeçar do início. É difícil dizer não tendo acompanhado se ficou algum detalhe sem executar ou que não tenha persistido o efeito esperado.
CurtirCurtir
Cara, esse foi o único tutorial que eu segui e deu certo! Obrigado!!!!
CurtirCurtido por 1 pessoa
Cara, esse tutorial deu certo. Só no passo #06 que eu tive que fazer algumas alterações:
sudo dd if=/dev/zero of=/home/swapfile bs=1024 count=2097152
sudo mkswap /home/swapfile
sudo swapon /home/swapfile
sudo cp /etc/fstab /etc/fstab.orig
sudo echo ‘/swapfile swap swap defaults 0 0’ >> gedit /etc/fstab
CurtirCurtir
Obrigado, Leandro;
Que bom que funcionou.
No seu caso, variou apenas colocando explícito a pasta /home. Em algumas instalações do Linux pode variar de acordo com o perfil do usuário que está executando.
Provavelmente você alterou também na quinta linha.
CurtirCurtir
Parabéns pelo tutorial, está muito bem explicado! Eu só tive uma dificuldade e vou compartilhar para se alguém mais tiver, ao executar a configuração do oracle ocorria erro no momento de inicializar a base, eu tive que alterar a linha memory_target= para memory_target=1G no arquivo /u01/app/oracle/product/11.2.0/xe/config/init.ora . Após essa alteração foi tudo perfeito. Parabenizo novamente pelo tutorial. Vlw
CurtirCurtido por 1 pessoa
Obrigado, Maryane;
Em uma ocorrência foi necessário que eu também realizasse esta alteração. No padrão o Oracle XE já tem por definição 1G de memory_target e quando é colocado um valor diferente ele não executa. É a limitação da versão XE para rodar com apenas 1G. Neste caso, assim como no seu caso, um outro valor padrão deve ter sido assumido na execução, talvez por alguma instalação anterior de outra versão do Oracle ou variação do sistema operacional. Mas realmente resolve quando colocamos explícito no arquivo “init.ora”.
CurtirCurtir
Fiz todos os passos. Pulei apenas o passo 6, pois tenho 4GB de swap.
No fim ao dar comando “sudo /etc/init.d/oracle-xe configure” recebo a mensagem:
sudo: /etc/init.d/oracle-xe: comando não encontrado.
CurtirCurtir
Olá Cristian;
Não se desanime, também não acertei de primeira. Provavelmente ficou algum passo do tutorial sem executar. Normalmente, ao receber este erro, ele vem acompanhado de alguma linha, especificando melhor. Por exemplo: “/etc/init.d/oracle-xe: linha 362: netstat: comando não encontrado”.
Minha sugestão é que remova tudo e tente instalar novamente. Certifique-se de que todos os comandos em que são necessários executar com o “sudo” estejam com ele. Alguns funcionam sem, mas no final fazem diferença.
Espero ter ajudado.
CurtirCurtir
Perfeito. Executei os passos, instalação sem problemas.
Obrigado.
CurtirCurtido por 1 pessoa
Muito obrigado cara. Primeira vez que tento instalar o oracle no Ubuntu e seu tutorial foi um achado, minha primeira escolha no google e foi direto ao ponto. Valeu mesmo.
CurtirCurtir
É exatamente este o objetivo! Que bom que deu certo pra você!
CurtirCurtir
valeu brother obrigado!!
CurtirCurtir
Oi Amigo, ótimo seu artigo, gostaria de deixar uma contribuição para aqueles que enfrentaram o seguinte problema
A unidade oracle-xe.service está sendo iniciada.
Starting Oracle Net Listener.
No passwd entry for user ‘oracle’
FAILED su for oracle by root
??? root:oracle
No passwd entry for user ‘oracle’
FAILED su for oracle by root
é necessário criar um usuário para o oracle como mostra nesse link
https://docs.oracle.com/cd/E11882_01/install.112/e24324/toc.htm#CHDJHADA
Comandos
1 – sudo /usr/sbin/groupadd oinstall
2- sudo /usr/sbin/groupadd dba
3 – sudo usr/sbin/useradd -g oinstall -G dba oracle
4 – passwd oracle (digite a senha e a confimação para o usuário)
CurtirCurtido por 1 pessoa
Excelente, Jeferson. Obrigado pela contribuição.
CurtirCurtir
Estou quase desistindo do Oracle 11g express, cara que troço ruim de instalar!
root@ubuMate:/home/brainiac/Downloads/Disk1# alien –scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
Unpacking of ‘oracle-xe-11.2.0-1.0.x86_64.rpm’ failed at /usr/share/perl5/Alien/Package/Rpm.pm line 168.
CurtirCurtir
Realmente não foi fácil concluir este processo nas primeiras tentativas. Por isso resolvi publicar o passo a passo que deu certo no meu caso. Já o repeti algumas vezes sem problemas. Não sei ao certo se é o seu caso, mas este erro ocorre na maioria das vezes quando é executado sem as devidas prerrogativas. Tente executar com o “sudo” antes do comando.
CurtirCurtir
Muito obrigado, consegui instalar perfeitamente seguindo o tutorial…Mas como faço para desinstalar?
CurtirCurtir
Para desinstalar, uma das opções é utilizar o “dpkg” utilizado no passo 8, e ao contrario da opção “–install” utilizar a opção “–deinstall” ou então “–purge”. Mas, os arquivos alterados manualmente você terá que revisá-los. Refaça os passos conferindo.
CurtirCurtir
Parabens por tentar ajudar, já fa uma semana tentando instalar o banco e não funcionou no meu Ubuntu, o SQL Developer foi de boa . Perdi a conta de quantos videos no youtube e tutoriais e nada de fazer funcionar.
Só nao entendo por que não simplificam como no Windows ou por que não deixam um script no arquivo de instalação. Sempre tentam dificultar e isso nao ajuda em nada o Linux.
CurtirCurtir
impressinante, sou iniciante da iniciante e tenho bastante dificuldade apesar de estar fazendo faculdade de análise de sistemas, tenho 56 anos e sou de outra realidade de sistemas, mas consegui concluir a instalação com sucesso seguindo os passos acima. Grata muito, foi muito didático e objetivo.
CurtirCurtir
Obrigado, Gisele!
CurtirCurtir
Testado em Mint 18.2 64 bits. Funcionou perfeitamente! Obrigado!
CurtirCurtir
🙂
CurtirCurtir
Desculpe por ser meio leigo kk, mas como faria para acessar a interface web (conforme imagem https://i.ytimg.com/vi/tI_tnmEeVn8/maxresdefault.jpg) externamente, ou seja, o Oracle 11g R2 estaria instalado em um servidor e eu gostaria de acessa-lo de outro PC.
CurtirCurtir
Olá, Hugo;
O acesso ao APEX vem, por padrão, com o acesso externo bloqueado. Siga os seguintes passos:
1- Logue no SQLPlus pelo terminal:
# sqlplus SYSTEM/suaSenha
2- Desative a restrição:
SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
3- Saia do SQLPlus:
SQL> exit
Pronto, agora é só parar o serviço e reiniciar.
Depois disso, basta saber qual o IP deste servidor na rede e acessar pelo navegado: http://ipDoServidor:8080/apex
CurtirCurtir
Ola novamente, agradeço sua resposta, mas estou a alguns dias tentando instala-lo sem sucesso. Quando executo o comando “sudo /etc/init.d/oracle-xe configure” ao tentar configurar a database, no final aparece o erro “Database Configuration failed. Look into /u01/app/oracle/product/11.2.0/xe/config/log for details”. O arquivo de log não foi muito útil porque não mostrou nenhuma dica e encontrei muitas entradas com o código de erro “ORA-01034: ORACLE não disponível”, conseguiria me ajudar novamente?
Agradeço desde ja.
CurtirCurtir
Olá, Hugo;
Na outra pergunta, imaginei que já tivesse instalado o Oracle. Só conseguirá acessar o APEX depois de tudo funcionando. Mas, vamos à sua nova questão.
Primeiramente, queria debater a seguinte frase: “O arquivo de log não foi muito útil porque não mostrou nenhuma dica”. São justamente dicas que estão no arquivo de log. Os códigos de erro são justamente a dica do que pesquisar e indicam a causa provável do problema.
O ORA-01034 está aparecendo porque o serviço realmente não está disponível. Ele não foi iniciado. Não vi o seu arquivo de log, mas geralmente ele não inicia por algum fator esquecido durante a instalação. Pode ser que você se esqueceu de alguma variável PATH ou alguma permissão. Mas o mais provável é que você tenha tido problemas ao trabalhar com a memória, ou pulou algum item do Passo #05. Verifique o arquivo “60-oracle.conf”.
CurtirCurtir
Segui os passos e instalei sem problemas no Ubuntu 18.04. Parabéns pelo tutorial.
CurtirCurtir
Eu estou precisando do instalar do Oracle xe 11.2 para Linux e não o estou encontrando. Você ainda o
têm ?
CurtirCurtir