Kernelparameter für Oracle Installation
Kernelparameter für Oracle Installation
Hallo zusammen.
In der Anleitung zur Installation einer Oracle-Datenbank auf einem Debian-System ist beschrieben welche Kernel-Parameter dafür notwendig sind.
http://www.togaware.com/linux/survivor/ ... ters.shtml
Anzahl und Größe von Semaphoren, Shared Mem, Filedescriporen usw. nehme ich mal an.
Frage: ist das wirklich notwendig, daß genau diese Parameter für mein System eingestellt werden? Meine Werte weichen nicht unbedingt stark davon ab!
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 33554432
fs.file-max = 44525
net.ipv4.ip_local_port_range = 32768 61000
Gruss Christian
In der Anleitung zur Installation einer Oracle-Datenbank auf einem Debian-System ist beschrieben welche Kernel-Parameter dafür notwendig sind.
http://www.togaware.com/linux/survivor/ ... ters.shtml
Anzahl und Größe von Semaphoren, Shared Mem, Filedescriporen usw. nehme ich mal an.
Frage: ist das wirklich notwendig, daß genau diese Parameter für mein System eingestellt werden? Meine Werte weichen nicht unbedingt stark davon ab!
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 33554432
fs.file-max = 44525
net.ipv4.ip_local_port_range = 32768 61000
Gruss Christian
Die größten Kritiker der Elche,
waren früher selber welche.
F.W. Bernstein
waren früher selber welche.
F.W. Bernstein
Re: Kernelparameter für Oracle Installation
Also bei shmmax würde ich das schon als starke Abweichung bezeichnen. Deine 32 MB SHMMAX sind da sicherlich zu wenigColumbus hat geschrieben:Meine Werte weichen nicht unbedingt stark davon ab!
Nein, auf meinem Produktionssystem habe ich größere Werte eingestelltColumbus hat geschrieben: Frage: ist das wirklich notwendig, daß genau diese Parameter für mein System eingestellt werden?
Die angeführten Werte sind nur eine Empfehlung, die tatsächlich benötigten Werte hängen von vielen Faktoren ab (Anzahl der Instanzen, Prozesse, SGA, PGA, ...).
Wenn es keinen trifftigen Grund gibt, solltest du diese aber auch beachten. Oder willst du dich unnötig auf Fehlersuche begeben ?
Gruß
gms
Gutes Argument. Bei mir ist diese Installation aber nicht für ein Produktives System, sondern nur ein Datenbank-Projekt für die FH. Aber ich werde die Werte doch übernehmen, bevor ich wie Du schon richtig sagtest, auf Fehlersuche geheOder willst du dich unnötig auf Fehlersuche begeben ?
Dank Dir
Gruss Christian
Die größten Kritiker der Elche,
waren früher selber welche.
F.W. Bernstein
waren früher selber welche.
F.W. Bernstein
Jetzt ist mir aber noch was unklar. Ich habe soeben den Installer aufgerufen. Dieser verlangt nach einer Umgebungsvar ORACLE_HOME. In der Doku steht aber nur daß diese in der .bash_profile von /home/oracle gelöst werden soll:
Gruss Christian
Was ist denn nun richtig? Soll das in /etc/default eingebaut werden?ORACLE_BASE=/u01/app/oracle
ORACLE_SID=test
export ORACLE_BASE ORACLE_SID
unset ORACLE_HOME
unset TNS_ADMIN
Gruss Christian
Die größten Kritiker der Elche,
waren früher selber welche.
F.W. Bernstein
waren früher selber welche.
F.W. Bernstein
Die Version 10gR2 habe ich bis jetzt nur auf Sparc installiert. Mein Testsystem auf meinem Laptop möchte ich heute abend updaten.
Aus meiner bisherigen Erfahrung verlangt der Installer aber nur ein Verzeichnis (z.B.: "/opt/oracle/product/ora10gR2") und einen zugehörigen eindeutigen Namen. Der Umgebungsvariable ORACLE_HOME wird später dieses Verzeichnis zugeordnet. Diese Environmentvariable mußte ich aber bisher nie für den Installer setzen.
Gruß
gms
Aus meiner bisherigen Erfahrung verlangt der Installer aber nur ein Verzeichnis (z.B.: "/opt/oracle/product/ora10gR2") und einen zugehörigen eindeutigen Namen. Der Umgebungsvariable ORACLE_HOME wird später dieses Verzeichnis zugeordnet. Diese Environmentvariable mußte ich aber bisher nie für den Installer setzen.
Gruß
gms
So wie es aussuieht meckert er so einige Dinge an:
Obwohl die meisten von den oben aufgelisteten Packete sind installiert, klar nicht in der gleichen Version. Z.B Libmotif3 2.2.3-1 ( Sarge halt )
Ich habe vor daß der Server nur im Runlevel ( Init ) 4 oder 5 läuft. Das sollte meine normale Arbeit am Notebook nicht zu sehr behindern oder? Wie ist die Systemlast für einen Athlon XP-M 2500? Oder einen Geode 1400 ( enspricht Athlon XP-M 1800 )?
Kann man dann noch normal arbeiten?
Gruss Christian
P.S. mein Kernel ist übrigens 2.6.12.6 und nicht 2.4.9-e.25. Naja wahrscheinlich meint er damit die minimal-Version?!?
Die Packete kann man ja noch installieren, aber wo bekomme ich jetzt noch SWAP-Space her?All requirements met.
Checking if CPU speed is above 450 MHz.
Actual 1874 MHz Passed
Checking for Kernel version 2.4.9-e.25 Passed
Checking for glibc version glibc-2.2.4-32 Failed <<<<
Checking operating system packages: gcc-2.96,pdksh-5.2.14,openmotif-2.1.30,sysstat-4.0.1,compat-glibc-6.2-2.1.3.2,libstdc++-2.96 Failed <<<<
>>> Package gcc-2.96 is missing
>>> Package pdksh-5.2.14 is missing
>>> Package openmotif-2.1.30 is missing
>>> Package sysstat-4.0.1 is missing
>>> Package compat-glibc-6.2-2.1.3.2 is missing
>>> Package libstdc++-2.96 is missing
Checking swap space: 909 MB available, 1536 MB required. Failed <<<<
Error : Packages version not per Installation requirement.
Error : swap space availability not per Installation requirement.Continue? (y/n) [n]
Obwohl die meisten von den oben aufgelisteten Packete sind installiert, klar nicht in der gleichen Version. Z.B Libmotif3 2.2.3-1 ( Sarge halt )
Ich habe vor daß der Server nur im Runlevel ( Init ) 4 oder 5 läuft. Das sollte meine normale Arbeit am Notebook nicht zu sehr behindern oder? Wie ist die Systemlast für einen Athlon XP-M 2500? Oder einen Geode 1400 ( enspricht Athlon XP-M 1800 )?
Kann man dann noch normal arbeiten?
Gruss Christian
P.S. mein Kernel ist übrigens 2.6.12.6 und nicht 2.4.9-e.25. Naja wahrscheinlich meint er damit die minimal-Version?!?
Die größten Kritiker der Elche,
waren früher selber welche.
F.W. Bernstein
waren früher selber welche.
F.W. Bernstein
Die Packages kann er nicht wirklich überprüfen, weil er dazu den Red Hat Package Manager "rpm" befragt. Das mit dem Swap-Space ignoriere jetzt auch einmal.
Damit Oracle nicht aller Resourcen für sich beansprucht, mußt du bei der DB Erstellung dann einige Parameter runtersetzen, dann kannst du auch normal arbeiten
Gruß
gms
Code: Alles auswählen
./runInstaller -ignoreSysPrereqs
Gruß
gms
Hallo, sorry ich konnte in den letzten 36 Studen nicht weitermachen.
Jetzt habe ich es erneut versucht und bin schockiert! Dieser besch... Installer will UNBEDINGT einen X-Server starten. Wozu braucht ein Installer einen X-Server, das soll er auf der Konsole machen. Wir haben hier im Hause einige Server auf denen überhaupt kein X installiert ist, und das aus gutem Grund !!!!!!!
Sind das alles ehemalige Windows-Entwickler, die bei Oracle sitzen? Wenn ja, kann man sich ja auf was gefasst machen.
Also ich gebe so schnell nicht auf, aber ich überlege mir auf PostgreSQL umzusteigen.
In unserem Projekt haben wir die Auswahl zwischen Oracle, MaxDB, PostgeSQL und MS SQL was natürlich nicht in Frage kommt!
Und PostgreSQL ist für Debian-User ja auch problemlos. Und verbraucht auch nicht so viel Resourcen
Gruss Christian
Jetzt habe ich es erneut versucht und bin schockiert! Dieser besch... Installer will UNBEDINGT einen X-Server starten. Wozu braucht ein Installer einen X-Server, das soll er auf der Konsole machen. Wir haben hier im Hause einige Server auf denen überhaupt kein X installiert ist, und das aus gutem Grund !!!!!!!
Sind das alles ehemalige Windows-Entwickler, die bei Oracle sitzen? Wenn ja, kann man sich ja auf was gefasst machen.
Also ich gebe so schnell nicht auf, aber ich überlege mir auf PostgreSQL umzusteigen.
In unserem Projekt haben wir die Auswahl zwischen Oracle, MaxDB, PostgeSQL und MS SQL was natürlich nicht in Frage kommt!
Und PostgreSQL ist für Debian-User ja auch problemlos. Und verbraucht auch nicht so viel Resourcen
Gruss Christian
Die größten Kritiker der Elche,
waren früher selber welche.
F.W. Bernstein
waren früher selber welche.
F.W. Bernstein
Vor ca einem Jahr habe ich gelesen, daß die Oracle Entwicklung komplett auf Linux umgestellt wurde, also haben sie wahrscheinlich den Installer noch unter Windows entwickelt Oracle ist aber (seit der Version 8 ) ziemlich in Java verliebt (Kostenfaktor), das dürfte das Hauptproblem sein.Columbus hat geschrieben:Sind das alles ehemalige Windows-Entwickler, die bei Oracle sitzen?
Der X Server muß allerdings auch nicht auf dem Server laufen auf dem du Oracle installiert. Du kannst die Ausgabe über die DISPLAY Variable auf einen beliebigen X Server umsetzen.
PostgeSQL und MAXDB kenne ich leider nicht, würde aber an deiner Stelle dann auch PostgeSQL nehmen.
Gruß
gms
Bei mir ist, ebenfalls unter etch, derselbe Fehler aufgetreten. Leider ist es mir noch nicht gelungen, ihn zu beheben. Kannst du erklären, wie man das macht?gms hat geschrieben:Ist bei dir auch der Installer hängen geblieben ?
Ich konnte das Problem zwar duch manuelles herumpfrimeln (in gennttab,ntcontab.c und ins_net_client.mk) und anschließendem "relink all" beheben, es würde mich aber interessieren ob dieses Problem nur bei mir (unter Etch) auftritt.
Danke schon einmal, gs.
In "bin/gennttab" habe ich die vorhandenen Fehler die ausgegeben wurden ausgebessert. Mit dieser Datei sollte man die Datei "network/lib/ntcontab.c" erstellen können, das hat zwar auch dann funktioniert, nur hätte es mit dieser ntcontab.c keine Unterstützung für z.B. tcp gegeben, dafür einige andere Linkerfehler.
Ich habe mir daher die Datei "network/lib/ntcontab.c" von einer anderen Oracleversion (glaube 9iR2) geholt
und danach das Makefile "network/lib/ins_net_client.mk" so verändert, daß mir diese Datei nicht mehr überschrieben wird.
Also in der Datei "network/lib/ins_net_client.mk"
alle diese Zeilen (aber nur die ntcontab.c erzeugen, es gibt auch welche mit ntcontab.s) habe ich ersetzt durch
Hier die kopierte Version von "network/lib/ntcontab.c"
zum Schluß habe ich das "bin/relink all 2>relink.err" aufgerufen ( dazu muß ORACLE_HOME und PATH korrekt gesetzt sein)
Die restlichen Fehler die danach im relink.err noch vorgekommen sind, sind nicht von Bedeutung:
Die meisten wurden vom make ignoriert und von mir auch
Vielleicht findet man mittlerweile über Google eine bessere Lösung, aber bei mir lauft eigentlich alles was ich brauche.
Unter Debian war die Oracleinstallation fast immer ein Abenteuer. 10gR1 war die große Ausnahme.
Gruß
gms
Ich habe mir daher die Datei "network/lib/ntcontab.c" von einer anderen Oracleversion (glaube 9iR2) geholt
und danach das Makefile "network/lib/ins_net_client.mk" so verändert, daß mir diese Datei nicht mehr überschrieben wird.
Also in der Datei "network/lib/ins_net_client.mk"
Code: Alles auswählen
${BINHOME}gennttab > ntcontab.c
Code: Alles auswählen
${BINHOME}gennttab > ntcontab.c.gen
Code: Alles auswählen
/*
**
** This file is GENERATED by gennttab
**
*/
#include <sys/types.h>
/* NT driver descriptor */
struct ntdrv
{
char *ntdrvdes; /* NT driver designator */
void (*ntdrvini)( /* NTCONNECT - NT driver init function */
/*_ ptr_t gbl, struct ntpa *pactx _*/ );
char *ntdrvsini; /* Name of INIT func */
char *ntdrvmod; /* NT driver module */
};
typedef struct ntdrv ntdrv;
//void ntodrini();
void nttini();
void ntzini();
void nttsdpini();
void ntrini();
void ntpini();
void ntusini();
//void ntnini();
ntdrv ntcontab[] = {
// { "dce", ntodrini, "_NTODRINI", "ntodr" },
{ "tcp", nttini, "NTTINI", "ntt" },
{ "tcps", ntzini, "NTZINI", "ntcps" },
{ "sdp", nttsdpini, "NTTSDPINI", "ntt" },
{ "raw", ntrini, "_NTRINI", "ntr" },
{ "beq", ntpini, "_NTPINI", "ntp" },
{ "ipc", ntusini, "_NTUSINI", "ntus" },
//{ "nmp", ntnini, "_NTNINI", "ntn" },
{ 0, 0, 0, 0}};
/* no. of connect table entries */
const int ntconent = sizeof(ntcontab)/sizeof(ntcontab[0]) - 1;
Die restlichen Fehler die danach im relink.err noch vorgekommen sind, sind nicht von Bedeutung:
Code: Alles auswählen
mv: ,,ldapdelete" und ,,/opt/oracle/product/10.2.0.1/bin/ldapdelete" sind die gleiche Datei
make: [inst_clientonly] Fehler 1 (ignoriert)
mv: ,,ldapmodify" und ,,/opt/oracle/product/10.2.0.1/bin/ldapmodify" sind die gleiche Datei
make: [inst_clientonly] Fehler 1 (ignoriert)
mv: ,,ldapmodifymt" und ,,/opt/oracle/product/10.2.0.1/bin/ldapmodifymt" sind die gleiche Datei
make: [inst_clientonly] Fehler 1 (ignoriert)
mv: ,,ldapadd" und ,,/opt/oracle/product/10.2.0.1/bin/ldapadd" sind die gleiche Datei
make: [inst_clientonly] Fehler 1 (ignoriert)
mv: ,,ldapaddmt" und ,,/opt/oracle/product/10.2.0.1/bin/ldapaddmt" sind die gleiche Datei
make: [inst_clientonly] Fehler 1 (ignoriert)
mv: ,,ldapsearch" und ,,/opt/oracle/product/10.2.0.1/bin/ldapsearch" sind die gleiche Datei
make: [inst_clientonly] Fehler 1 (ignoriert)
mv: ,,dsml2ldif" und ,,/opt/oracle/product/10.2.0.1/bin/dsml2ldif" sind die gleiche Datei
make: [inst_clientonly] Fehler 1 (ignoriert)
mv: ,,ldapcompare" und ,,/opt/oracle/product/10.2.0.1/bin/ldapcompare" sind die gleiche Datei
make: [inst_clientonly] Fehler 1 (ignoriert)
mv: ,,ldapbind" und ,,/opt/oracle/product/10.2.0.1/bin/ldapbind" sind die gleiche Datei
make: [inst_clientonly] Fehler 1 (ignoriert)
mv: ,,ldapmoddn" und ,,/opt/oracle/product/10.2.0.1/bin/ldapmoddn" sind die gleiche Datei
make: [inst_clientonly] Fehler 1 (ignoriert)
gcc: unrecognized option '-h'
gcc: unrecognized option '-h'
gcc: unrecognized option '-h'
gcc: unrecognized option '-h'
Vielleicht findet man mittlerweile über Google eine bessere Lösung, aber bei mir lauft eigentlich alles was ich brauche.
Unter Debian war die Oracleinstallation fast immer ein Abenteuer. 10gR1 war die große Ausnahme.
Gruß
gms
Hallo gms,
danke für die schnelle und ausführliche Antwort! Leider bin ich damit noch nicht ganz am Ziel: Zusätzlich zu den harmlosen Fehlern, die du bereits beschrieben hast, treten bei mir Linkerprobleme auf:
undefined reference to `nnfoboot'
Das wird gemeldet beim Bau der enthaltenen Anwendungen, die mit -lclntsh linken. Und in der Tat ist nnfoboot laut nm in libclntsh.so undefined (U). Es ist definiert in libagtsh.so, aber zusätzlich dagegen zu linken (oder libclntsh dagegen zu linken) führt nur zu anderen undefinierten Symbolen...
Erneut danke,
gs
danke für die schnelle und ausführliche Antwort! Leider bin ich damit noch nicht ganz am Ziel: Zusätzlich zu den harmlosen Fehlern, die du bereits beschrieben hast, treten bei mir Linkerprobleme auf:
undefined reference to `nnfoboot'
Das wird gemeldet beim Bau der enthaltenen Anwendungen, die mit -lclntsh linken. Und in der Tat ist nnfoboot laut nm in libclntsh.so undefined (U). Es ist definiert in libagtsh.so, aber zusätzlich dagegen zu linken (oder libclntsh dagegen zu linken) führt nur zu anderen undefinierten Symbolen...
Erneut danke,
gs
in der libclntsh.so und libagtsh.so gibt's bei mir kein "nnfoboot".
und in der libclntsh.so gibt es keine fehlenden Symbole:
Scheint aber auch kein Tippfehler von dir zu sein, weil die gibt's bei mir in libnoname10.a
Versuche einmal die libclntsh.so mit dem Kommando "$ORACLE_HOME/bin/genclntsh" nochmals neu zu erstellen (obwohl, die wird auch von "relink all" als erstes generiert).
Das sind übrigens die so's, die bei mir wegen der "unrecognized option -h" nicht erstellt wurden, die wurden allerdings mitinstalliert.
Ich habe jetzt mit " bash -x genclntsh 2>&1 | tee genclntsh.log" ein logfile erstellt und danach das Installationsverzeichnis "/opt/oracle/product/10.2.0.1" mit "ORACLE_HOME" ersetzt. http://nopaste.debianforum.de/2355
Wenn du auf die gleiche Art ein Logfile erstellst und die zwei Logfiles dann vergleichst (mit diff), sehen wir vielleicht (hoffentlich) warum die libclntsh.so bei dir anders generiert wird.
Gruß
gms
[edit]
vielleicht noch ein Hinweis, bei mir wurden diese vier Objects neu erstellt:
Ich habe daraufhin diese auch überprüft und in einem habe ich diese Symbole gefunden:
vielleicht wird bei dir hier zusätzlich noch das Symbol "nnflboot" referenziert, dann müßten wir wahrscheinlich bei der Erstellung dieses Objects ansetzen.
Ist jetzt allerdings nur ein Verdacht, und was mich daran stört ist, daß dieses Object anscheinend nicht zur libclntsh dazugelinkt wird.
Aber vielleicht ist das eine zweite Spur die wir verfolgen können.
[/edit]
Code: Alles auswählen
$ nm lib/libclntsh.so | grep boot
00b4a3cc T lfiboot
004ff1c4 T nnfhboot
00504152 T nnflboot
00519514 T nnftboot
00493e40 T npgbootnpvec
$ nm lib/libagtsh.so | grep boot
002a40c0 T lfiboot
001a07f4 T nnfhboot
U nnflboot
0019f8a8 T nnftboot
0019bf40 T npgbootnpvec
Code: Alles auswählen
$ ldd -r lib/libclntsh.so
linux-gate.so.1 => (0xffffe000)
libnnz10.so => /opt/oracle/product/10.2.0.1/lib/libnnz10.so (0xb7016000) libdl.so.2 => /lib/tls/libdl.so.2 (0xb7004000)
libm.so.6 => /lib/tls/libm.so.6 (0xb6fdf000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb6fcd000)
libnsl.so.1 => /lib/tls/libnsl.so.1 (0xb6fb7000)
libc.so.6 => /lib/tls/libc.so.6 (0xb6e7f000)
/lib/ld-linux.so.2 (0x80000000)
Code: Alles auswählen
$ nm lib/libnoname10.a | grep nnfoboot
00000000 T nnfoboot
Das sind übrigens die so's, die bei mir wegen der "unrecognized option -h" nicht erstellt wurden, die wurden allerdings mitinstalliert.
Code: Alles auswählen
libsrvm10.so
libsrvmocr10.so
libsrvmhas10.so
Wenn du auf die gleiche Art ein Logfile erstellst und die zwei Logfiles dann vergleichst (mit diff), sehen wir vielleicht (hoffentlich) warum die libclntsh.so bei dir anders generiert wird.
Gruß
gms
[edit]
vielleicht noch ein Hinweis, bei mir wurden diese vier Objects neu erstellt:
Code: Alles auswählen
/rdbms/lib/ksms.o
/lib/nnfgt.o
/rdbms/lib/config.o
/lib/ntcontab.o
Code: Alles auswählen
$ nm lib/nnfgt.o | grep boot
U nnfhboot
U nnflboot
U nnftboot
Ist jetzt allerdings nur ein Verdacht, und was mich daran stört ist, daß dieses Object anscheinend nicht zur libclntsh dazugelinkt wird.
Aber vielleicht ist das eine zweite Spur die wir verfolgen können.
[/edit]
Hallo gms,
ich habe das Linkproblem gelöst, indem ich das entsprechende Skript so angepasst habe, dass beim Bauen von libclntsh.so jetzt auch gegen libnoname10 gelinkt wird. Die undefinierten Referenzen sind damit behoben.
Leider liefert der so entstandene Oracle-Client einen "internal network error" beim ersten connect-Versuch...
Werde mich im Laufe der Woche soweit ich Zeit habe weiter mit dem Problem beschäftigen und eventuelle Lösungen posten.
Danke noch einmal!
gs
ich habe das Linkproblem gelöst, indem ich das entsprechende Skript so angepasst habe, dass beim Bauen von libclntsh.so jetzt auch gegen libnoname10 gelinkt wird. Die undefinierten Referenzen sind damit behoben.
Leider liefert der so entstandene Oracle-Client einen "internal network error" beim ersten connect-Versuch...
Werde mich im Laufe der Woche soweit ich Zeit habe weiter mit dem Problem beschäftigen und eventuelle Lösungen posten.
Danke noch einmal!
gs