Bagaimana cara menginstal Oracle 11gR2 di Ubuntu 14.04?

Jawaban:

72

Langkah 1: Unduh Oracle Database Express Edition.

Langkah 2: Instruksi sebelum menginstal Oracle

  1. Salin file yang diunduh dan tempel di direktori home.

  2. Unzip menggunakan perintah:

    unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip 
    
  3. Instal paket yang diperlukan menggunakan perintah:

    sudo apt-get install alien libaio1 unixodbc
    
  4. Masuk ke folder Disk1 menggunakan perintah:

    cd Disk1/
    
  5. Ubah format paket RPM ke format paket DEB (yang digunakan oleh Ubuntu) menggunakan perintah:

    sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
    
  6. Buat skrip chkconfig yang diperlukan menggunakan perintah:

    sudo pico /sbin/chkconfig
    

    Editor teks pico dimulai dan perintah ditampilkan di bagian bawah layar. Sekarang salin dan rekatkan yang berikut ke dalam file dan simpan:

    #!/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. Ubah izin file chkconfig menggunakan perintah:

    sudo chmod 755 /sbin/chkconfig  
    
  8. Setel parameter kernel. Oracle 11gR2 XE memerlukan parameter kernel tambahan yang perlu Anda atur menggunakan perintah:

    sudo pico /etc/sysctl.d/60-oracle.conf
    
  9. Salin yang berikut ke dalam file dan simpan:

    # 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. Verifikasi perubahan menggunakan perintah:

    sudo cat /etc/sysctl.d/60-oracle.conf 
    
  11. Anda harus melihat apa yang Anda masukkan sebelumnya. Sekarang muat parameter kernel:

    sudo service procps start
    
  12. Verifikasi parameter baru dimuat menggunakan:

    sudo sysctl -q fs.file-max
    

    Anda harus melihat nilai file-max yang Anda masukkan sebelumnya.

  13. Atur / dev / shm mount point untuk Oracle. Buat file berikut menggunakan perintah:

    sudo pico /etc/rc2.d/S01shm_load
    
  14. Salin yang berikut ke dalam file dan simpan.

    #!/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. Ubah izin file menggunakan perintah:

    sudo chmod 755 /etc/rc2.d/S01shm_load
    
  16. Sekarang jalankan perintah berikut:

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

    Sekarang, Reboot Sistem Anda

Langkah 3: Instal Oracle

  1. Instal oracle DBMS menggunakan perintah:

    sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb
    
  2. Konfigurasikan Oracle menggunakan perintah:

    sudo /etc/init.d/oracle-xe configure 
    
  3. Siapkan variabel lingkungan dengan mengedit file .bashrc Anda:

    pico ~/.bashrc
    
  4. Tambahkan baris berikut ke akhir 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. Muat perubahan dengan mengeksekusi profil Anda:

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

    sudo service oracle-xe start
    
  7. Tambahkan pengguna YOURUSERNAME ke grup dba menggunakan perintah:

    sudo usermod -a -G dba YOURUSERNAME
    

Langkah 4: Menggunakan Oracle XE Command Shell

  1. Mulai server Oracle XE 11gR2 menggunakan perintah:

    sudo service oracle-xe start
    
  2. Mulai shell baris perintah sebagai admin sistem menggunakan perintah:

    sqlplus sys as sysdba
    

    Masukkan kata sandi yang Anda berikan saat mengkonfigurasi Oracle sebelumnya. Anda sekarang akan ditempatkan di lingkungan SQL yang hanya memahami perintah SQL.

  3. Buat akun pengguna biasa di Oracle menggunakan perintah SQL:

    create user USERNAME identified by PASSWORD;
    

    Ganti USERNAME dan PASSWORD dengan nama pengguna dan kata sandi pilihan Anda. Harap ingat nama pengguna dan kata sandi ini. Jika Anda memiliki kesalahan menjalankan di atas dengan pesan tentang resetlog, kemudian jalankan perintah SQL berikut dan coba lagi:

    alter database open resetlogs;
    
  4. Berikan hak istimewa ke akun pengguna menggunakan perintah SQL:

    grant connect, resource to USERNAME;
    

    Ganti USERNAME dan PASSWORD dengan nama pengguna dan kata sandi pilihan Anda. Harap ingat nama pengguna dan kata sandi ini.

  5. Keluar dari sys admin shell menggunakan perintah SQL:

    exit;
    
  6. Mulai shell baris perintah sebagai pengguna biasa menggunakan perintah:

    sqlplus
    

    Sekarang, Anda dapat menjalankan perintah sql ...

Saikat Kundu
sumber
Pada langkah 6 saya mendapatkanStarting 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. Saya mendapat kesalahan yang sama. Walaupun saya tidak dapat memahami perintah - perintah ini , saya mencoba dan dapat mengkonfigurasi oracle XE atau linux mint.
Jeet
@ Skynet. Dan juga mencoba tautan ini . Cari konten Referensi dalam komentar setelah berkembang: untuk membuatnya berfungsi, saya perlu menambahkan baris berikut di awal file "/etc/init.d/oracle-xe"...between langkah 6 (i) dan 6 (ii) jika [-L / dev / shm]; kemudian rm -rf / dev / shm mkdir / dev / shm mount -t tmpfs shmfs -o size = 2048m / dev / shm fi if [! -d / var / lock / subsys]; lalu mkdir / var / lock / sentuh subsys / var / lock / subsys / listener fi
Jeet
1
/etc/rc2.d/S01shm_loadtampaknya tidak ada yang ;;menunjukkan akhir dari alternatif di baris 7.
user3523935
2
Harus menggunakan sudo service procps restartbukannyasudo service procps start
ossbuntu
0

Terima kasih untuk tutorial terperinci tapi saya mendapatkan kesalahan

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

dalam langkah sudo /etc/init.d/oracle-xe configure. Jadi seperti yang disarankan pada http://meandmyubuntulinux.blogspot.in/2012/05/installing-oracle-11g-r2-express.html saya menambahkan baris berikut di/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

... dan itu bekerja dengan baik untuk saya

drichirich
sumber
Anda mendapatkan kesalahan karena ada kesalahan dalam naskah /etc/rc2.d/S01shm_loaddalam jawaban Saikat. Memperbaiki ini akan menjadi solusi yang lebih bersih. Saya akan mengedit jawaban dengan skrip yang benar.
Hijauan
Lupakan saja, pengulas itu idiot. Setelah upaya pertama dan kedua untuk memperbaiki skrip telah gagal saya menyerah. Rupanya lebih penting untuk memilih tanpa berpikir untuk mencetak poin kemudian benar-benar mencoba memahami apa yang sedang dilakukan.
Hijauan
0

Ini berfungsi dengan baik, namun saya mendapat kesalahan berikut:

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!

Melihat ke dalamnya:

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

Saya mengatasinya dengan hanya menambahkan pengguna:

sudo adduser oracle

Semoga ini bisa membantu seseorang.

pengguna2750563
sumber