Friday 22 July 2011

Install oracle on 64b Ubuntu 10.04

This are the steps I took to install Oracle 11gR2 11.2.0.1 x86_64-bit in Ubuntu Linux 10.04 Intel x86_64-bit.

Oracle Installation:

Oracle Software PrerequisitesInstall required packages
sudo su - 
apt-get install build-essential libaio1 libaio-dev unixODBC unixODBC-dev pdksh expat sysstat libelf-dev elfutils lsb-cxx

To avoid error "linking ctx/lib/ins_ctx.mk...":
cd /tmp
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-17ubuntu1_amd64.deb
dpkg-deb -x libstdc++5_3.3.6-17ubuntu1_amd64.deb ia64-libs
cp ia64-libs/usr/lib/libstdc++.so.5.0.7 /usr/lib64/
cd /usr/lib64/
ln -s libstdc++.so.5.0.7 libstdc++.so.5
cd /tmp
wget http://mirrors.kernel.org/ubuntu/pool/universe/i/ia32-libs/ia32-libs_2.7ubuntu6.1_amd64.deb
dpkg-deb -x ia32-libs_2.7ubuntu6.1_amd64.deb ia32-libs
cp ia32-libs/usr/lib32/libstdc++.so.5.0.7 /usr/lib32/
cd /usr/lib32
ln -s libstdc++.so.5.0.7 libstdc++.so.5
cd /tmp
rm *.deb
rm -r ia64-libs
rm -r ia32-libs

To avoid error invoking target 'idg4odbc' of makefile:
ln -s /usr/bin/basename /bin/basename
To avoid errors when executing the post-install root.sh script:
ln -s /usr/bin/awk /bin/awk
Kernel Parameters
sudo su -
Make a backup of the original kernel configuration file:
cp /etc/sysctl.conf /etc/sysctl.original
Modify the kernel parameter file
echo "#">> /etc/sysctl.conf
echo "# Oracle 11gR2 entries">> /etc/sysctl.conf
echo "fs.aio-max-nr=1048576" >> /etc/sysctl.conf
echo "fs.file-max=6815744" >> /etc/sysctl.conf
echo "kernel.shmall=2097152" >> /etc/sysctl.conf
echo "kernel.shmmni=4096" >> /etc/sysctl.conf
echo "kernel.sem=250 32000 100 128" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range=9000 65500" >> /etc/sysctl.conf
echo "net.core.rmem_default=262144" >> /etc/sysctl.conf
echo "net.core.rmem_max=4194304" >> /etc/sysctl.conf
echo "net.core.wmem_default=262144" >> /etc/sysctl.conf
echo "net.core.wmem_max=1048586" >> /etc/sysctl.conf
echo "kernel.shmmax=2147483648" >> /etc/sysctl.conf
Note: kernel.shmmax = max possible value, e.g. size of physical memory in bytes
Load new kernel parameters
sysctl -p
Oracle Groups and Accounts
sudo su -
groupadd oinstall
groupadd dba
useradd -m -g oinstall -G dba oracle
usermod -s /bin/bash oracle
passwd oracle
groupadd nobody
usermod -g nobody nobody
id oracle
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)
Make a backup of the original file:
cp /etc/security/limits.conf /etc/security/limits.conf.original
echo "#Oracle 11gR2 shell limits:">>/etc/security/limits.conf
echo "oracle soft nproc 2048">>/etc/security/limits.conf
echo "oracle hard nproc 16384">>/etc/security/limits.conf
echo "oracle soft nofile 1024">>/etc/security/limits.conf
echo "oracle hard nofile 65536">>/etc/security/limits.conf
Oracle Directories

i.e. /u01/app for Oracle software and /u02/oradata for database files
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oraInventory
mkdir -p /u02/oradata
chown oracle:oinstall /u01/app/oracle
chown oracle:oinstall /u01/app/oraInventory
chown oracle:oinstall /u02/oradata
chmod 750 /u01/app/oracle
chmod 750 /u01/app/oraInventory
chmod 750 /u02/oradata
Execute the Oracle Universal Installer:
Login as the Oracle user - do not use 'su' command
ssh -Y oracle@server_address
See Tips below for mounting the Oracle installation source
/path_to_installer/runInstaller
Note: Select the "Ignore All" button at the Prerequisite Checks dialog.

Check some more tips after the jump.


Tips:

Allow the Oracle user to gain root access:
Edit /etc/sudoers and add the following:
# Members of the oinstall group may gain root privileges
%oinstall ALL=(ALL) ALL
Connect from a X-Windows enabled terminal with trusted X11 forwarding:
Using 'su - oracle' will break X screen forwarding or proper display when using Oracle runInstaller

You should either log out root and log in as user "oracle", or use SSH with X forwarding from a remote system or local terminal screen: e.g.
# ssh -X oracle@localhost
# ssh -X oracle@server_hostname_or_ip
Then simply type "xclock" to see if X forwarding to your local X-server works.
Typing 'xclock' in the terminal window should display a clock on your desktop.

Note: When using SSH you should not manually configure DISPLAY variables and using 'xhost' is also not necessary.
When making a remote connection, the program you use to connect to Linux need to be as an X-server to process the requests from the Linux client application.
There are several free products availabe for windows, e.g. MobaXterm. MacOSX users can use Apple's X11 from optional install.

Mount an iso disk image:
mount -o loop /u02/oradata/oracle11gR2.iso /mnt/
Note: For this to work the iso image needs to be copied to a Linux filesystem.
Avoid Oracle runInstaller ".oui: No such file" / "bad interpreter: Permission denied:
Logout your current X-session and login as user Oracle
Insert the Oracle Installation DVD

Or from a remote terminal session:
Insert the Oracle Installation DVD
sudo umount /dev/sr0
Create a new session as user Oracle
ssh -Y oracle@server_address
sudo mount /dev/sr0 /media
/media/database/runInstaller
If you see "runinstaller" instead of "runInstaller" you can try the following:
sudo mount -o loop,norock /dev/cdrom /media
Note the OUI installer fails if there are spaces in the path to runInstaller

Blank windows in the Oracle Database Creation Assistant (DBCA)
Disable Visual Effects using System -> Preferences -> Appearance, Visual Effects

references:
http://forums.oracle.com/forums/thread.jspa?threadID=1115155
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html

Possibly Related Posts

1 comment: