Instructions for Installing Oracle DBMS in Ubuntu VM

These install instructions are adapted from Me and My Ubuntu blog.

1. Download VirtualBox

Download the VirtualBox application for your host machine type from the virtual box download site.

2. Install VirtualBox

Doubleclick on the downloaded installer and follow the instructions.

3. Download Ubuntu

Download Ubuntu Desktop Edition (14.04 64 bit version). Note the directory where you downloaded it.

4. Start the VirtualBox application

5. Create a virtual machine (VM) and install Ubuntu

Make sure that you set the memory of the VM to be greater than 2GB and the storage of the VM to be at least 10GB. See screencast

6. Clone backups of your Ubuntu VM

See screencast

7. Download Oracle Database Express Edition

Download Oracle Database Express Edition 11g Release 2 for Linux x64.

See screencast

8. Follow pre-install instructions

See screencast, but note that the screencast did not include the last step before REBOOT listed below. You should execute the commands in the last step.

  1. Unzip using the command:
  2. Install required packages using the command:
    sudo apt-get install alien libaio1 unixodbc
  3. Convert RPM package format to DEB package format (that is used by Ubuntu) using the command:
    sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
  4. Create the required chkconfig script using the command::
    sudo pico /sbin/chkconfig
    The pico text editor is started and the commands are shown at the bottom of the screen. Now copy and paste the following into the file and save:
    # Oracle 11gR2 XE installer chkconfig hack for Ubuntu
    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
    update-rc.d oracle-xe defaults 80 01
  5. Change the permission of the chkconfig file using the command:
    sudo chmod 755 /sbin/chkconfig  
  6. Set kernel parameters. Oracle 11gR2 XE requires additional kernel parameters which you need to set using the command:
    sudo pico /etc/sysctl.d/60-oracle.conf
    Copy the following into the file and save:
    # Oracle 11g XE kernel parameters  
    net.ipv4.ip_local_port_range=9000 65000  
    kernel.sem=250 32000 100 128 
    Verify the change using the command:
    sudo cat /etc/sysctl.d/60-oracle.conf 
    You should see what you entered earlier. Now load the kernel parameters:
    sudo service procps start
    Verify the new parameters are loaded using:
    sudo sysctl -q fs.file-max
    You should see the file-max value that you entered earlier.
  7. Set up /dev/shm mount point for Oracle. Create the following file using the command:
    sudo pico /etc/rc2.d/S01shm_load
    Copy the following into the file and save.
    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
           mount -t tmpfs shmfs -o size=2048m /dev/shm ;;
    *) echo error
       exit 1 ;;
    Change the permissions of the file using the command:
    sudo chmod 755 /etc/rc2.d/S01shm_load
  8. [This step was not included in the screencast, but you should do it.] Execute the following commands:
    sudo ln -s /usr/bin/awk /bin/awk 
    sudo mkdir /var/lock/subsys 
    sudo touch /var/lock/subsys/listener 
  9. REBOOT your Ubuntu VM.

9. Install Oracle

See screencast for a recording of the following steps.

  1. Install the oracle DBMS using the command:
    sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb
  2. Configure Oracle using the command:
    sudo /etc/init.d/oracle-xe configure 
    Enter the following information:
  3. Setup environment variables by editting your .bashrc file:
    pico ~/.bashrc
    Add the following lines to the end of the file:
    export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
    export ORACLE_SID=XE
    export NLS_LANG=`$ORACLE_HOME/bin/`
    export ORACLE_BASE=/u01/app/oracle
    export PATH=$ORACLE_HOME/bin:$PATH
    Load the changes by executing your profile:
    . ~/.profile
  4. Start the Oracle 11gR2 XE:
    sudo service oracle-xe start
  5. Add user YOURUSERNAME to group dba using the command
    sudo usermod -a -G dba YOURUSERNAME

10. Using the Oracle XE Command Shell

See screencast for a recording of the following steps.

  1. Start the Oracle XE 11gR2 server using the command:
    sudo service oracle-xe start
    This step is most likely not necessary, but I am documenting the command here anyway.
  2. Start command line shell as the system admin using the command:
    sqlplus sys as sysdba
    Enter the password that you gave while configuring Oracle earlier. You will now be placed in a SQL environment that only understands SQL commands.
  3. Create a regular user account in Oracle using the SQL command:
    create user USERNAME identified by PASSWORD;
    Replace USERNAME and PASSWORD with the username and password of your choice. Please remember this username and password. If you had error executing the above with a message about resetlogs, then execute the following SQL command and try again:
    alter database open resetlogs
  4. Grant privileges to the user account using the SQL command:
    grant connect, resource to USERNAME;
    Replace USERNAME and PASSWORD with the username and password of your choice. Please remember this username and password.
  5. Exit the sys admin shell using the SQL command:
  6. Start the commandline shell as a regular user using the command:
    You will be prompted for a username and password. Once authenticated, you will be able to type in the standard SQL commands learned in class.

11. Clone your VM if everything was successful!