Como instalar o Oracle 11gR2 no Ubuntu 14.04?

Respostas:

72

Etapa 1: Faça o download do Oracle Database Express Edition.

Etapa 2: Instruções antes de instalar o Oracle

  1. Copie o arquivo baixado e cole-o no diretório inicial.

  2. Descompacte usando o comando:

    unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip 
    
  3. Instale os pacotes necessários usando o comando:

    sudo apt-get install alien libaio1 unixodbc
    
  4. Entre na pasta Disk1 usando o comando:

    cd Disk1/
    
  5. Converta o formato do pacote RPM para o formato do pacote DEB (usado pelo Ubuntu) usando o comando:

    sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
    
  6. Crie o script chkconfig necessário usando o comando:

    sudo pico /sbin/chkconfig
    

    O editor de texto pico é iniciado e os comandos são mostrados na parte inferior da tela. Agora copie e cole o seguinte no arquivo e salve:

    #!/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
    
  7. Mude a permissão do arquivo chkconfig usando o comando:

    sudo chmod 755 /sbin/chkconfig  
    
  8. Defina os parâmetros do kernel. O Oracle 11gR2 XE requer parâmetros adicionais do kernel que você precisa definir usando o comando:

    sudo pico /etc/sysctl.d/60-oracle.conf
    
  9. Copie o seguinte no arquivo e salve:

    # 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=536870912 
    
  10. Verifique a mudança usando o comando:

    sudo cat /etc/sysctl.d/60-oracle.conf 
    
  11. Você deve ver o que inseriu anteriormente. Agora carregue os parâmetros do kernel:

    sudo service procps start
    
  12. Verifique se os novos parâmetros foram carregados usando:

    sudo sysctl -q fs.file-max
    

    Você deve ver o valor máximo do arquivo digitado anteriormente.

  13. Configure o ponto de montagem / dev / shm para Oracle. Crie o seguinte arquivo usando o comando:

    sudo pico /etc/rc2.d/S01shm_load
    
  14. Copie o seguinte no arquivo e salve.

    #!/bin/sh
    case "$1" in
    start)
        mkdir /var/lock/subsys 2>/dev/null
        touch /var/lock/subsys/listener
        rm /dev/shm 2>/dev/null
        mkdir /dev/shm 2>/dev/null
    *)
        echo error
        exit 1
        ;;
    
    esac 
    
  15. Altere as permissões do arquivo usando o comando:

    sudo chmod 755 /etc/rc2.d/S01shm_load
    
  16. Agora execute os seguintes comandos:

    sudo ln -s /usr/bin/awk /bin/awk 
    sudo mkdir /var/lock/subsys 
    sudo touch /var/lock/subsys/listener
    

    Agora, reinicie seu sistema

Etapa 3: instalar o Oracle

  1. Instale o DBMS da Oracle usando o comando:

    sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb
    
  2. Configure o Oracle usando o comando:

    sudo /etc/init.d/oracle-xe configure 
    
  3. Configure variáveis ​​de ambiente editando o arquivo .bashrc:

    pico ~/.bashrc
    
  4. Adicione as seguintes linhas ao final do arquivo:

    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
    
  5. Carregue as alterações executando seu perfil:

    . ~/.bashrc
    
  6. Inicie o Oracle 11gR2 XE:

    sudo service oracle-xe start
    
  7. Adicione o usuário YOURUSERNAME ao grupo dba usando o comando:

    sudo usermod -a -G dba YOURUSERNAME
    

Etapa 4: Usando o Shell de Comando do Oracle XE

  1. Inicie o servidor Oracle XE 11gR2 usando o comando:

    sudo service oracle-xe start
    
  2. Inicie o shell da linha de comando como administrador do sistema usando o comando:

    sqlplus sys as sysdba
    

    Digite a senha que você forneceu ao configurar o Oracle anteriormente. Agora você será colocado em um ambiente SQL que apenas entende comandos SQL.

  3. Crie uma conta de usuário comum no Oracle usando o comando SQL:

    create user USERNAME identified by PASSWORD;
    

    Substitua USERNAME e PASSWORD pelo nome de usuário e senha de sua escolha. Lembre-se deste nome de usuário e senha. Se você teve um erro ao executar o acima com uma mensagem sobre resetlogs, execute o seguinte comando SQL e tente novamente:

    alter database open resetlogs;
    
  4. Conceda privilégios à conta do usuário usando o comando SQL:

    grant connect, resource to USERNAME;
    

    Substitua USERNAME e PASSWORD pelo nome de usuário e senha de sua escolha. Lembre-se deste nome de usuário e senha.

  5. Saia do shell sys admin usando o comando SQL:

    exit;
    
  6. Inicie o shell da linha de comando como um usuário comum usando o comando:

    sqlplus
    

    Agora, você pode executar comandos sql ...

Saikat Kundu
fonte
Na etapa 6 estou recebendoStarting Oracle Net Listener...touch: cannot touch '/var/lock/subsys/listener': No such file or directory Done Configuring database... Database Configuration failed. Look into /u01/app/oracle/product/11.2.0/xe/config/log for details
Skynet
2
@Skynet. Eu recebi o mesmo erro. Embora eu não consiga entender esses comandos , tentei configurar o oracle XE ou linux mint.
Jeet
@Skynet. E também tentei este link . Referência do comentário no comentário após a expansão: para fazê-lo funcionar, era necessário adicionar as seguintes linhas no início do arquivo "/etc/init.d/oracle-xe"... entre as etapas 6 (i) e 6 (ii) se [-L / dev / shm]; então rm -rf / dev / shm mkdir / dev / shm monte -t ​​tmpfs shmfs -o tamanho = 2048m / dev / shm fi se [! -d / var / lock / subsys]; em seguida, mkdir / var / lock / subsys toque em / var / lock / subsys / listener fi #
419 Jeet
11
/etc/rc2.d/S01shm_loadparece estar faltando, ;;indicando o fim de uma alternativa na linha 7.
user3523935 4/16
2
Tinha que usar em sudo service procps restartvez desudo service procps start
ossbuntu 24/10
0

Obrigado pelo tutorial detalhado, mas estava recebendo erro

touch: cannot touch '/var/lock/subsys/listener' .. 

na etapa sudo /etc/init.d/oracle-xe configure. Assim, como sugerido em http://meandmyubuntulinux.blogspot.in/2012/05/installing-oracle-11g-r2-express.html , adicionei as seguintes linhas em/etc/init.d/oracle-xe

if [ -L /dev/shm ]; then
    rm -rf /dev/shm
    mkdir /dev/shm
    mount -t tmpfs shmfs -o size=2048m /dev/shm
fi

if [ ! -d /var/lock/subsys ]; then
 mkdir /var/lock/subsys
 touch /var/lock/subsys/listener
fi

... e está funcionando bem para mim

drichirich
fonte
Você recebe o erro porque há um erro no script /etc/rc2.d/S01shm_loadna resposta de Saikat. Corrigir isso seria uma solução mais limpa. Vou editar a resposta com o script correto.
Forragem
Esqueça, os revisores são idiotas. Após a falha da primeira e da segunda tentativa de corrigir o script, desisto. Aparentemente, é mais importante votar sem pensar para marcar pontos do que realmente tentar entender o que está sendo feito.
Forragem
0

Isso funcionou bem, no entanto, recebi o seguinte erro:

sudo /etc/init.d/oracle-xe start
[....] Starting oracle-xe (via systemctl): oracle-xe.serviceJob for oracle-xe.service failed because the control process exited with error code. See "systemctl status oracle-xe.service" and "journalctl -xe" for details.
 failed!

Olhando para ele:

systemctl status oracle-xe.service
Jan 27 10:01:05 <myusername> su[29699]: No passwd entry for user 'oracle'

Eu o resolvi simplesmente adicionando um usuário:

sudo adduser oracle

Espero que isso ajude alguém.

user2750563
fonte