The Installer released by Oracle is only meant for 64-bit (x86_64) systems. If you wish to install the 32-bit version , see installing oracle xe on ubuntu 32-bit
It will consume, at most, processing resources equivalent to one CPU.
Only one installation of Oracle Database XE can be performed on a single computer.
The maximum amount of user data in an Oracle Database XE database cannot exceed 11 GB.
The maximum amount of RAM that Oracle XE uses cannot exceed 1 GB, even if more is available.
1) Download the Oracle 11gR2 express edition installer from the link given below:
( You will need to create a free oracle web account if you don't already have it )
2) Unzip it :
unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
3) Install the following packages :
sudo apt-get install alien libaio1 unixodbc vim
4) Convert the red-hat ( rpm ) package to Ubuntu-package :
sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
(Note: this may take a while , till that time you can go for step 5 )
5) Do the following pre-requisite things:
a) Create a special chkconfig script :
The Red Hat based installer of Oracle XE 11gR2 relies on /sbin/chkconfig, which is not used in Ubuntu. The chkconfig package available for the current version of Ubuntu produces errors and my not be safe to use. Below is a simple trick to get around the problem and install Oracle XE successfully:
sudo vim /sbin/chkconfig
(copy and paste the following into the file )
#!/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
Save the above file and provide appropriate execute privilege :
chmod 755 /sbin/chkconfig
b) Set the Kernel parameters :
Oracle 11gR2 XE requires to set the following additional kernel parameters:
sudo vim /etc/sysctl.d/60-oracle.conf
(Enter the following)
# 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
(Save the file)
Note: kernel.shmmax = max possible value , e.g. size of physical RAM ( in bytes e.g. 512MB RAM == 512*1024*1024 == 536870912 bytes )
Verify the change :
sudo cat /etc/sysctl.d/60-oracle.conf
Load new kernel parameters:
sudo service procps start
Verify: sudo sysctl -q fs.file-max
-> fs.file-max = 6815744
c) Increase the system swap space : Analyze your current swap space by following command :
free -m
Minimum swap space requirement of Oracle 11gR2 XE is 2 GB . In case, your is lesser , you can increase it by following steps in my one of previous post .
d) make some more required changes :
i) ln -s /usr/bin/awk /bin/awk
ii) mkdir /var/lock/subsys
iii) touch /var/lock/subsys/listener
6) Now you are ready to install Oracle 11gR2 XE. Go to the directory where you created the ubuntu package file in Step 4 and enter following commands in terminal :
i) sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb
Update : Before you proceed to next step , do have a look at this trouble-shooting post in order to avoid MEMORY TARGET or any other "shared memory" error.
ii) sudo /etc/init.d/oracle-xe configure
Enter the following configuration information:
A valid HTTP port for the Oracle Application Express (the default is 8080)
A valid port for the Oracle database listener (the default is 1521)
A password for the SYS and SYSTEM administrative user accounts
Confirm password for SYS and SYSTEM administrative user accounts
Whether you want the database to start automatically when the computer starts (next reboot).
7) Before you start using Oracle 11gR2 XE you have to set-up more things :
a) Set-up the environmental variables :
Add following lines to your .bashrc :
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
b) execute your .profile to load the changes:
. ./.profile
8) Start the Oracle 11gR2 XE :
sudo service oracle-xe start
The output should be similar to following :
user@machine:~$ sudo service oracle-xe start
Starting Oracle Net Listener.
Starting Oracle Database 11g Express Edition instance.
user@machine:~$
8) Create your user :
a) start sqlplus and login as sys :
sqlplus sys as sysdba
( provide the password you gave while configuring the oracle in Step 6 (ii) ).
This should come to following :
SQL*Plus: Release 11.2.0.2.0 Production on Wed May 9 12:12:16 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL>
b) Enter following on the sql prompt : Replace username and password by your desired ones.
SQL> create user username identified by password;
User created.
SQL> grant connect,resource to username;
Grant succeeded.
9) Now as you have created the user , you can login to it :
user@machine:~$ sqlplus
SQL*Plus: Release 11.2.0.2.0 Production on Wed May 9 12:28:48 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Enter user-name: temp
Enter password:
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production