ติดตั้ง Oracle 11gR2 บน Ubuntu 14.04 อย่างไร


40

โปรดให้คำแนะนำในการติดตั้ง oracle 11gr2 บน Ubuntu 14.04


2
คุณสามารถอ้างถึงลิงค์ขั้นตอนการติดตั้งblog.whitehorses.nl/2014/03/18/…
vembutech

สำเนาที่เป็นไปได้ของฉันจะติดตั้ง Oracle 11gR2 ได้อย่างไร
Eric Carvalho

คำตอบ:


72

ขั้นตอนที่ 1: ดาวน์โหลด Oracle Database Express Edition

ขั้นตอนที่ 2: คำแนะนำก่อนการติดตั้ง Oracle

  1. คัดลอกไฟล์ที่ดาวน์โหลดมาและวางในโฮมไดเร็กตอรี่

  2. Unzip โดยใช้คำสั่ง:

    unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip 
    
  3. ติดตั้งแพ็กเกจที่จำเป็นโดยใช้คำสั่ง:

    sudo apt-get install alien libaio1 unixodbc
    
  4. เข้าสู่โฟลเดอร์ Disk1 โดยใช้คำสั่ง:

    cd Disk1/
    
  5. แปลงรูปแบบแพ็คเกจ RPM เป็นรูปแบบแพ็คเกจ DEB (ที่ใช้โดย Ubuntu) โดยใช้คำสั่ง:

    sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
    
  6. สร้างสคริปต์ chkconfig ที่ต้องการโดยใช้คำสั่ง:

    sudo pico /sbin/chkconfig
    

    โปรแกรมแก้ไขข้อความ pico เริ่มขึ้นและคำสั่งจะแสดงที่ด้านล่างของหน้าจอ ตอนนี้คัดลอกและวางต่อไปนี้ลงในไฟล์และบันทึก:

    #!/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. เปลี่ยนสิทธิ์ของไฟล์ chkconfig โดยใช้คำสั่ง:

    sudo chmod 755 /sbin/chkconfig  
    
  8. ตั้งค่าพารามิเตอร์เคอร์เนล Oracle 11gR2 XE ต้องการพารามิเตอร์เคอร์เนลเพิ่มเติมซึ่งคุณต้องตั้งค่าโดยใช้คำสั่ง:

    sudo pico /etc/sysctl.d/60-oracle.conf
    
  9. คัดลอกสิ่งต่อไปนี้ลงในไฟล์และบันทึก:

    # 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. ตรวจสอบการเปลี่ยนแปลงโดยใช้คำสั่ง:

    sudo cat /etc/sysctl.d/60-oracle.conf 
    
  11. คุณควรเห็นสิ่งที่คุณป้อนก่อนหน้านี้ ตอนนี้โหลดพารามิเตอร์เคอร์เนล:

    sudo service procps start
    
  12. ตรวจสอบว่ามีการโหลดพารามิเตอร์ใหม่โดยใช้:

    sudo sysctl -q fs.file-max
    

    คุณควรเห็นค่าไฟล์สูงสุดที่คุณป้อนไว้ก่อนหน้านี้

  13. ตั้งค่าจุดเชื่อมต่อ / dev / shm สำหรับ Oracle สร้างไฟล์ต่อไปนี้โดยใช้คำสั่ง:

    sudo pico /etc/rc2.d/S01shm_load
    
  14. คัดลอกสิ่งต่อไปนี้ลงในไฟล์และบันทึก

    #!/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. เปลี่ยนการอนุญาตของไฟล์โดยใช้คำสั่ง:

    sudo chmod 755 /etc/rc2.d/S01shm_load
    
  16. ตอนนี้รันคำสั่งต่อไปนี้:

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

    ตอนนี้รีบูตระบบของคุณ

ขั้นตอนที่ 3: ติดตั้ง Oracle

  1. ติดตั้ง oracle DBMS โดยใช้คำสั่ง:

    sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb
    
  2. กำหนดค่า Oracle โดยใช้คำสั่ง:

    sudo /etc/init.d/oracle-xe configure 
    
  3. ตั้งค่าตัวแปรสภาพแวดล้อมโดยการแก้ไขไฟล์. bashrc ของคุณ:

    pico ~/.bashrc
    
  4. เพิ่มบรรทัดต่อไปนี้ในตอนท้ายของไฟล์:

    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. โหลดการเปลี่ยนแปลงโดยดำเนินการโปรไฟล์ของคุณ:

    . ~/.bashrc
    
  6. เริ่ม Oracle 11gR2 XE:

    sudo service oracle-xe start
    
  7. เพิ่มผู้ใช้ YOURUSERNAME ให้กับกลุ่ม dba โดยใช้คำสั่ง:

    sudo usermod -a -G dba YOURUSERNAME
    

ขั้นตอนที่ 4: การใช้ Oracle XE Command Shell

  1. เริ่มต้นเซิร์ฟเวอร์ Oracle XE 11gR2 โดยใช้คำสั่ง:

    sudo service oracle-xe start
    
  2. เริ่มเชลล์บรรทัดคำสั่งในฐานะผู้ดูแลระบบโดยใช้คำสั่ง:

    sqlplus sys as sysdba
    

    ป้อนรหัสผ่านที่คุณให้ไว้ขณะกำหนดค่า Oracle ก่อนหน้า ตอนนี้คุณจะอยู่ในสภาพแวดล้อม SQL ที่เข้าใจคำสั่ง SQL เท่านั้น

  3. สร้างบัญชีผู้ใช้ทั่วไปใน Oracle โดยใช้คำสั่ง SQL:

    create user USERNAME identified by PASSWORD;
    

    แทนที่ USERNAME และ PASSWORD ด้วยชื่อผู้ใช้และรหัสผ่านที่คุณเลือก โปรดจำชื่อผู้ใช้และรหัสผ่านนี้ หากคุณมีข้อผิดพลาดในการดำเนินการด้านบนพร้อมข้อความเกี่ยวกับ resetlogs ให้ดำเนินการคำสั่ง SQL ต่อไปนี้แล้วลองอีกครั้ง:

    alter database open resetlogs;
    
  4. มอบสิทธิพิเศษให้กับบัญชีผู้ใช้โดยใช้คำสั่ง SQL:

    grant connect, resource to USERNAME;
    

    แทนที่ USERNAME และ PASSWORD ด้วยชื่อผู้ใช้และรหัสผ่านที่คุณเลือก โปรดจำชื่อผู้ใช้และรหัสผ่านนี้

  5. ออกจาก sys admin shell โดยใช้คำสั่ง SQL:

    exit;
    
  6. เริ่มเชลล์ commandline ในฐานะผู้ใช้ทั่วไปโดยใช้คำสั่ง:

    sqlplus
    

    ตอนนี้คุณสามารถรันคำสั่ง sql ...


ในขั้นตอนที่ 6 ฉันได้รับ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 ฉันได้รับข้อผิดพลาดเดียวกัน แม้ว่าฉันไม่สามารถเข้าใจคำสั่งเหล่านี้ได้แต่ฉันพยายามและกำหนดค่า oracle XE หรือ linux mint
Jeet

@Skynet และก็ลองลิงค์นี้ ค้นหาเนื้อหาอ้างอิงในความคิดเห็นหลังจากที่ขยาย: เพื่อให้มันทำงานฉันต้องเพิ่มบรรทัดต่อไปนี้ในตอนต้นของไฟล์ "/etc/init.d/oracle-xe"...b ระหว่างขั้นตอน 6 (i) และ 6 (ii) ถ้า [-L / dev / shm]; ดังนั้น rm -rf / dev / shm mkdir / dev / shm เมานต์ -t tmpfs shmfs -o ขนาด = 2048m / dev / shm fi ถ้า [! -d / var / lock / subsys]; จากนั้น mkdir / var / lock / subsys touch / var / lock / subsys / list fi
Jeet

1
/etc/rc2.d/S01shm_loadดูเหมือนจะหายไป;;ซึ่งบ่งบอกถึงการสิ้นสุดของทางเลือกที่ 7 บรรทัด
3523935

2
ต้องใช้sudo service procps restartแทนsudo service procps start
ossbuntu

0

ขอบคุณสำหรับการสอนโดยละเอียด แต่ฉันได้รับข้อผิดพลาด

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

sudo /etc/init.d/oracle-xe configureในขั้นตอน ดังนั้นตามที่แนะนำในhttp://meandmyubuntulinux.blogspot.in/2012/05/installing-oracle-11g-r2-express.htmlฉันเพิ่มบรรทัดต่อไปนี้ใน/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

... และมันก็ใช้ได้ดีสำหรับฉัน


คุณได้รับข้อผิดพลาดเนื่องจากมีข้อผิดพลาดในสคริปต์/etc/rc2.d/S01shm_loadในคำตอบของ Saikat การแก้ไขนี่จะเป็นวิธีที่สะอาดกว่า ฉันจะแก้ไขคำตอบด้วยสคริปต์ที่ถูกต้อง
อาหาร

ลืมไปเลยว่าผู้ตรวจสอบเป็นคนงี่เง่า หลังจากความพยายามครั้งแรกและครั้งที่สองในการแก้ไขสคริปต์ล้มเหลวฉันก็ยอมแพ้ เห็นได้ชัดว่ามันสำคัญกว่าที่จะต้องลงคะแนนให้อย่างไร้เหตุผลและพยายามทำความเข้าใจว่ากำลังทำอะไรอยู่
อาหาร

0

ทำงานได้ดี แต่ฉันได้รับข้อผิดพลาดต่อไปนี้:

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!

มองมัน:

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

ฉันแก้ไขได้โดยเพิ่มผู้ใช้:

sudo adduser oracle

หวังว่านี่จะช่วยใครซักคน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.