У мене потужна машина з 70 ГБ оперативної пам’яті. Скільки екземплярів Oracle об'ємом 20 ГБ можна створити?


9

У мене потужна машина з 70 ГБ оперативної пам’яті. Я створив один екземпляр Oracle об'ємом 20 ГБ як sga_target. Я не в змозі створити інший екземпляр Oracle sga_target > 10Gнавіть тоді, коли я затримую першу базу даних. Якщо я встановив, sga_target >=10Gце дає помилку під час запуску:

ORA-27104: визначені системою обмеження для спільної пам'яті неправильно налаштовано

Хоча free -mпоказує, що пам’ятка доступна, хоча:

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

Чи потрібно збільшувати простір підкачки? Будь-який вказівник у цьому плані високо оцінений.

Крім того, для 70 Гб пам'яті, для створення багатьох примірників, що було б найкращим значенням для місця обміну - чи є якийсь спосіб прорахувати це? Моя мета - мати принаймні по два екземпляри в кожній sga_target=20Gі триматимуть лише один екземпляр одночасно. Якщо я тут пропускаю якусь концепцію?

Вихід ipcs -im, як показано нижче

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

Відповіді:


13

Ваші параметри ядра потребують зміни.

Відредагуйте /etc/sysctl.confта переконайтеся, що присутні наступні рядки:

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

Потім перезавантажте машину.


Завдяки цьому працює. Чи можете ви, будь ласка, дозволите мені знати, як ви могли вирішити ці значення для shmall, shmax та shmni тощо? Чи є спосіб, щоб їх обчислити?
user419534

3
shmmax - максимальний розмір у байтах одного сегмента спільної пам'яті, у вас є 70 Гб оперативної пам’яті, тому я використав 70 * 1024 * 1024 * 1024. shmall - максимальна сума всіх сегментів спільної пам'яті, які можуть існувати одночасно & вимірюється на сторінках. Розмір сторінки в Linux зазвичай становить 4 к, тому я розділив число shmmax на 4096.
Philᵀᴹ


0

Встановлення значення shmmax залежить від того, чи є ОС 32-бітною або 64-бітовою. Є записка про металінку, яка детально пояснює це.

Максимальні значення SHMMAX для Linux x86 та x86-64 [ID 567506.1]

Будь ласка, подивіться.

Також є примітка про Спільну пам'ять / Семафори для Oracle, які повинні бути цікавими для читання.

TECH: Роз'яснення семафорів і спільної пам'яті Unix [ID 15566.1]

З повагою, Nagendra Chillale

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.