====== Linux - System V - IPC-Parameter und die Oracle Datenbank======
**Alle Versionen**
=== Die Parameter ===
^Name^Beschreibung^Vernünftige Werte^
|SHMMAX |Maximale Größe eines Shared-Memory-Segments (Bytes)|250 kB + 8.2 kB * shared_buffers + 14.2 kB * max_connections bis unendlich|
|SHMMIN|Minimale Größe eines Shared-Memory-Segments (Bytes)|1|
|SHMALL|Gesamtgröße des verfügbaren Shared Memory (Bytes oder Seiten)| wenn Bytes, dann gleich SHMMAX; wenn Seiten, dann ceil(SHMMAX/PAGE_SIZE)|
|SHMSEG|Maximale Anzahl von Shared-Memory-Segmenten pro Prozess| nur 1 Segment wird benötigt, aber die Voreinstellung ist viel höher|
|SHMMNI|Maximale Anzahl von Shared-Memory-Segmenten im ganzen System|wie SHMSEG plus Platz für andere Anwendungen|
|SEMMNI|Maximale Anzahl von Semaphorbezeichnern in einer Gruppe/Array |mindestens ceil(max_connections / 16)|
|SEMMNS|Maximale Anzahl von Semaphoren im ganzen System|ceil(max_connections / 16) * 17 plus Platz für andere Anwendungen|
|SEMMSL|Maximale Anzahl von Semaphoren pro Gruppe/Array|mindestens 17|
|SEMMAP|Anzahl Einträge in Semaphorkarte||
|SEMVMX|Maximalwert eines Semaphors|mindestens 255 (Der Standard ist oft 32767; nicht ändern wenn nicht nötig.)|
=== Aktueller Werte anzeigen: ==
find /proc/sys -type f -exec sh -c "echo \"{}: \`cat {}\`\"" \;
ipcs -l
== Verbrauch der Semaphore Arrays überprüfen==
ipcs -s
=== Die typischen Oracle Defaults setzen ===
/etc/sysctl.conf:
kernel.sem = 250 32000 100 128
SEMMSL=250, SEMMNS=32000, SEMOPM=100, SEMMNI=128
* 250 = SEMMSL = number of semaphores total per array / set
* 32000 = SEMMNS = maximum total number of semaphores available
* 100 = SEMOPM = Defines the maximum number of operations for each semaphore call
* 128 = SEMMNI = number of arrays available system wide = total semaphore sets
Der Wert für SEMMSL sollte 10 plus die Anzahl aller "PROCESSES" Parameter aller Datenbanken zusammen auf dem System sein!
====== Quellen: ======
9i/10g
* http://www.idevelopment.info/data/Oracle/DBA_tips/Linux/LINUX_8.shtml#Configuring%20File%20Handles
* http://www.puschitz.com/TuningLinuxForOracle.shtml
* http://documentation.commvault.com/hds/release_8_0_0/books_online_1/english_us/features/resources/configure_kernel_parms_how_to.htm
* https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Tuning_and_Optimizing_Red_Hat_Enterprise_Linux_for_Oracle_9i_and_10g_Databases/sect-Oracle_9i_and_10g_Tuning_Guide-Setting_Semaphores-An_Example_of_Semaphore_Settings.html
11g
* http://blog.ronnyegner-consulting.de/2009/10/28/calculate-required-kernel-parameters-for-running-oracle-11g-release-2-on-linux/
Oracle Support:
* How are the Number of Semaphores per set Calculated on a Unix platforms? (Doc ID 261421.1)
* TECH: Unix Semaphores and Shared Memory Explained (Doc ID 15566.1)