May the source be with you, but remember the KISS principle ;-)
Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
(slightly skeptical) Educational society promoting "Back to basics" movement against IT overcomplexity and  bastardization of classic Unix

Installation of Oracle 11g on SLES 11


Installing Oracle Database 11g

Recommended Links  Installation Checklist Oracle kernel parameters tuning on Linux Semaphore and Shared Segment Kernel Parameters Packages




    Humor Etc

There are two ways to create Oracle environment in SLES 11:

Fixing damage from orarun

Suse orarun package cause oracle installer to report "fake" errors such as

file-max                  size is currently 6553600
   increase to       6815744
despite the fact that you put this setting in /etc/sysctl.conf. This is because it is designed to overwrite setting from /etc/sysctl.conf  with its own. Which is strange design decision but that's the design decision they made.

Due to this I do not recommend installing orarun during the initial installation on Suse 11.

After the initial installation just install dependencies but not the package itself.

If you did install the package quick fix that I used is as following

mkdir /root/orarun_junk
cd /init.d
mv oracle /root/orarun_junk
rm `find . -name "*oracle"`
mv  /etc/profile.d/oracle* /root/orarun_junk
mv /etc/sysconfig/oracle /root/orarun_junk
That does not fix all the damage (it also inserts unnecessary line in login PAM as well, but you can live with it. At least after the reboot you can install oracle without errors.

Installing without orarun

We will discuss the second way here, as orarrun looks over-engineered and some design decision are questionable

There are three main steps in Installation of Oracle on SLES 11:

There are also several types of common installation errors that you need to be aware of

Pre-Installation Tasks

If you selected orarrun package during the installation, deinstall  if forcefully without deinstalling dependencies

1. Create oracle account and dba group

su - 
# groupadd -g 5000 dba 
# useradd -u 5001 -g dba oracle 
# mkdir /home/oracle 
# chown oracle:dba /home/oracle 
2. Edit the /etc/sysctl.conf and add following lines:
# Controls the maximum number of shared memory segments, in pages
# For 10g, uncomment 'fs.file-max = 327679', and comment 'fs.file-max = 6553600' entry and re-run sysctl -p
# fs.file-max = 327679
fs.file-max = 6815744

# Oracle-Validated setting for kernel.msgmni is 2878
kernel.msgmni = 2878

# Oracle-Validated setting for kernel.msgmnb is 65536
kernel.msgmnb = 65536

# Oracle-Validated setting for kernel.sem is '250 32000 100 142'
kernel.sem = 250 32000 100 142

# Oracle-Validated setting for kernel.shmmni is 4096
kernel.shmmni = 4096

# Oracle-Validated setting for kernel.shmall is 1073741824
kernel.shmall = 1073741824

# Oracle-Validated setting for kernel.shmmax is 4398046511104 on x86_64 and 4294967295 on i386 architecture. Refer Note id 567506.1
kernel.shmmax = 4398046511104

# Oracle-Validated setting for kernel.sysrq is 1
kernel.sysrq = 1

# Oracle-Validated setting for net.core.rmem_default is 262144
net.core.rmem_default = 262144

# For 11g, Oracle-Validated setting for net.core.rmem_max is 4194304
# For 10g, uncomment 'net.core.rmem_max = 2097152', comment 'net.core.rmem_max = 4194304' entry and re-run sysctl -p
# net.core.rmem_max = 2097152
net.core.rmem_max = 4194304

# Oracle-Validated setting for net.core.wmem_default is 262144
net.core.wmem_default = 262144

# For 11g, Oracle-Validated setting for net.core.wmem_max is 1048576
# For 10g, uncomment 'net.core.wmem_max = 262144', comment 'net.core.wmem_max = 1048576' entry for this parameter and re-run sysctl -p
# net.core.wmem_max = 262144
net.core.wmem_max = 1048576

# Oracle-Validated setting for fs.aio-max-nr is 3145728
fs.aio-max-nr = 3145728

# For 11g, Oracle-Validated setting for net.ipv4.ip_local_port_range is 9000 65500
# For 10g, uncomment 'net.ipv4.ip_local_port_range = 1024 65000', comment 'net.ipv4.ip_local_port_range = 9000 65500' entry and re-run sysctl -p
# net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.ip_local_port_range = 9000 65500

# Oracle-Validated setting for vm.min_free_kbytes is 51200 to avoid OOM killer
vm.min_free_kbytes = 51200
Note: You need to execute "sysctl -p" command to apply above settings.

Recommendation to insert in the file /etc/pam.d/login file the line:

session required
is bogus as this line exists in common_session include used in login (orarun does this and in this case you can delete the line).

Edit the /etc/security/limits.conf file and add following lines:

## added by orarun ##
oracle	soft	nproc	2047
oracle	hard	nproc	16384
oracle	soft	nofile	1024
oracle	hard	nofile	65536
3. Creating oracle directories

# mkdir /opt/oracle
# mkdir /opt/oracle/111
# chown -R oracle:dba /opt/oracle

4. Setting Oracle Enviroment
Edit the /home/oracle/.bash_profile file and add following lines:
Use this settings for 64bit (x86_64) architecture.



Save the .bash_profile and execute following commands for load new enviroment:

cd /home/oracle
. .bash_profile

5. For OpenSuSE only!:Backup original /etc/SuSE-release and change the distribution and release in original file. Change content as following:

SUSE Linux Enterprise Server 10 (x86_64)


1. Download and install required .rpm packages.  You can get them by checking the dependicies for orarun package.

Installation of oracle database is standard and is well described in Oracle publications.

Post-Instalation Tasks

1. Create an init script for auto startup and shutdown of  the database and listener

See Oracle Database HOWTO Automatic Startup and Shutdown

Execute (as root) following commands (First script change the permissions, second script is configuring execution for specific runlevels):

chmod 750 /etc/init.d/oracle
chkconfig --add oracle --level 0356

2. (Optional) Auto Startup and Shutdown of Enterprise Manager Database Control

As root user create new file "oraemctl" (init script for startup and shutdown EM DB Console) in /etc/init.d/ directory with following content:

#! /bin/bash
# /etc/init.d/oracle
# Provides: oracle
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Starting and stopping Oracle Database
. ~oracle/.profileRETVAL=0

function start {
# Start daemons.
   [ -x /dba_scripts/ ] || exit 4
   su - oracle -c /dba_scripts/ tee /var/log/oracle/startup.log 2>&1
   return 0

function stop {
# Stop daemons.
   echo -n $"Shutting down oracle"
   [ -x /dba_scripts/ ] || exit 4
   su - oracle -c /dba_scripts/ tee /var/log/oracle/stop.log 2>&1
   return 0

# See how we were called.
case "$1" in
     echo $"Usage: $0 {start|stop|reload|restart}"
     exit 2
exit 0

Change the permissions, and enable init scripts for specific runlevels:

chmod 750 /etc/init.d/oracle
chkconfig --add oracle --level 0356

Top Visited
Past week
Past month


Old News ;-)

Installing Oracle 10g on SLES 9, SUSE Linux Professional 9.1, 9.2, and 9.3 (Oracle Database 10g Installation, Oracle10g, Novell, SLES-9, SLES9)

For an Oracle 10g database, some kernel parameters need to be changed to meet Oracle's requirements . For Oracle10g, the following kernel parameters have to be set to values greater than or equal to the recommended values which can be changed in the proc filesystem:
shmmax  = 2147483648     (To verify, execute: cat /proc/sys/kernel/shmmax)
shmall  = 2097152        (To verify, execute: cat /proc/sys/kernel/shmall)
shmmni  = 4096           (To verify, execute: cat /proc/sys/kernel/shmmni)

semmsl  = 250            (To verify, execute: cat /proc/sys/kernel/sem | awk '{print $1}')
semmns  = 32000          (To verify, execute: cat /proc/sys/kernel/sem | awk '{print $2}')
semopm  = 100            (To verify, execute: cat /proc/sys/kernel/sem | awk '{print $3}')
semmni  = 128            (To verify, execute: cat /proc/sys/kernel/sem | awk '{print $4}')

file-max = 65536         (To verify, execute: cat /proc/sys/fs/file-max)

ip_local_port_range = 1024 65000
                         (To verify, execute: cat /proc/sys/net/ipv4/ip_local_port_range)
To see the above kernel parameters with one command, you can type:
su - root
sysctl -a |egrep "shmmax|shmall|shmmni|sem|file-max|ip_local_port_range"

For ip_local_port_range Oracle recommends to set the local port range for outgoing messages to "1024 65000" which is needed for high-usage systems. This kernel parameter defines the local port range for TCP and UDP traffic to choose from.
For more information on shmmax, shmmni, and shmall, see Setting Shared Memory.
For more information on semmsl, semmni, semmns, and semopm, see Setting Semaphores.
For more information on filemax, see Setting File Handles.

NOTE: Do not change the value of any kernel parameter on a system where it is already higher than listed as minimum requirement.

For SLES-9, SLP-9.1, SLP-9.2, and SLP-9.3 I had to increase the kernel parameters shmmax, semopm, file-max, ip_local_port_range to meet the minimum requirement. To change these kernel parameters permanently, add the following lines below to the configuration file /etc/sysctl.conf. This file is used during the boot process to change default kernel settings. Note that in SLES-9 and SLP-9.1 the /etc/sysctl.conf file does not exist. Simply create the file if it does not exist on your system.

net.ipv4.ip_local_port_range=1024 65000
kernel.sem=250 32000 100 128
Or simply run the following command to add new kernel settings:
su - root
cat >> /etc/sysctl.conf << EOF
kernel.sem=250 32000 100 128
net.ipv4.ip_local_port_range=1024 65000

In SLES-9 and SLP-9.1 you also have to instruct SUSE Linux to read the /etc/sysctl.conf file during the boot process. This is done by enabling the boot.sysctl system service:
su - root
# chkconfig boot.sysctl
boot.sysctl  off
# chkconfig boot.sysctl on
# chkconfig boot.sysctl
boot.sysctl  on
To load the new kernel settings from the /etc/sysctl.conf file without reboot, execute the following command:
su - root
# sysctl -p
kernel.shmmax = 2147483648
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

Recommended Links

Installing Oracle on SuSE Linux Enterprise Server - Oracle Wiki

Oracle Database 11g R2 ( on SUSE Linux Enterprise Server 11 ( How to Install ) by Arun Singh
Novell Inc.

Oracle 11g R1( on SUSE Linux Enterprise Server 10 (SP1) - x86 ( How to Install ) by Arun Singh
Novell Inc.

Installing Oracle 10g on SLES 9, SUSE Linux Professional 9.1, 9.2, and 9.3 (Oracle Database 10g Installation, Oracle10g, Novell, SLES-9, SLES9)

Installing Oracle Database 10g Release 2 on Linux x86

Oracle (10gR2) on SUSE LINUX Outdated

Oracle 9i for x86-64 on SUSE LINUX Enterprise Server 9 AMD64 version.

Oracle 10g for x86 on SUSE LINUX Enterprise Server 9 AMD64 version. *obsolete (but still useful)*

Oracle for x86-64 on SUSE LINUX Enterprise Server 9 AMD64.

Oracle for x86 on SUSE LINUX Enterprise Server 9 x86.

Oracle 10g for x86 on SUSE LINUX Enterprise Server 9 x86 version (cut and paste of the previous document).

Grid Control on SUSE LINUX Enterprise Server 9. *the hard way!*

Oracle RAC 10g on SLES9 for x86 systems.

Oracle 10gR2 client on Suse 11 for x86 systems.

Application Server 10gR2 ( on SLES9 for x86 systems. *digression on LD_ASSUME_KERNEL!!!*

Application Server 10.1.3 (preview 4) on SLES9.

Asynch I/O on SLES. *updated and not obsolete anymore*

Using HUGETABLE in oracle and "ORA-27125: unable to create shared memory segment".

Other Topics:

Oracle myths for unix sysadmins * check this out if you want to open a discussion *

Clustering third party applications with 10gR2 clusterware *supposed to be an article *

Generic Connecivity: connecting oracle to another DB.

Advanced Security

Oracle on Ubuntu *Work in progress: we hope for an enterprise distribution soon*


Oracle Technology Network (where you can find the software for the installation).

Novell webpage for SuSE and Oracle with the original installation documents by Arun Singh.



Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy


War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes


Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law


Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Haterís Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D

Copyright © 1996-2021 by Softpanorama Society. was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to to buy a cup of coffee for authors of this site


The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the Softpanorama society. We do not warrant the correctness of the information provided or its fitness for any purpose. The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last modified: March, 12, 2019