Diese Web-Site durchsuchen:
PicoSearch Homepage
Best practice Homepage Probleme beim Anlegen einer Datenbank

mit SAP DB / MAXDB unter Linux
Stand: 10.03.2005 Die passende
Tasse zur Site?
Allgemeines Hier wird ein weiteres Problem mit der MAX-DB beschrieben, das bei mir aufgetreten ist, und wie dieses in meiner Konfiguration behoben werden konnten. Ob und wie die Beschreibungen übertragbar sind, sollte jeder selber entscheiden. Diese Seite soll eine Hilfestellung geben und es wird von mir in keinster Weise eine Garantie dafür übernommen, dass diese Lösung für andere Systeme funktioniert.
Also: Nutzung auf eigene Gefahr !
Übersicht
Problem-
beschreibung 
Server: MAX-DB 7.5.0 unter Linux
Client Problem 1: Applikation auf Server via JDBC
Client Problem 2: Windows Database Manager
Problem:
Mit dem Database Manager oder auch mit dem dbmcli wird eine Datenbank angelegt, aber beim Database Manager schlägt die Generierung im letzten Schritt fehl, mit der Meldung, dass die Datenbank nicht in den Administrationsmode gesetzt werden kann (analog schlägt Befehl in dbmcli fehl).
Dazu steht ein entsprechender Fehlereintrag in knldiag, bzw. knldiag.err:
2005-03-07 15:17:51 --- Starting GMT 2005-03-07 14:17:51 7.5.0 Build 023-121-087-292
2005-03-07 15:17:54 848 ERR 11282 IPC create_shm: shmget error, No space left on device
2005-03-07 15:17:54 848 ERR 11247 COMMUNIC ABEND: cannot create shared memory (BIG_COMSEG): No space left on device

Problem

Das Problem ist, dass die Datenbank einen relativ grossen Bereich Shared Memory nutzt. In diesem Fall, reichen die bereitgestellten Shared Memory Pages nicht aus. Unter Linux kann man sich die Einstellungen u.a. mit:

# ipcs -lm
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 32768
max total shared memory (kbytes) = 8388608
min seg size (bytes) = 1

anzeigen lassen. Alternativ kann man sich die Einstellungen mit:

# sysctl -a | grep kernel.sh
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 33554432

anzeigen lassen. Die Werte kann man auch mit sysctl ändern.
Hier ist der Wert 4096 (kernel.shmmni, bzw. max number of segments).
Es gibt jetzt zwei Möglichkeiten dieses Problem zu lösen. Zum einen kann man versuchen die Datenbank so zu konfigurieren, dass Sie möglichst wenig Shared Memory braucht. Ganz wesentlich ist hierfür der Parameter CACHE_SIZE. Beim Database Manager steht der Defaultwert auf 10000. Der minimal Wert liegt bei 800. Ebenso kann man den Verbrauch an Shared Memory mit dem Parameter MAXUSERTASKS verringern, andere Parameter kann man der Dokumentation entnehmen.
ABER, der Wert für kernel.shmmni sollte auch dann nicht unter 4096 sein.
Besser ist eigentlich die Alternative, den Shared Memory Bereich hochzusetzen. Dies macht man am besten analog zur Problemlösung in sapdb.html statt für die kernel.sem Werte, für die Werte: kernel.shmmni
kernel.shmall
kernel.shmmax
Welche Werte man hier eintragen sollte, hängt von den jeweiligen Anforderungen (wieviel Instanzen) und der verfügbaren Hardware ab.


Spezialfall vServer

Bei mir ist der Fehler in einer virtuellen Server Umgebung aufgetreten, d.h. hier teilen sich mehrere Betriebssysteme eine gemeinsame Hardware-Umgebung (s. z.B. http://linux-vserver.org/). Hier konnte man zwar die Shared Memory Einstellungen in der vServer Instanz mit sysctl einstellen, allerdings hatten diese Werte keinen Einfluss, da das übergeordnete Betriebssystem, in dem die vServer Instanzen laufen, einen globalen Grenzwert gesetzt hatte. In diesem Fall wurden zwar normale Werte für den Shared Memory Bereich angezeigt, aber die tatsächlich verfügbaren Werte lagen deutlich darunter.
Hier müssen Sie entweder mit dem Administrator/Betreiber des vServer reden, oder aber doch durch ändern der Datenbank-Parameter versuchen dieses Problem zu umgehen.


Mehr...

Zunächst einmal, ich habe wirklich keine Zeit persönlichen Support zu leisten. Also Emails mit diesem Hintergrund fliegen gleich raus. Aber ich bin gerne bereit inhaltliche Fehler zu beseitigen, oder zusätzliche Informationen einzupflegen, in dem Fall mail an sd@morgenlan.de.


Site-Homepage
webmaster   Über diese Site

Hommingberger Gepardenforelle

So für alle, die bis hierhin gekommen sind, der restliche Text ist nur für den Wettbewerb bei heise und kann getrost ignoriert werden, aber wen es trotzdem interessiert, hier ein paar Links zu meinen Seiten für den Wettbewerb:

Homingberger Blog

Rezepte für die Homingberger Gepardenforelle