У меня мощная машина с 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
источник
Параметр ядра должен быть настроен правильно:
Руководство по установке базы данных Oracle, 11g, выпуск 2 (11.2) для Linux, номер детали E24321-04, 2.10 Настройка параметров ядра для Linux ,
источник
Установка значения shmmax зависит от того, является ли ОС 32-битной или 64-битной. Есть металинк, который подробно объясняет это.
Максимальные значения SHMMAX для Linux x86 и x86-64 [ID 567506.1]
Пожалуйста, посмотрите.
Есть также заметка о Shared Memory / Semaphores для Oracle, которая должна быть интересной для чтения.
TECH: объяснение семафоров Unix и общей памяти [ID 15566.1]
С уважением, Нагендра Чилла
источник