Причина ошибки ORA-04030: out of process memory?

Добрый день.

Вопрос не так прост, как может показаться с первого вгляда. Имеем окружение Solaris x64. Стоит один (по крайней мере должен стоять один) инстанс Оракла.

RAM: 132Gb

Пытаемся выставить вот такие параметры:
DB_CACHE_ADVICE = 'OFF'
NLS_LENGTH_SEMANTICS = CHAR
MEMORY_MAX_TARGET = 0
MEMORY_TARGET = 0
SGA_MAX_SIZE = 10G
SGA_TARGET = 10G
PGA_AGGREGATE_TARGET = 4GB
DB_CACHE_SIZE = 5G
SHARED_POOL_SIZE = 1G
SHARED_POOL_RESERVED_SIZE = 35M
RESULT_CACHE_MAX_SIZE = 25M
DB_KEEP_CACHE_SIZE = 100M


Но после перезапуска сервер не стартует, падая с ошибкой ORA-04030: out of process memory when trying to allocate 256 bytes (Heap0: KGL,kglob).

То, что гуглилось, сразу проверили:
oracle@server1 $ prctl -n project.max-shm-memory -i project default
project: 3: default
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-shm-memory
privileged 31.4GB — deny —
system 16.0EB max deny

ROOT@server1 [UAT Active] /root# swap -l
swapfile dev swaplo blocks free
/dev/swap 0,0 16 76523504 76523504

ROOT@server1 [UAT Active] /root# prtconf |grep -i mem
prtconf:
Memory size: 131072 Megabytes

ROOT@server1 [UAT Active] /root# cat /etc/system
set noexec_user_stack=1
set noexec_user_stack_log=1


Лимиты проверили:
server1 [UAT Active] /root# ulimit -H -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) unlimited
coredump(blocks) unlimited
nofiles(descriptors) 65536
vmemory(kbytes) unlimited


Подскажите путь куда копать! Совсем ступор.
  • Вопрос задан
  • 11586 просмотров
Пригласить эксперта
Ответы на вопрос 6
smartov
@smartov Автор вопроса
Уточню. Добавлю сюда.
Проблема осложняется ещё и тем что сервер принадлежит англичанам и рулить они нам на нём не дают. Отсылаем им команды — они выполняют — присылают результат.
Ответ написан
Комментировать
smartov
@smartov Автор вопроса
ulimit из под oracle

[oracle]oracle@server1 $ ulimit -Ha
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) unlimited
coredump(blocks) unlimited
nofiles(descriptors) 65536
vmemory(kbytes) unlimited
Ответ написан
Комментировать
smartov
@smartov Автор вопроса
Версия: Oracle 11.1
Ответ написан
Комментировать
smartov
@smartov Автор вопроса
Оставлю тут ответ. Вдруг кому пригодится.
Всё работает если не выставлять параметр

DB_KEEP_CACHE_SIZE = 100M
Ответ написан
Комментировать
smartov
@smartov Автор вопроса
Почему — хз. Явно баг Оракла.
Ответ написан
Комментировать
@sidewinder1
У меня такая же ошибка возникла. Попробуй уменьшить PGA_AGGREGATE_TARGET и/или увеличить SWAP.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы