Wie installiere ich Oracle 11gR2 auf Ubuntu 14.04?

Antworten:

72

Schritt 1: Laden Sie die Oracle Database Express Edition herunter .

Schritt 2: Anweisungen vor der Installation von Oracle

  1. Kopieren Sie die heruntergeladene Datei und fügen Sie sie in das Basisverzeichnis ein.

  2. Mit folgendem Befehl entpacken:

    unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip 
    
  3. Installieren Sie die erforderlichen Pakete mit dem folgenden Befehl:

    sudo apt-get install alien libaio1 unixodbc
    
  4. Geben Sie den folgenden Befehl in den Ordner "Disk1" ein:

    cd Disk1/
    
  5. Konvertieren Sie das RPM-Paketformat in das DEB-Paketformat (das von Ubuntu verwendet wird) mit dem folgenden Befehl:

    sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
    
  6. Erstellen Sie das erforderliche chkconfig-Skript mit dem folgenden Befehl:

    sudo pico /sbin/chkconfig
    

    Der Pico-Texteditor wird gestartet und die Befehle werden am unteren Bildschirmrand angezeigt. Kopieren Sie nun folgendes und fügen Sie es in die Datei ein und speichern Sie:

    #!/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. Ändern Sie die Berechtigung der Datei chkconfig mit dem folgenden Befehl:

    sudo chmod 755 /sbin/chkconfig  
    
  8. Stellen Sie die Kernel-Parameter ein. Oracle 11gR2 XE erfordert zusätzliche Kernel-Parameter, die Sie mit dem folgenden Befehl festlegen müssen:

    sudo pico /etc/sysctl.d/60-oracle.conf
    
  9. Kopieren Sie folgendes in die Datei und speichern Sie:

    # 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. Überprüfen Sie die Änderung mit dem Befehl:

    sudo cat /etc/sysctl.d/60-oracle.conf 
    
  11. Sie sollten sehen, was Sie zuvor eingegeben haben. Laden Sie nun die Kernel-Parameter:

    sudo service procps start
    
  12. Überprüfen Sie, ob die neuen Parameter geladen wurden, indem Sie Folgendes verwenden:

    sudo sysctl -q fs.file-max
    

    Sie sollten den File-Max-Wert sehen, den Sie zuvor eingegeben haben.

  13. Richten Sie den Mount-Punkt / dev / shm für Oracle ein. Erstellen Sie die folgende Datei mit dem Befehl:

    sudo pico /etc/rc2.d/S01shm_load
    
  14. Kopieren Sie folgendes in die Datei und speichern Sie.

    #!/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. Ändern Sie die Berechtigungen der Datei mit dem Befehl:

    sudo chmod 755 /etc/rc2.d/S01shm_load
    
  16. Führen Sie nun folgende Befehle aus:

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

    Starten Sie jetzt Ihr System neu

Schritt 3: Installieren Sie Oracle

  1. Installieren Sie das Oracle-DBMS mit dem folgenden Befehl:

    sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb
    
  2. Konfigurieren Sie Oracle mit dem folgenden Befehl:

    sudo /etc/init.d/oracle-xe configure 
    
  3. Richten Sie Umgebungsvariablen ein, indem Sie Ihre .bashrc-Datei bearbeiten:

    pico ~/.bashrc
    
  4. Fügen Sie die folgenden Zeilen am Ende der Datei hinzu:

    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. Laden Sie die Änderungen, indem Sie Ihr Profil ausführen:

    . ~/.bashrc
    
  6. Starten Sie das Oracle 11gR2 XE:

    sudo service oracle-xe start
    
  7. Fügen Sie den Benutzer YOURUSERNAME mit dem folgenden Befehl zur Gruppe dba hinzu:

    sudo usermod -a -G dba YOURUSERNAME
    

Schritt 4: Verwenden der Oracle XE Command Shell

  1. Starten Sie den Oracle XE 11gR2-Server mit dem folgenden Befehl:

    sudo service oracle-xe start
    
  2. Starten Sie die Befehlszeilen-Shell als Systemadministrator mit dem folgenden Befehl:

    sqlplus sys as sysdba
    

    Geben Sie das Kennwort ein, das Sie bei der Konfiguration von Oracle angegeben haben. Sie werden nun in eine SQL-Umgebung versetzt, die nur SQL-Befehle versteht.

  3. Erstellen Sie mit dem SQL-Befehl ein reguläres Benutzerkonto in Oracle:

    create user USERNAME identified by PASSWORD;
    

    Ersetzen Sie USERNAME und PASSWORD durch den Benutzernamen und das Passwort Ihrer Wahl. Bitte merken Sie sich diesen Benutzernamen und das Passwort. Wenn bei der Ausführung des obigen Befehls ein Fehler aufgetreten ist, führen Sie den folgenden SQL-Befehl aus und versuchen Sie es erneut:

    alter database open resetlogs;
    
  4. Gewähren Sie dem Benutzerkonto Berechtigungen mit dem SQL-Befehl:

    grant connect, resource to USERNAME;
    

    Ersetzen Sie USERNAME und PASSWORD durch den Benutzernamen und das Passwort Ihrer Wahl. Bitte merken Sie sich diesen Benutzernamen und das Passwort.

  5. Beenden Sie die Sys-Admin-Shell mit dem SQL-Befehl:

    exit;
    
  6. Starten Sie die Kommandozeilen-Shell als normaler Benutzer mit dem folgenden Befehl:

    sqlplus
    

    Jetzt können Sie SQL-Befehle ausführen ...

Saikat Kundu
quelle
Bei Schritt 6 bekomme ichStarting 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. Ich habe den gleichen Fehler bekommen. Obwohl ich diese Befehle nicht verstehen kann , habe ich versucht, Oracle XE oder Linux Mint zu konfigurieren.
Jeet
@Skynet. Und auch diesen Link ausprobiert . Inhaltsverweis im Kommentar nach dem Erweitern suchen: Damit er funktioniert, musste ich am Anfang der Datei "/etc/init.d/oracle-xe"...zwischen den Schritten 6 (i) und 6 die folgenden Zeilen einfügen (ii) wenn [-L / dev / shm]; dann rm -rf / dev / shm mkdir / dev / shm mount -t tmpfs shmfs -o size = 2048m / dev / shm fi if [! -d / var / lock / subsys]; dann mkdir / var / lock / subsys touch / var / lock / subsys / Zuhörer fi
Jeet
1
/etc/rc2.d/S01shm_loadscheint zu fehlen und ;;zeigt das Ende einer Alternative in Zeile 7 an.
user3523935
2
Musste sudo service procps restartanstelle vonsudo service procps start
ossbuntu 24.10.17
0

Vielen Dank für das ausführliche Tutorial, aber ich habe eine Fehlermeldung erhalten

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

im schritt sudo /etc/init.d/oracle-xe configure. Wie auf http://meandmyubuntulinux.blogspot.in/2012/05/installing-oracle-11g-r2-express.html vorgeschlagen, habe ich die folgenden Zeilen hinzugefügt/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

... und es funktioniert gut für mich

drichirich
quelle
Sie erhalten den Fehler, weil das Skript /etc/rc2.d/S01shm_loadin Saikats Antwort einen Fehler enthält. Dies zu beheben wäre eine sauberere Lösung. Ich bearbeite die Antwort mit dem richtigen Skript.
Futter
Vergiss es, Rezensenten sind Idioten. Nachdem der erste und der zweite Versuch, das Skript zu korrigieren, fehlgeschlagen sind, gebe ich auf. Offensichtlich ist es wichtiger, gedankenlos abzustimmen, um Punkte zu erzielen, als tatsächlich zu versuchen, zu verstehen, was getan wird.
Futter
0

Dies hat gut funktioniert, aber ich habe den folgenden Fehler bekommen:

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!

Etwas nachgehen:

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

Ich habe es gelöst, indem ich einfach einen Benutzer hinzugefügt habe:

sudo adduser oracle

Hoffe das hilft jemandem.

user2750563
quelle