Ich habe eine leistungsstarke Maschine mit 70 GB RAM. Wie viele Oracle-Instanzen mit 20 GB können erstellt werden?

9

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 > 10Gselbst 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 -mzeigt, 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=20Gnur einer Instanz zu haben. Fehlt mir hier ein Konzept?

Die Ausgabe von ipcs -imist 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
user419534
quelle

Antworten:

13

Ihre Kernel-Parameter müssen geändert werden.

Bearbeiten Sie /etc/sysctl.confund stellen Sie sicher, dass die folgenden Zeilen vorhanden sind:

kernel.shmall = 18350080
kernel.shmmax = 75161927680
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128

Starten Sie dann den Computer neu.

Philᵀᴹ
quelle
Danke das funktioniert. Könnten Sie mir bitte mitteilen, wie Sie diese Werte für shmall, shmax und shmni usw. festlegen können. Gibt es eine Möglichkeit, diese zu berechnen?
user419534
3
shmmax ist die maximale Größe in Bytes eines einzelnen gemeinsam genutzten Speichersegments. Sie haben 70 GB RAM, also habe ich 70 * 1024 * 1024 * 1024 verwendet. shmall ist die maximale Summe aller gemeinsam genutzten Speichersegmente, die gleichzeitig existieren können und wird in Seiten gemessen. Die Seitengröße unter Linux beträgt normalerweise 4
KB
0

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

Nagendra Chillale
quelle