This discussion is archived
3 Replies Latest reply: May 17, 2011 10:03 AM by bluefrog RSS

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

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

Version C - update May 31, 2011
Author: Dude

Note: The following instructions work for Oracle 11gR2 ** (x86_64) and have also been tested with an Out-of-Place upgrade  to **. Just select the "ignore all" button at the prerequisite checks. It worked fine, including the Network Configuration and Database Upgrade Assistant.

If you go straight to you may not need to install any 32-bit libraries, but I didn't try it.

Please note that Oracle 11gR2 on Ubuntu Linux is not supported by Oracle.

h3. System setup and Prerequisites

The following assumes a default installation of Ubuntu 11.04, 64-bit, configured with access to the Internet.

You will need Terminal command line and Console access to perform the setup tasks. To open a Terminal on the system console:
Menu Applications => Accessories => Terminal
To enable remote ssh login and root access, type the following commands:
sudo apt-get install openssh-server
sudo passwd root
h4. 1. Required 64-bit and 32-bit software packages

The best way to install packages is to use the standard debian package manager.
Open a Terminal and enter the following commands to install required packages:
sudo apt-get install libaio1
sudo apt-get install libaio-dev
sudo apt-get install unixODBC
sudo apt-get install unixODBC-dev
sudo apt-get install expat
sudo apt-get install sysstat
sudo apt-get install libelf-dev
sudo apt-get install elfutils
sudo apt-get install lsb-cxx
sudo apt-get install pdksh
sudo sudo apt-get install libstdc++5
sudo sudo apt-get install ia32-libs
The following is not required, but will fix backspace and arrow keys in the vi-editor:
sudo apt-get install vim
h4. 2. Utilities and Libraries

The Oracle installation expects certain utilities and libraries in different locations:
sudo ln -s /usr/bin/basename /bin/basename
sudo ln -s /usr/bin/awk /bin/awk

sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
sudo ln -s /usr/lib/x86_64-linux-gnu/ /usr/lib64/

sudo ln -s /lib/x86_64-linux-gnu/ /lib64
h4. 3. Kernel Parameters

Oracle requires the following additional kernel parameters:
Create a kernel parameter file:
sudo cat - >> /etc/sysctl.d/60-oracle.conf

(then cut & paste the following)

# Oracle 11gR2 kernel parameters
net.ipv4.ip_local_port_range=9000 65500
kernel.sem=250 32000 100 128

(then type Ctrl-d to write 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.aio-max-nr
-> fs.aio-max-nr = 1048576
h4. 4. Oracle Account and Directories

Type the following commands to create necessary Oracle accounts, groups and directories:
sudo groupadd oinstall
sudo groupadd dba
sudo useradd -m -g oinstall -G dba oracle
sudo usermod -s /bin/bash oracle
sudo passwd oracle
sudo groupadd nobody
sudo usermod -g nobody nobody

Verify: sudo id oracle
-> uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)
Modify Oracle account shell limits:
Make a backup of the original file:
sudo cp /etc/security/limits.conf /etc/security/limits.conf.original

sudo cat - >> /etc/security/limits.conf

(then cut & paste the following)

#Oracle 11gR2 shell limits:
oracle soft nproc 2048
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

(then type Ctrl-d to write the file)

Verify: sudo cat /etc/security/limits.conf
Use an editor like vi or gedit and add the following to /etc/profile:
if [ "$USER" = oracle ]; then
   if [ $SHELL = "/bin/ksh" ]; then
      ulimit -p 16384
      ulimit -n 65536
      ulimit -u 16384 -n 65536
Create Oracle Directories, i.e.: /u01/app for Oracle software and /u02/oradata for database files:
sudo mkdir -p /u01/app/oracle
sudo mkdir -p /u01/app/oraInventory
sudo mkdir -p /u02/oradata
sudo chown oracle:oinstall /u01/app/oracle
sudo chown oracle:oinstall /u01/app/oraInventory
sudo chown oracle:oinstall /u02/oradata
sudo chmod 750 /u01/app/oracle
sudo chmod 750 /u01/app/oraInventory
sudo chmod 750 /u02/oradata
h3. Oracle Installation

For convenience, you might want to allow the Oracle user to use the "sudo" command. Enter the following at the command prompt:
usermod -G admin oracle
h4. 1. Mount Oracle Installation DVD

Automount does not mount CD/DVD media with execute privileges.

You can mount the Oracle installation media by typing:
sudo mount -o loop,norock /dev/cdrom /media
Or, if you prefer a permament and more convenient solution:
sudo apt-get install autofs

Find the following line in /etc/auto.misc:

cd              -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
and add "exec" so it look like:
cd              -fstype=iso9660,ro,nosuid,nodev,exec :/dev/cdrom
h4. 2. Oracle Universal Installer (OUI)

The Oracle Universal Installer (OUI) requires X-windows. There are two fundamentally different ways to open a GUI application:

- Remote Session
- Server Console

VNC/Remote Desktop:
- Shares the screen of the Server Console.
- Applications are using the X-server on the server.

SSH with X-forwarding:
- Applications use the the X-server running on your client's desktop.

In order to use SSH with X-Forwarding you will need to install a X-server on your workstation. You will find several commerical and free X11 software packages available. Some provide complex services. If you have to deal with MS-Windows you might find mobaxterm useful, which installs a single stand-alone application. It is available for free from Apple Mac users can install Apple's X11, which is included on the standard OS installation DVD. As of Mac OSX Snow Leopard (10.6), Xterm is integrated with the standard Terminal application.

Using SSH with X-Forwarding:
ssh -X oracle@your_server_ip_address
The advantage of SSH is that network communication is encrypted and your Firewall will only need TCP port 22 open and it should also work with Network Address Translation (NAT), which is typical for private network configurations. SSH with X-Forwarding will automatically set appropriate environment variables - you should not set the DISPLAY variables manually. You also do not have to configure X-server access control. On the contrary, when you use the server console to display a GUI application other than user root, you can use the "xhost +" command as root to disable X-server access control.

You can also use VNC using an SSH tunnel:
ssh -A -L 5902:localhost:5902 oracle@your_server_ip_address
Then open a VNC session to localhost:5902. 
Please check the Internet for information about how to setup VNC Server and where to obtain VNC client software.

To start the Oracle Installer:
The installer might take several seconds to appear at your desktop.

Note: Select the "Ignore All" button at the Prerequisite Checks dialog.

You can source execute Oracle's oraenv utility to set your shell environment variables after the installation:
 . /usr/local/bin/oraenv
Regards and best of luck.

Edited by: Dude on May 17, 2011: Added note about, various changes.

Edited by: Dude on May 25, 2011: Add oracle account to admin group instead of /etc/sudoers.

Edited by: Dude on May 31, 2011: Removed step to add software repository for ia32-libs.
It's not needed and causing subsequent update issues. I.e. Flashplugin.