IT-Blog
Oracle 11g Installation on Debian Squeeze
- Details
- Erstellt am Sonntag, 24. Oktober 2010 19:12

![]()
I recently needed to install a Oracle 11g Database on Debian, and wrote down the notes here. Please send me a message
if i missed a step or something is easier to achieve than I did.
install mandatory packages
some packages are probably not necessary, I put them together from old notes from me and several weblinks if you know which are not necessary send me a list and i will correct it
apt-get install binutils autoconf automake bzip2 gcc less libc6-dev make libstdc++5 unzip zlibc build-essentials libaio1
!!!doxygen reported as not needed by Tobia, tx for this! Also watch his comment if you use OpenVZ!
x-terminal
I chose fluxbox but you can also take anything else like xterm, gnome, kde….
apt-get install fluxbox
prepare user and groups
groupadd oinstall
groupadd dba
useradd oracle -m -d /home/oracle -g oinstall -G dba -s /bin/bash
passwd oracle
check environment
there are several kernel parametersw that have to be changed to succesfully install the database, here is a script that helps you to determine them
echo "sem: ";echo "min 250 32000 100 128"; echo "is " `cat /proc/sys/kernel/sem`; echo; \
echo "shmall: ";echo "min 2097152"; echo "is " `cat /proc/sys/kernel/shmall`; echo; \
echo "shmmax - should be able to hold the SGA - max 4G-1byte: ";echo "is " `cat /proc/sys/kernel/shmmax`; echo; \
echo "shmmni: ";echo "min 4096"; echo "is " `cat /proc/sys/kernel/shmmni`; echo; \
echo "file-max: ";echo "min 6815744"; echo "is " `cat /proc/sys/fs/file-max`; echo; \
echo "ip_local_port_range: ";echo "min/max 9000 65500"; echo "is " `cat /proc/sys/net/ipv4/ip_local_port_range`; echo; \
echo "rmem_default: ";echo "min 262144"; echo "is " `cat /proc/sys/net/core/rmem_default`; echo; \
echo "rmem_max: ";echo "min 4194304"; echo "is " `cat /proc/sys/net/core/rmem_max`; echo; \
echo "wmem_default: ";echo "min 262144"; echo "is " `cat /proc/sys/net/core/wmem_default`; echo; \
echo "wmem_max: ";echo "min 1048576"; echo "is " `cat /proc/sys/net/core/wmem_max`; echo; \
echo "aio-max-nr: ";echo "max 1048576"; echo "is " `cat /proc/sys/fs/aio-max-nr`; echo;
change necessary parameters
you have just to change the parameters that don't fit, but feel free to set them all to the minimum with this script
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
echo "kernel.shmall = 2097152" >> /etc/sysctl.conf
# !!!! needs to fit YOUR SGA (=main memory for database, be sure to have enough ram for PGA etc.)!!!!
echo "kernel.shmmax = 1200000000" >> /etc/sysctl.conf
#echo "kernel.shmmni = 4096" >> /etc/sysctl.conf
echo "fs.file-max = 6815744" >> /etc/sysctl.conf
#echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf
echo "net.core.rmem_default = 262144" >> /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 = 1048576" >> /etc/sysctl.conf
echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf
change some limits
also some limits have to be set
echo "oracle soft nproc 2047" >> /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
create directories
I prefer to separate software, database files and recovery files so i put them in /u01 /u02 /u03
mkdir -p /u01/app/oracle
mkdir -p /u02/oradata
mkdir -p /u03/flash_recovery_area
chown -R oracle:oinstall /u01 /u02 /u03
chmod -R 775 /u01 /u02 /u03
NOTE: seems they just say “recovery_area” or even “fast_recovery_area” now to the “flash_recovery_area”
additional steps
These steps prevent errors when the installer links some libraries
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/basename /bin/basename
finish preparations
reboot
== call the installer But before calling the installer check with above script if the kernel parameters are fine now
su oracle
/pathtoinstallfileshere/database/runInstaller -ignoreSysPrereqs
installer
The installer should guide you through each step in simple and advanced mode. When the requirements are checked you can savely bypass the warnings, because not everything can be checked on an unsupported ;-) environment.
!!!I really want to keep this up-to-date so please send me a note if i missed something or something is easier to handle than i did it!!!
Errors that can happen and how to bypass them
Added at 30.12.2010 including some more install packages some of the errors below did not happen when i wrote this article, it seems some new library versions etc. changed recentlyjava exception when calling the installer
happened at my side because I installed it over vnc This should help:
xhost localhost
Error in invoking target 'install' of makefile ins_ctx.mk
seems to be a problem with a newer? glibc version in the make.log file you should find something like
warning: libstdc++.so.5, needed by /u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib//libsc_fa.so, not found
simply install libstdc++5 apt-get install libstdc++5

Manfred Hofbauer
Posted at 2011-02-24 14:45:34
Thanks for the comment, I fixed the package name immediately.
@packages
did you have any problems without them? I think you need them some of the things for the transparent-gateway stuff.
@directories
Yes, u01/u02/u03 should be separate disks and should just be mounted to this directories.
But nevertheless it should be mentioned u01,u03,u03 are very often used as default location for the installation and I often experienced problems in the past, when not using default-locations (worse if you do it on Windows). That's the reason why I prefer to have a "not so evil but a bit evil" ;-) directory layout than to make another installation because of some oracle-bugs.
@environment
Good point. Due to changes in the environment variables (there is a ORACLE_BASE again...) I use the script $ORACLE_HOME/bin/oraenv to set my environment variables. Regard you have to put point+space before the call ". /u01/app/oracle/product/11.2.0/dbhome_2/bin/oraenv".
michaelW001
Posted at 2011-02-23 11:33:27
First let me say that this article has been really helpful to me in setting up oracle 11g on my Debian "squeeze". Except for a few minor glitches I didn't have any difficulties.
One glitch concerns the mandatory packages to be installed. The "build-essentials" package is indeed called "build-essential" (no plural 's'). The following packages might be useful too:
unixODBC, unixODBC-dev, elfutils, sysstat, pdksh and expat
They are probably not mandatory, but the installer is checking if they are installed.
Though it goes without saying for professional admins, I recommend to mention that the ORACLE_HOME variable has to be set to "/u01/app/oracle/product/11.2.0/dbhome_1/" and users may want to add "$ORACLE_HOME/bin" to their path. On a Side note, I did not install the DB under '/' but '/opt/oracle' as I had a strange feeling about creating directories under '/' which would not belong to the root user.
Manfred Hofbauer
Posted at 2010-12-30 19:23:16
[quote name="bob"]
Any idea to solve this problem ?
Thanks.[/quote]
I think so, there seems that some Debian-packages have changed recently.
I changed some packages that need to be installed and added an "Errors that can happen section".
Give the "apt-get install..." from above a try.
I did the installation some days ago so I am pretty sure that it should work.
Theoretically some links when installing the DB should have failed, sometimes you missed that. Means, it could be necessary to clean up your environment and run the installer again.
If nothing helped post the error from the mentioned log.
Good Luck!
bob
Posted at 2010-12-30 14:34:06
Hi,
I tried to install Oracle Database 11g on Debian Squeeze. All installation steps successful. But when I try netca, the following message is displayed :
-----
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0xa3bc9510, pid=2086, tid=3077531328
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_17-b02 mixed mode)
# Problematic frame:
#
[error occurred during error reporting, step 60, id 0xb]
# An error report file with more information is saved as hs_err_pid2086.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
Aborted
-----
Any idea to solve this problem ?
Thanks.




Tobia
Posted at 2011-04-28 09:03:20
Thank you for the info.
I found that the doxygen package is not needed by Oracle and it installs a lot of useless dependencies, so you can take it out.
For people using OpenVZ, the following parameters need to be set outside the container, on the host node:
fs.file-max = 6815744
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.aio-max-nr = 1048576
Auf Kommentar antworten