Install Oracle 11g R2 on CentOS 5 x64

Change Linux "root" password
# passwd

Edit hostname
# echo `hostname`
get the host name "HOSTNAME"
# vi /etc/hosts
## 127.0.0.1 HOSTNAME.localdomain localhost

Disable selinux
# vi /etc/selinux/config
## SELINUX=disabled

Edit yum
# vi /etc/yum.repos.d/CentOS-base.repo

# yum update
# yum install xterm
# yum install vsftpd
# yum install openssh-clients openssh-server

Create "oracle" user and "dba" group

# groupadd dba
# groupadd oinstall
# useradd -g oinstall -G dba oracle
# passwd oracle
## useradd nobody

Create directory for oracle software & data

# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01/app
# chmod -R 775 /u01/app
# mkdir -p /u02/app/oracle/oradata
# chown -R oracle:oinstall /u02/app
# chmod -R 775 /u02/app

# mkdir -p /u03/app/oracle/fast_recovery_area
# chown -R oracle:oinstall /u03/app
# chmod -R 775 /u03/app

Configure some kernel parameters
# vi /etc/sysctl.conf

### added for Oracle 11.2.0.1
kernel.shmmax = 4294967295 // use current value
kernel.shmall = 2097152 // use current value
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.file-max = 6815744
fs.aio-max-nr = 1048576

Apply new setting
# sysctl -p

Edit the login library
# vi /etc/pam.d/login

## added for Oracle 11.2.0.1
session required pam_limits.so

Edit resource limit
# vi /etc/security/limits.conf

## added for Oracle 11.2.0.1
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240

Logon as oracle user
# su - oracle
# vi ~/.bash_profile

## add for Oracle 11.2.0.1
umask 022
export TMPDIR=/tmp
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.1/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
#export LD_LIBRARY_PATH=$ORACLE_HOME/lib_32_bit:/lib:/usr/lib
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=MY_DATABASE

Apply env
# source .bash_profile

Edit profile for root user
# su root
# vi /etc/profile

## add for Oracle 11.2.0.1
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

Ensure that the following packages are installed

# yum install compat-libstdc++-33.i386 binutils elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel glibc-headers gcc gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++ make sysstat unixODBC unixODBC-devel

Download the ORACLE installers:
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html

Important for xterm to open for oracle user. Open a new terminal window.
# xhost +
# su - oracle

Step 1: install oracle software

# cd /software/oracle11g
# chmod +x linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip
# unzip linux.x64_11gR2_database_1of2.zip
# unzip linux.x64_11gR2_database_2of2.zip
# cd database
# ./runInstaller

After installing
Run this as root user

# su root
# /u01/app/oraInventory/orainstRoot.sh
# /u01/app/oracle/product/11.2.1/dbhome_1/root.sh

Check the listener, can skip it
# su - oracle
# cd /$ORACLE_HOME/bin
# ./netca

Create oracle database MY_DATABASE

# cd /$ORACLE_HOME/bin
# ./dbca

Start oracle

# su - oracle
# export SID=MY_DATABASE
# /u01/app/oracle/product/11.2.1/dbhome_1/bin/lsnrctl start LISTENER
# sqlplus "/ as sysdba"
# startup;

Create Data files

# create tablespace MY_DATABASE_DATA datafile '/u01/app/oracle/oradata/MY_DATABASE/qip_data01.dbf' size 1024M AUTOEXTEND ON;
# create tablespace MY_DATABASE_INDEX datafile '/u01/app/oracle/oradata/MY_DATABASE/qip_index01.dbf' size 1024M AUTOEXTEND ON;
# create temporary tablespace MY_DATABASE_TEMP tempfile '/u01/app/oracle/oradata/MY_DATABASE/qip_temp01.dbf' size 500M AUTOEXTEND ON;
# create tablespace MY_DATABASE_LOB datafile '/u01/app/oracle/oradata/MY_DATABASE/qip_lob01.dbf' size 100M AUTOEXTEND ON;

Create user myuser (password is myuser_password) and set permission

CREATE USER myuser
IDENTIFIED BY myuser_password
DEFAULT TABLESPACE MY_DATABASE_DATA
TEMPORARY TABLESPACE MY_DATABASE_TEMP
QUOTA UNLIMITED ON MY_DATABASE_DATA
QUOTA UNLIMITED ON MY_DATABASE_LOB
QUOTA UNLIMITED ON MY_DATABASE_INDEX
;

Oracle Windows client - Oracle Linux server
To use a Windows client machine to connect to a Oracle DB on Linux machine.

- Install the Oracle client on Windows machine
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html
- Let's suppose we install the Oracle client at
C:\app\myname\product\11.2.0\
- Create a file name tnsnames.ora and put it in
C:\app\myname\product\11.2.0\client_1\network\admin\tnsnames.ora
- Set the Windows environment variable
TNS_ADMIN=C:\app\myname\product\11.2.0\client_1\network\admin
- Edit the tnsnames.ora content to match your configuration (change the SID MY_DATABASE and the IP 192.168.1.1)

# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.1/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
MY_DATABASE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = MY_DATABASE)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

- Test the connection from Windows command line
Sys admin

sqlplus sys/oracle@MY_DATABASE as SYSDBA

or a user

sqlplus myuser/myuser_password@MY_DATABASE
Loading