Ich habe eine leistungsstarke Maschine mit 70 GB RAM. Ich habe eine Oracle-Instanz mit 20 GB als sga_target erstellt. Ich kann keine weitere Oracle-Instanz erstellen, sga_target > 10G
selbst wenn ich die erste Datenbank nicht aktiv halte. Wenn ich es einstelle sga_target >=10G
, gibt es beim Start folgenden Fehler:
ORA-27104: Systemdefinierte Grenzwerte für gemeinsam genutzten Speicher wurden falsch konfiguriert
Während free -m
zeigt, dass es genügend Speicher gibt:
total used free shared buffers cached
Mem: 72419 34490 37928 0 618 28159
-/+ buffers/cache: 5711 66707
Swap: 2047 0 2047
Muss ich den Swap Space vergrößern? Jeder diesbezügliche Hinweis wird sehr geschätzt.
Auch für 70 GB Speicher, um viele Instanzen zu erstellen, was wäre der beste Wert für den Swap-Speicher - gibt es eine Möglichkeit, dies zu berechnen? Mein Ziel ist es, mindestens zwei Instanzen mit jeweils sga_target=20G
nur einer Instanz zu haben. Fehlt mir hier ein Konzept?
Die Ausgabe von ipcs -im
ist wie folgt
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 4194303
max total shared memory (kbytes) = 8388608
min seg size (bytes) = 1
quelle
Der Kernel-Parameter sollte ordnungsgemäß konfiguriert sein:
Oracle Database Installationshandbuch, 11g Release 2 (11.2) für Linux, Teilenummer E24321-04, 2.10 Konfigurieren der Kernelparameter für Linux ,
quelle
Das Einstellen des shmmax-Werts hängt davon ab, ob das Betriebssystem 32-Bit oder 64-Bit ist. Es gibt einen Metalink-Hinweis, der dies ausführlich erklärt.
Maximale SHMMAX-Werte für Linux x86 und x86-64 [ID 567506.1]
Guck dir das mal bitte an.
Es gibt auch einen Hinweis zu Shared Memory / Semaphoren für Oracle, der eine interessante Lektüre sein sollte.
TECH: Unix-Semaphoren und gemeinsamer Speicher erklärt [ID 15566.1]
Grüße, Nagendra Chillale
quelle