Installation von Oracle 10g R2 auf Debian Sarge, Sid und Remote

Hier erstmal einfach nur runtergeschrieben Schritt für Schritt wie ich vorgegangen bin. Ausgangsbasis ist Oracle 10g R2 und ein HowTo von Graham Williams.

Ich habe drei verschiedene Installationen gemacht und getestet. Erste installtion war direkt am Rechner mit einem Debian SID und alles hat Prima geklappt. Für Sarge gibt es dann ein paar Dinge zu beachten, die sind mit “NOTE SARGE” gekennzeichnet und für die Remote Installtion steht dann nochmal “REMOTE” davor.

Bitte alle Kommentare, Verbesserungen, etc. diesem Post hinzufügen.

NOTE REMOTE:

Zum Bearbeiten gehen wir mit Cygwin über SSH in die Kiste rein. Nutzen dann bitten einen XServer (Also Cygwin mit X installiert). Den dann wie immer mit startx aufrufen. Im XServer dann xhost + eingeben (heißt soviel wie dieser XServer darf Inhalte von Aussen empfangen) und dann den Export der XServer Fenster von der Kiste auf die eigene umleiten export DISPLAY=111.111.111.111:0.0 (die 111 sind die eigene IP Adresse). Dies ist dazu da dass wenn ein XFenster aufgeht, es nicht auf dem Server aufgeht sondern lokal, da man ja sehen sollte was drin steht.

Wer sich hier nicht sicher ist ob alles richtig läuft (i.e. er nutzt nicht Cygwin sondern was anderes) sollte es einfach mal testen indem er irgend was belangloses von X installiert, z.B. aptitude install tuxeyes und dann tuxeyes ausführen.

1. Sicherstellen das ein paar nötige Pakete installiert sind

aptitude install gcc make binutils libmotif3 lesstif2 rpm libaio

GENERAL NOTE:

Das howTo von David Graham besagt das libmotif3 zu installieren ist, doch diese Paket gibt es so in der Dist nicht, weder Sarge noch SID hat es. Es gibt ein libmotifdoch ich habe den Installer auch ohne das Paket über die Bühne gebracht.

NOTE SARGE:

Unter Debian SID kein Problem unter Debian Sarge gibt es libmotif3 und libaio nicht, also libaio von SID reinladen. (habe auch ohne libmotif3 den Installer am laufen gehabt, muss hier noch abchecken welchen Sinn und Zweck das Paket hat da ich es einzeln nicht reingezogen bekomme unter Sarge).

2. Da der Oracle installer eigendlich ein Red Hat System erwartet sollten wir ein paar Dinge so stricken dass sie etwas mehr nach Red Hat aussehen, also folgende symlinks setzen:

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. Jetzt den Installer runterladen und auf den Server stellen. Runterladen bei Oracle unter http://otn.oracle.com/software/products/database/oracle10g/index.html und das Päckchen dann auf den Server hochladen (FileZilla eignet sich ganz gut über SSH).

4. So, nun das Päckchen entzippen … egal eigendlich wo, da es sowieso nur TEMP Files sind die der Installer nachher nutzt (sollte natürlich genügend Platz da sein).

GENERAL NOTE:

Ach ja, da es ein ZIP Files ist empfiehlt sich aptitude install unzip und dann einfach mit unzip das Teil entzippen, aber das kann jeder halten wie er will.

5. So jetzt haben wir ein Verzeichniss database (oder Disk1 oder was auch immer) und dort ist auch alles drin. Das kann jetzt noch ein bisschen warten.

6. Jetzt noch ein wenig Red Hat vorgaukelei

Entweder in der Datei Disk1/install/oraparam.ini (Disk1 oder wo auch immer das Verzeichniss liegen mag) den Eintrag Linux=redhat-2.1,UnitedLinux-1.0,redhat-3 gegen Linux= tauschen, oder später den Installer mit einem extra Parameter aufrufen:

./runInstaller -ignoreSysPrereqs

GENERAL NOTE:

Es gibt hier in der späteren Ausführung einen Unterschied im Installer. Der Installer mit “ignoreSysPrereqs” scheint die Schritte mehr zu unterteilen und mehr Fragen zu stellen. Ich hatte mich entschlossen oraparam.ini zu editieren da ich mit dem anderen ein paar ungeklärte Probleme hatte, obwohl theoretisch das END Resultat doch gleich sein sollte.

7. Jetzt Benötigen wir Benutzer und Gruppen um zu installieren, aber als Erstes mal checken ob schon welche existieren:

grep oinstall /etc/group

grep dba /etc/group

grep nobody /etc/group

id oracle

id nobody

8. Die, die nicht existieren jetzt erstellen:

GENERAL NOTE:

Sollte unter /home noch kein /oracle existieren wäre jetzt ein guter Zeitpunkt es anzulegen.

/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. Jetzt brauchen wir noch ein paar Verzeichnisse und permissions.

mkdir -p /u01/app/oracle

mkdir -p /u02/oradata

chown -R oracle:oinstall /u01 /u02

chmod -R 775 /u01 /u02

und wer noch keins hat:

mkdir -p /home/oracle

chown -R oracle:oinstall /home/oracle

chmod -R 775 /home/oracle

GENERAL NOTE:

Das oracle home habe ich gleich von anfang an angelegt und dort kopiere ich auch meine Temp Files rein, sollte kein Problem sein wenn es woanderst liegt, doch man sollte definitv schauen das der Benutzer oracle auch auf die Installtion Files Rechte hat.

10. Kernel Parameter abchecken

/sbin/sysctl -a | grep sem

/sbin/sysctl -a | grep shm

/sbin/sysctl -a | grep file-max

/sbin/sysctl -a | grep ip_local_port_range

Rauskommen sollten folgende Werte:

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

Falls nicht alles so ist wie es sein sollte, ändern! Die Datei /etc/sysctl.conf editieren mit folgenden Werten:

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

Danach Parameter neu einlesen mit /sbin/sysctl -p

11. Sicherheits Anpassungen

In der Datei /etc/security/limits.conf folgende Zeilen hinzufügen:

* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536

In der Datei /etc/pam.d/login und der Datei /etc/pam.d/su folgende Zeile aktivieren oder einfügen:

session required /lib/security/pam_limits.so

12. Im Profil in der Datei /etc/profile folgendes Einfügen da wir ja die Bash nutzen:

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

Am Ende noch umask 022 hinzufügen, sollte aber schon drin sein.

13. Jetz geths weiter, kleiner Tip, ab diesem Punkt nicht mehr ablenken lassen, kein Telefon abnehmen und vor allem NICHT die Shell wechseln, etc.

su oracle

14. Ein paar Variablen setzen oder ausmachen:

ORACLE_BASE=/u01/app/oracle

ORACLE_SID=test

export ORACLE_BASE ORACLE_SID

unset ORACLE_HOME

unset TNS_ADMIN

ORATAB=/etc/oratab

15. Und nun rein ins Vergnügen

cd /tmp/Disk1_ (oder wo auch immer man das Zeug hingeworfen hat)

./runInstaller

Jetzt kann es noch sein das er Meckert das man kein RedHat ist obwohl wir das eigendlich am Anfang behoben haben, doch irgendwas stimmt da noch nicht ganz, aber hierfür gibt es einen Parameter:

./runInstaller -ignoreSysPrereqs

GENERAL NOTE:

Wenn man hier die Datei wie oben schon beschrieben geändert hat ist “-ignore…” nicht notwendig.

NOTE REMOTE:

Wer nicht direkt vor der Kiste sitzt und Fehler in folgender Art hat, hat ganz andere Probleme:

...i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory

Nur keine Panik … er will uns nur sagen das der installer gerne noch ein paar weiter X Komponenten gerne hätte. Das löst man entweder indem man Paket für Paket installiert bis man alle Libs hat oder man installiert einfach wie oben beschrieben “konsole” das dann alle benötigten Libs hinter sich her zieht.

aptitude install konsole

Ein weiterer Fehler kann sein dass die Fenster von X nicht weitergeleitet werden, also benötigen wir noch einen “export” der X Fenster

export DISPLAY=123.123.123.123:0.0 (für die 123.123 bitte die IP der Kiste an der man sitzt eingeben)

Wie oben schon beschrieben, ab einem Gewissen Punkt, einfach nicht abbrechen sondern alles stehen und liegen lassen bis alles Fertig ist.

16. Der Installer ist eigendlich selbsterklärend. Wer ihn kennt ist auch gleich durch und Fertig. Nicht vergessen die im Installer zwei angegebenen Scripte als ROOT ausführen.

Viel Spaß!

Leave a Reply

Your email address will not be published. Required fields are marked *