Saya memiliki mesin yang kuat dengan 70 GB RAM. Berapa banyak instance Oracle dengan 20 GB yang dapat dibuat?

9

Saya memiliki mesin yang kuat dengan 70 GB RAM. Saya membuat satu instance Oracle dengan 20 GB sebagai sga_target. Saya tidak dapat membuat contoh Oracle lain sga_target > 10Gbahkan ketika saya menyimpan database pertama. Jika saya atur sga_target >=10Gini memberikan kesalahan di bawah saat startup:

ORA-27104: batas yang ditentukan sistem untuk memori bersama salah konfigurasi

Meskipun free -mmenunjukkan bahwa ada cukup memeory tersedia:

             total       used       free     shared    buffers     cached
Mem:         72419      34490      37928          0        618      28159
-/+ buffers/cache:       5711      66707
Swap:         2047          0       2047

Apakah saya perlu menambah ruang swap? Pointer apa pun dalam hal ini sangat dihargai.

Juga untuk memori 70 GB, untuk membuat banyak contoh, apa nilai terbaik untuk ruang swap - apakah ada cara untuk menghitungnya? Tujuan saya adalah memiliki setidaknya dua instance masing-masing dengan sga_target=20Gdan hanya akan menjaga satu instance pada satu waktu. Jika saya kehilangan konsep apa pun di sini?

Outputnya ipcs -imseperti di bawah ini

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 4194303
max total shared memory (kbytes) = 8388608
min seg size (bytes) = 1
pengguna419534
sumber

Jawaban:

13

Parameter kernel Anda perlu dimodifikasi.

Edit /etc/sysctl.confdan pastikan ada garis-garis berikut:

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

Kemudian reboot mesin.

Philᵀᴹ
sumber
Terima kasih, ini berhasil. Bisakah Anda memberi tahu saya bagaimana Anda dapat memutuskan nilai-nilai ini untuk shmall, shmax dan shmni dll. Apakah ada cara untuk menghitung ini?
user419534
3
shmmax adalah ukuran maksimum dalam byte dari satu segmen memori bersama, Anda memiliki 70Gb RAM jadi saya menggunakan 70 * 1024 * 1024 * 1024. shmall adalah jumlah maksimum semua segmen memori bersama yang dapat ada sekaligus & diukur dalam halaman. Ukuran halaman di Linux biasanya 4k, jadi saya membagi nomor shmmax dengan 4096.
Philᵀᴹ
0

Pengaturan nilai shmmax tergantung pada apakah OS adalah 32-Bit atau 64-Bit. Ada catatan metalink yang menjelaskan tentang ini secara rinci.

Nilai SHMMAX maksimum untuk Linux x86 dan x86-64 [ID 567506.1]

Mohon dilihat.

Ada juga catatan tentang Memori Bersama / Semafor untuk Oracle yang seharusnya menjadi bacaan yang menarik.

TECH: Unix Semaphores dan Memori Bersama Dijelaskan [ID 15566.1]

Salam, Nagendra Chillale

Nagendra Chillale
sumber