Come installare Oracle 11gR2 su Ubuntu 14.04?


Risposte:


72

Passaggio 1: scaricare Oracle Database Express Edition.

Passaggio 2: istruzioni prima di installare Oracle

  1. Copia il file scaricato e incollalo nella home directory.

  2. Decomprimi usando il comando:

    unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip 
    
  3. Installa i pacchetti richiesti usando il comando:

    sudo apt-get install alien libaio1 unixodbc
    
  4. Entra nella cartella Disk1 usando il comando:

    cd Disk1/
    
  5. Convertire il formato del pacchetto RPM nel formato del pacchetto DEB (utilizzato da Ubuntu) usando il comando:

    sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
    
  6. Creare lo script chkconfig richiesto usando il comando:

    sudo pico /sbin/chkconfig
    

    Viene avviato l'editor di testo pico e i comandi vengono visualizzati nella parte inferiore dello schermo. Ora copia e incolla quanto segue nel file e salva:

    #!/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. Cambia l'autorizzazione del file chkconfig usando il comando:

    sudo chmod 755 /sbin/chkconfig  
    
  8. Imposta i parametri del kernel. Oracle 11gR2 XE richiede parametri del kernel aggiuntivi che è necessario impostare utilizzando il comando:

    sudo pico /etc/sysctl.d/60-oracle.conf
    
  9. Copia quanto segue nel file e salva:

    # 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. Verifica la modifica utilizzando il comando:

    sudo cat /etc/sysctl.d/60-oracle.conf 
    
  11. Dovresti vedere cosa hai inserito prima. Ora carica i parametri del kernel:

    sudo service procps start
    
  12. Verificare che i nuovi parametri vengano caricati utilizzando:

    sudo sysctl -q fs.file-max
    

    Dovresti vedere il valore massimo del file che hai inserito in precedenza.

  13. Imposta il punto di montaggio / dev / shm per Oracle. Creare il seguente file usando il comando:

    sudo pico /etc/rc2.d/S01shm_load
    
  14. Copia quanto segue nel file e salva.

    #!/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. Modifica le autorizzazioni del file usando il comando:

    sudo chmod 755 /etc/rc2.d/S01shm_load
    
  16. Ora esegui i seguenti comandi:

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

    Ora riavvia il tuo sistema

Passaggio 3: installare Oracle

  1. Installa l'oracle DBMS usando il comando:

    sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb
    
  2. Configurare Oracle utilizzando il comando:

    sudo /etc/init.d/oracle-xe configure 
    
  3. Imposta le variabili di ambiente modificando il tuo file .bashrc:

    pico ~/.bashrc
    
  4. Aggiungi le seguenti righe alla fine del file:

    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. Carica le modifiche eseguendo il tuo profilo:

    . ~/.bashrc
    
  6. Avviare Oracle 11gR2 XE:

    sudo service oracle-xe start
    
  7. Aggiungi l'utente YOURUSERNAME al gruppo dba usando il comando:

    sudo usermod -a -G dba YOURUSERNAME
    

Passaggio 4: utilizzo di Oracle XE Command Shell

  1. Avviare il server Oracle XE 11gR2 utilizzando il comando:

    sudo service oracle-xe start
    
  2. Avviare la shell della riga di comando come amministratore di sistema utilizzando il comando:

    sqlplus sys as sysdba
    

    Immettere la password fornita durante la configurazione di Oracle in precedenza. Ora verrai inserito in un ambiente SQL che comprende solo i comandi SQL.

  3. Crea un normale account utente in Oracle usando il comando SQL:

    create user USERNAME identified by PASSWORD;
    

    Sostituisci USERNAME e PASSWORD con il nome utente e la password di tua scelta. Ricorda questo nome utente e password. Se si è verificato un errore durante l'esecuzione di quanto sopra con un messaggio relativo a resetlogs, eseguire il comando SQL seguente e riprovare:

    alter database open resetlogs;
    
  4. Concedere i privilegi all'account utente utilizzando il comando SQL:

    grant connect, resource to USERNAME;
    

    Sostituisci USERNAME e PASSWORD con il nome utente e la password di tua scelta. Ricorda questo nome utente e password.

  5. Esci dalla shell dell'amministratore di sistema usando il comando SQL:

    exit;
    
  6. Avviare la shell della riga di comando come utente normale usando il comando:

    sqlplus
    

    Ora puoi eseguire i comandi sql ...


Al passaggio 6 sto ricevendoStarting 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. Ho avuto lo stesso errore. Anche se non riesco a capire questi comandi , ho provato e in grado di configurare Oracle XE o Linux Mint.
Jeet

@Skynet. E ho anche provato questo link . Cerca contenuto Riferimento nel commento dopo l'espansione: per farlo funzionare avevo bisogno di aggiungere le seguenti righe all'inizio del file "/etc/init.d/oracle-xe"... tra i passaggi 6 (i) e 6 (ii) se [-L / dev / shm]; quindi rm -rf / dev / shm mkdir / dev / shm mount -t tmpfs shmfs -o size = 2048m / dev / shm fi if [! -d / var / lock / subsys]; quindi mkdir / var / lock / subsys touch / var / lock / subsys / listener fi
Jeet

1
/etc/rc2.d/S01shm_loadsembra mancare ;;indicando la fine di un'alternativa alla riga 7.
user3523935

2
Ho dovuto usare sudo service procps restartinvece disudo service procps start
ossbuntu il

0

Grazie per il tutorial dettagliato ma ho riscontrato errori

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

nel passaggio sudo /etc/init.d/oracle-xe configure. Quindi, come suggerito su http://meandmyubuntulinux.blogspot.in/2012/05/installing-oracle-11g-r2-express.html ho aggiunto le seguenti righe in/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 funziona benissimo per me


/etc/rc2.d/S01shm_loadViene visualizzato l'errore perché nella risposta di Saikat è presente un errore nella sceneggiatura . Risolvere questo sarebbe una soluzione più pulita. Modificherò la risposta con lo script corretto.
Foraggio,

Lascia perdere, i recensori sono idioti. Dopo che il primo e il secondo tentativo di correggere lo script sono falliti, mi arrendo. Apparentemente è più importante votare insensatamente per guadagnare punti piuttosto che cercare di capire cosa si sta facendo.
Foraggio

0

Funzionava bene, tuttavia ho riscontrato il seguente errore:

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!

Guardandoci dentro:

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

L'ho risolto semplicemente aggiungendo un utente:

sudo adduser oracle

Spero che questo aiuti qualcuno.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.