This discussion is archived
8 Replies Latest reply: Jul 29, 2011 1:12 AM by 878445 RSS

Install Oracle 11gR2 Express Edition on Ubuntu Linux 11.04 (64-bit) Howto

Dude! Guru
Currently Being Moderated
h2. Install Oracle 11gR2 Express Edition on Ubuntu Linux 11.04 (64-bit) Howto

Version: B
Author: Dude, 24. May 2011

The following are step by step instructions how to install Oracle 11gR2 Express Edition (Beta) under Linux Ubuntu 11.04, 64-bit.
Access to the Internet is required.

The instructions cover the following additional topics:

- Converting Red Hat based Oracle XE installer to Ubuntu.
- Work-around for missing /sbin/chkconfig tool.
- Install Oracle XE into a different directory or disk volume.
- Relocate and configure the Oracle user and default login directory.
- Uninstall, reconfigure and perform first database backup.
- Notes and web links.
- Troubleshooting


h3. A) System Setup and Prerequisites
h4. A.1. System Access

You will need terminal command line, root and system console access to perform the setup tasks.

To open a Terminal at the system console:
Menu Applications > Accessories > Terminal
The following commands will enable remote ssh login with root access:
sudo apt-get install openssh-server
sudo passwd root

Verify: 
ssh root@xe_server_host_name
h4. A.2. Software Prerequisites

The following is required in order to install Oracle 11gR2 XE:
sudo apt-get install alien libaio1 unixodbc
The following is not required, but it will fix backspace and arrow keys in case you prefer using the vi-editor:
sudo apt-get install vim
h4. A.3. System Swap space

Minimum swap space required is 2 GB. You can increase swap space if necessary using a swap file:
To analyze current swap space and memory configuration:
sudo cat /proc/meminfo

To install a 1 GB swapfile named swapfile in /, for example:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
(this may take a while)
sudo mkswap /swapfile
sudo swapon /swapfile
sudo cp /etc/fstab /etc/fstab.orig
sudo echo '/swapfile swap swap defaults 0 0' >> /etc/fstab

Verify:
sudo swapon -a
sudo swapon -s
h4. A.4. Kernel Parameters

Oracle 11g XE requires the following additional kernel parameters:
sudo nano /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.

Verify: 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
h4. A.5. Oracle Installation Directory

The current Oracle Installation Guide uses the same directory like in previous versions: /usr/lib/oracle/xe/app/oracle/product/11.2.0/server. However, the current Beta installation uses Oracle Flexible Architecture (OFA) and installs into /u01/app/oracle/product/11.2.0/xe. Due to size limitations of Oracle XE it may not be necessary to store the installation to a specific directory or separate volume, but it is possible:

Install Oracle XE to separate disk volume:
From the system console menu: System > Administration > Disk Utility
Select "ext3" filesystem for Oracle compatibility and specify a Volume label, e.g. Oracle.
Notice the device name e.g. /dev/sdb

Get the drive UUID:
sudo blkid
e.g. /dev/sdb: UUID="d19a2d8f-da43-4802-8bdb-0703c855e23a"

Modify /etc/fstab to automatically mount the volume at system startup:
sudo cp /etc/fstab /etc/fstab.original
sudo nano /etc/fstab

(Add the following, using determined UUID, for exmple)

UUID=d19a2d8f-da43-4802-8bdb-0703c855e23a /u01 ext3 defaults,errors=remount-ro 0 1

(Save the file)

Create the mount-point, mount the new volume and set ownership and privileges:
sudo mkdir /u01
sudo mount -a
sudo chown root:root /u01
sudo chmod 755 /u01

Verify: 
df -h
or restart the system
You can also install Oracle XE into a specific directory:
Create a symbolic link to store the installation into an existing directory, for instance:
sudo mkdir /home/oracle-xe
sudo ln -s /home/oracle-xe /u01
h3. C) Oracle 11g XE Download and Installation
h4. C.1. Download and convert the Installer from Red Hat to Ubuntu

Please see section E.3. to download the Oracle 11gR2 XE installer.
Select the version listed for Linux x64.
sudo unzip linux.x64_11gR2_OracleXE.zip
sudo alien --to-deb --scripts oracle-xe-11.2.0-0.5.x86_64.rpm
(This may take a while)
h4. C.2. Create a special chkconfig script

The Red Hat based installer of Oracle XE 11gR2 beta 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:
Create /sbin/chconfig:
sudo nano /sbin/chkconfig

(Cut and paste the following)

#!/bin/bash
# Oracle 11gR2 XE installer chkconfig hack for Debian by Dude
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 file)

Set appropriate execute privileges:
chmod 755 /sbin/chkconfig
Note: You should remove the /sbin/chkconfig file after successful installation of Oracle XE.


h4. C.3. Install and configure Oracle XE
sudo dpkg --install ./oracle-xe_11.2.0-1.5_amd64.deb
/etc/init.d/oracle-xe configure
(This will take a while)

Remove the /sbin/chkconfig script, which is no longer needed.
sudo rm /sbin/chkconfig
h4. C.4. Relocate and Configure the Oracle user login

The Oracle XE installer specifies /u01/app/oracle as the login directory for the Oracle user. Although not really necessary, the following will relocate the Oracle user $HOME to a standard location and create standard /etc/skel login files:
Exit all Oracle user sessions:
sudo /etc/init.d/oracle-xe stop
sudo kill -9 `ps -ef | grep oracle | grep -v grep | awk '{print $2}'`
sudo userdel oracle
sudo useradd -s /bin/bash -G dba -g dba -m oracle
sudo passwd oracle

Verify: 
sudo id oracle
-> uid=1001(oracle) gid=1001(dba) groups=1001(dba)
h4. C.5. Setup Oracle environment variables

In order to use sqlplus and other tools, the Oracle account requires certain environment variables. The following will set these variables automatically at every interactive Oracle login:
sudo echo '. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh' >> /home/oracle/.bashrc
h4. C.6. Oracle sudo root access

It is not essential to allow the Oracle user to use sudo, but it is convenient:
usermod -G admin oracle

Verify: 
id oracle
-> uid=1001(oracle) gid=1001(dba) groups=1001(dba),120(admin)
sudo su -
-> Enter Oracle account password
h4. C.7. Oracle 11g XE Post-installation

After you install Oracle Database XE, its graphical user interface is only available from the local server, but not remotely.
The following will correct the problem if necessary:
Login as user Oracle or use:
su - oracle
sqlplus / as sysdba

At the SQL prompt, enter the following command:
EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
exit
h3. D) Unintstall, Reconfigure and Troubleshooting
h4. D.1. Uninstall Oracle 11g XE

The following will completely uninstall and remove Oracle 11g XE:
Login as user root:
sudo su -
/etc/init.d/oracle-xe stop
dpkg --purge oracle-xe
rm -r /u01/app
rm /etc/default/oracle-xe
update-rc.d -f oracle-xe remove
h4. D.2. Reconfigure Oracle 11g XE

Type the following in a terminal window:
/etc/init.d/oracle-xe stop
sudo rm /etc/default/oracle-xe
/etc/init.d/oracle-xe configure
h4. D.3. Enable Archivelog mode and perform a database backup
Login as user Oracle:
su - oracle
sqlplus / as sysdba

At the SQL prompt, enter the following commands:
shutdown immediate
startup mount
alter database archivelog;
alter database open;
exit

Login to system console of the Oracle user account:
Select Applications > Oracle Database 11g Express Edition > Backup Database
h3. E) Notes
h4. E.1. Oracle 11g XE limitiations overview

- 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.
- HTTPS is not supported natively with the HTTP listener built into Oracle Database XE.

h4. E.2. Documentation and Links

Official documentation for Oracle 11gR2 XE can be found at:
http://www.oracle.com/pls/xe112/homepage

h4. E.3. Oracle 11g XE downloads

The Installer is available from the Oracle Technology Network at:
http://www.oracle.com/technology/products/database/xe
http://www.oracle.com/technetwork/database/express-edition/downloads/index.html

h4. E.4 APEX links and archives

The APEX archives can be found at:
http://www.oracle.com/technetwork/developer-tools/apex/application-express/all-archives-099381.html
The APEX download site is:
http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html

h3. F) Troubleshooting

... in progress

Regards and best of luck!

Edited by: Dude on May 25, Version B: various corrections. chkconfig package (A.2.) not required.

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points