Intranet Engineering GmbH
Beraten Planen Ausführen
 

Oracle 9.0.1 GNU/Linux

Diese Seite befasst sich mit den speziellen Hinweisen für die Oracle Version 9.0.1. Hinweise dies sich auf alle Oracle Versionen beziehen können sie hier nachlesen.

Erste Version der 9 Reihe

Problemlos installierbar: nein

Patch notwendig : nein

Problem: Die Oracle Programme lassen sich nicht linken. Beim Linken tritt der Fehler unresolved symbols auf.

Ursache: Fehler im Makefile, oder fehlende Bibliotheken.

Problembehebung

Abschalten der Fehlerprüfung durch den Linker
Im Makefile $ORACLE_HOME/bin/genclntsh die Zeile LD_SELF_CONTAINED="-z defs" durch die Zeile LD_SELF_CONTAINED="" ersezten.

Vorteil

Das Linken aller binaries funktioniert.
Soweit wir das beurteilen können wird diese Lösung in der Oracle Version 9.2.0 verwendet.

Nachteil

Es werden alle binaries erzeugt, obwohl nicht alle Symbole aufgelöst werden können. Dies kann zu unkontrollierbaren Abstürzen im laufenden Betrieb führen. Da nicht klar ist, welche Oracle Programme von den nicht auflösbaren Symbolen betroffen sind, halten wir diese Lösung für eine stabilen Produktionsbetrieb ungeeignet.

Problembehebung

Die von Oracle freigebene Betriebsystem/Datenbankkombination verwenden.

Abändern des Makefiles derart, dass ein erfolgreiches Linken möglich wird.

Im Makefile $ORACLE_HOME/bin/genclntsh die Zeile SYSLIBS=`cat ${ORACLE_HOME}/lib/sysliblist`" -ldl -lm -lc" durch die Zeile SYSLIBS=`cat ${ORACLE_HOME}/lib/sysliblist`" -L /usr/lib/gcc-lib/i386-linux/2.95.4 -lgcc -ldl -lm -lc /lib/ld-linux.so.2" ersetzen. Diese Lösung ist einem Beitrag auf otn entnommen.

Das Linken aller binaries funktioniert ohne dass der Linkfehler unresolved symbol auftritt.

Nachteil

Die Lösung ist nicht von Oracle freigegeben. Es liegen keine umfassenden Testergebnisse vor. Es kann daher u.U. zu undefinierten Betriebszuständen kommen. Diese Variante ist für einen stabilen Produktionsbetrieb nicht geeignet.

Problembehebung

Die von Oracle freigebene Kombination aus Betriebsystem und Datenbankversion verwenden.