English – Oracle 10g R2 on Debian
Installing Oracle 10g R2 on Debian Sarge, Sid local and/or remote
I simply wrote down step by step what I did. Starting point is Oracle 10g R2 and a HowTo written by Graham Williams.
I did and tested three different way of intalling. My first installtion was directly on the machine with a Debian SID and an installed grafical interface (Gnome) and everything worked fine. for the installation on Debian Sarge there are a couple of things which one needs to watch out for, I marked thos with “NOTE SARGE”. After having gone through all of that I also did the installation over a remote console, as most of us just might not be able to sit right in front of the server, everything you need to watch out for on that is marked with “REMOTE”.
Please enter any fixes, comments, etc. on this post in my blog. Thanks.
NOTE REMOTE:
For my remote installation I am siting on a Windows Laptop and have cygwin installed. We will need the XServer installed (install cygwin with the XPackages). Start the XConsole with
startx
. In the XShell type
xhost +
(means as much as the XServer is allowed to receive information from the outside). Now we need Export the XWindows from the remote server to our XWindow
export DISPLAY=111.111.111.111:0.0
(replace the 111 with your own IP adress). We need this for the installer, as it will use XWindows to display the installation dialog and we need to see what it is telling us of course.
If you are not sure that this is going to work for you (e.g. you are not using cygwin or are simply not sure and want to see this in action) then you should test this with something small like tuxeyes
aptitude install tuxeyes
and then execute tuxeyes.
1. Are all your needed pakages installed?
aptitude install gcc make binutils libmotif3 lesstif2 rpm libaio
GENERAL NOTE:
The HowTo from David Graham calls for
libmotif3
to be installed but I was not able to find a pakage by this name in the sarge or sid dist. I found
libmotif
but the installer seems to run just fine without it. I still need to check further into this pakage as I am not sure what David was using or needing it for.
NOTE SARGE:
With SID you won’t have any more problems, with Debian Sarge you still need a pakage called libaio. So I simply loaded it straight from SID. Nothing fancy, I just changed
/etc/sourceslist
updated aptitude, installed the pagage and changed my sourceslist back to SARGE.
2. As the Oracle Installer was made and certified for Red Hat we need to do a couple of things so that it will let us install even though we are not on a Red Hat System:
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename
ln -s /etc /etc/rc.d
3. So, lets get a copy of Oracle. Download on the oracle website http://otn.oracle.com/software/products/database/oracle10g/index.html and upload the pakage to the system where it needs to be installed, I use FileZilla which works pretty good over SSH.
4. Now unzip it. Makes no real difference where you unzip it to as these are only TEMP Files needed to install. Make sure you have enough space.
GENERAL NOTE:
For the zip file I use
aptitude install unzip
but do as you please.
5. Now we should have a directory called
database
(or Disk1 or whatever), everything should be inside. Leave it there for now.
6. Lets do a bit of fixing the Red Hat or pretending to be Red Hat
You can either change
Disk1/install/oraparam.ini
(Disk1 or whatever it is called on your system). Here you need to find
Linux=redhat-2.1,UnitedLinux-1.0,redhat-3
and make it into
Linux=
or you can later use a specific setting when calling the installer:
./runInstaller -ignoreSysPrereqs
GENERAL NOTE:
There is a difference between fixing the file and using the setting mentioned above. My suggestion is fixing the File, as the installer does behave different. The “ignoreSysPrereqs” seems to separate the install steps in more parts which didn’t quite work for me (maybe it does for you). In theory the END result should be the same, well it wasn’t for me, so be warned.
7. Now we need a few groups and users, so let’s check if the already exist as the first step:
grep oinstall /etc/group
grep dba /etc/group
grep nobody /etc/group
id oracle
id nobody
8. Now creat the ones you still need:
GENERAL NOTE:
Should you not have a
/home/oracle
now wold be a good point in time to create that.
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/groupadd nobody
/usr/sbin/useradd -g oinstall -G dba -p passwd -d /home/oracle oracle
/usr/sbin/useradd -g nobody nobody
9. A couple more directories and permissions please
mkdir -p /u01/app/oracle
mkdir -p /u02/oradata
chown -R oracle:oinstall /u01 /u02
chmod -R 775 /u01 /u02
and who still doesn’t have one:
mkdir -p /home/oracle
chown -R oracle:oinstall /home/oracle
chmod -R 775 /home/oracle
GENERAL NOTE:
I created my
/home/oracle
right from the beginning and also copied my TEMP files into it, but as mentioned above, shouldn’t be a problem if you have them elsewhere. Do make sure though that the user
oracle
does also have rights on all the installation files.
10. Lets check your Kernel
/sbin/sysctl -a | grep sem
/sbin/sysctl -a | grep shm
/sbin/sysctl -a | grep file-max
/sbin/sysctl -a | grep ip_local_port_range
You should have the following:
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 2147483648
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
If this is not the case, change it! Edit
/etc/sysctl.conf
with the following data:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
Relaod the conf
/sbin/sysctl -p
11. Change a few security settings:
Edit
/etc/security/limits.conf
by adding the following lines:
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
Edit
/etc/pam.d/login
and
/etc/pam.d/su
by activating or adding the following:
session required /lib/security/pam_limits.so
12. Edit your profile
/etc/profile
by adding:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
Add
umask 022
at the end of the file, but that is most likely already there.
13. Let’s go! At this exact point in time I suggest strongly not to get interrupted. Yes I mean it, unplug the phone, turn off your ICQ and lock the door.
su oracle
14. Change and set a few varibales:
ORACLE_BASE=/u01/app/oracle
ORACLE_SID=test
export ORACLE_BASE ORACLE_SID
unset ORACLE_HOME
unset TNS_ADMIN
ORATAB=/etc/oratab
15. Go to the installer
cd /tmp/Disk1_
(or wherever you put it)
./runInstaller
If for some reason the installer is complaining that that you are not on a Red Hat System, you missed something at the beginning. Either go back and handle it or do the following:
./runInstaller -ignoreSysPrereqs
NOTE REMOTE:
If you are doing a remote installation and are getting messages like the following … has got another sort of problem:
...i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
Don’t panic! Your machine is just telling you that it would like to have few more XPackages then you have given it. You can fix this by installing one package after the other until you got the lib he is looking for (have fun) or install “konsole” which will pull all needed pakages with it’s install.
aptitude install konsole
Another error for the remote user could be that the XWindows are not being exported, so do that now!
export DISPLAY=123.123.123.123:0.0
(change the 123.123 to the IP of the machine you are sitting on)
16. The installer once it appears on your screen is self explaining, I am not going into deatails here, if you decided to install Oracle on Debian you should know what Oracle is about and this should not be your first contact. Don’t forget to execute the two mentioned scripts in the installer as ROOT.
Have fun, hope I could be of some assistance.