Jak zainstalować Oracle 11gR2 na Ubuntu 14.04?


Odpowiedzi:


72

Krok 1: Pobierz Oracle Database Express Edition.

Krok 2: Instrukcje przed instalacją Oracle

  1. Skopiuj pobrany plik i wklej go do katalogu domowego.

  2. Rozpakuj za pomocą polecenia:

    unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip 
    
  3. Zainstaluj wymagane pakiety za pomocą polecenia:

    sudo apt-get install alien libaio1 unixodbc
    
  4. Wejdź do folderu Disk1 za pomocą polecenia:

    cd Disk1/
    
  5. Konwertuj format pakietu RPM na format pakietu DEB (używany przez Ubuntu) za pomocą polecenia:

    sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
    
  6. Utwórz wymagany skrypt chkconfig za pomocą polecenia:

    sudo pico /sbin/chkconfig
    

    Zostanie uruchomiony edytor tekstowy pico, a polecenia zostaną wyświetlone u dołu ekranu. Teraz skopiuj i wklej do pliku i zapisz:

    #!/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. Zmień uprawnienia do pliku chkconfig za pomocą polecenia:

    sudo chmod 755 /sbin/chkconfig  
    
  8. Ustaw parametry jądra. Oracle 11gR2 XE wymaga dodatkowych parametrów jądra, które należy ustawić za pomocą polecenia:

    sudo pico /etc/sysctl.d/60-oracle.conf
    
  9. Skopiuj następujące elementy do pliku i zapisz:

    # 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. Sprawdź zmianę za pomocą polecenia:

    sudo cat /etc/sysctl.d/60-oracle.conf 
    
  11. Powinieneś zobaczyć, co wpisałeś wcześniej. Teraz załaduj parametry jądra:

    sudo service procps start
    
  12. Sprawdź, czy nowe parametry są ładowane za pomocą:

    sudo sysctl -q fs.file-max
    

    Powinieneś zobaczyć wartość maksymalnego pliku, którą wprowadziłeś wcześniej.

  13. Ustaw punkt montowania / dev / shm dla Oracle. Utwórz następujący plik za pomocą polecenia:

    sudo pico /etc/rc2.d/S01shm_load
    
  14. Skopiuj następujące do pliku i zapisz.

    #!/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. Zmień uprawnienia do pliku za pomocą polecenia:

    sudo chmod 755 /etc/rc2.d/S01shm_load
    
  16. Teraz wykonaj następujące polecenia:

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

    Teraz zrestartuj swój system

Krok 3: Zainstaluj Oracle

  1. Zainstaluj Oracle DBMS za pomocą polecenia:

    sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb
    
  2. Skonfiguruj Oracle za pomocą polecenia:

    sudo /etc/init.d/oracle-xe configure 
    
  3. Skonfiguruj zmienne środowiskowe, edytując plik .bashrc:

    pico ~/.bashrc
    
  4. Dodaj następujące wiersze na końcu pliku:

    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. Załaduj zmiany, wykonując swój profil:

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

    sudo service oracle-xe start
    
  7. Dodaj użytkownika NAZWA UŻYTKOWNIKA do grupy dba, używając polecenia:

    sudo usermod -a -G dba YOURUSERNAME
    

Krok 4: Korzystanie z powłoki poleceń Oracle XE

  1. Uruchom serwer Oracle XE 11gR2 za pomocą polecenia:

    sudo service oracle-xe start
    
  2. Uruchom powłokę wiersza poleceń jako administrator systemu za pomocą polecenia:

    sqlplus sys as sysdba
    

    Wprowadź hasło podane podczas wcześniejszej konfiguracji Oracle. Zostaniesz teraz umieszczony w środowisku SQL, które rozumie tylko polecenia SQL.

  3. Utwórz zwykłe konto użytkownika w Oracle za pomocą polecenia SQL:

    create user USERNAME identified by PASSWORD;
    

    Zastąp USERNAME i PASSWORD wybraną nazwą użytkownika i hasłem. Zapamiętaj tę nazwę użytkownika i hasło. Jeśli wystąpił błąd podczas wykonywania powyższego komunikatu o resetlogach, wykonaj następujące polecenie SQL i spróbuj ponownie:

    alter database open resetlogs;
    
  4. Przyznaj uprawnienia do konta użytkownika za pomocą polecenia SQL:

    grant connect, resource to USERNAME;
    

    Zastąp USERNAME i PASSWORD wybraną nazwą użytkownika i hasłem. Zapamiętaj tę nazwę użytkownika i hasło.

  5. Wyjdź z powłoki administracyjnej sys za pomocą polecenia SQL:

    exit;
    
  6. Uruchom powłokę wiersza poleceń jako zwykły użytkownik, używając polecenia:

    sqlplus
    

    Teraz możesz uruchamiać polecenia sql ...


W kroku 6 dostajęStarting 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. Mam ten sam błąd. Chociaż nie jestem w stanie zrozumieć tych poleceń , próbowałem i mogłem skonfigurować Oracle XE lub Linux.
Jeet,

@Skynet. Próbowałem także tego linku . Wyszukaj treść Odwołanie w komentarzu po rozwinięciu: aby go uruchomić, musiałem dodać następujące wiersze na początku pliku „/etc/init.d/oracle-xe"... pomiędzy krokami 6 (i) i 6 (ii) jeśli [-L / dev / shm]; następnie rm -rf / dev / shm mkdir / dev / shm mount -t tmpfs shmfs -o size = 2048m / dev / shm fi if [! -d / var / lock / subsys]; następnie mkdir / var / lock / subsys touch / var / lock / subsys / listener fi
Jeet

1
/etc/rc2.d/S01shm_loadwydaje się brakować, ;;wskazując koniec alternatywy w linii 7.
user3523935

2
Musiałem użyć sudo service procps restartzamiastsudo service procps start
ossbuntu

0

Dziękuję za szczegółowy samouczek, ale wystąpił błąd

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

w kroku sudo /etc/init.d/oracle-xe configure. Tak jak sugerowano na http://meandmyubuntulinux.blogspot.in/2012/05/installing-oracle-11g-r2-express.html Dodałem następujące wiersze w/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

... i działa dobrze dla mnie


/etc/rc2.d/S01shm_loadWystąpił błąd, ponieważ w odpowiedzi Saikat wystąpił błąd w skrypcie . Naprawienie tego byłoby czystszym rozwiązaniem. Zmienię odpowiedź za pomocą poprawnego skryptu.
Pasza

Zapomnij o tym, recenzenci są idiotami. Po pierwszej i drugiej próbie poprawienia skryptu się poddaję. Najwyraźniej ważniejsze jest bezmyślne głosowanie w celu zdobycia punktów, a następnie próba zrozumienia, co się dzieje.
Pasza

0

To działało dobrze, ale dostałem następujący błąd:

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!

Patrząc na to:

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

Rozwiązałem to, dodając użytkownika:

sudo adduser oracle

Mam nadzieję, że to komuś pomoże.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.