Мне нужно несколько указателей на то, как диагностировать и исправлять эту проблему. Я не знаю, является ли это простой проблемой установки сервера или проблемой дизайна приложения (или и того и другого).
Один или два раза каждые несколько месяцев эта база данных Oracle XE сообщает об ошибках ORA-4031. Он не указывает на какую-либо конкретную часть sga последовательно. Недавний пример:
ORA-04031: unable to allocate 8208 bytes of shared memory ("large pool","unknown object","sort subheap","sort key")
Когда эта ошибка возникает, если пользователь продолжает обновляться, нажимая на разные ссылки, они обычно получают больше таких ошибок в разное время, а затем вскоре получат ошибки страницы "404 не найдены".
Перезапуск базы данных обычно устраняет проблему на некоторое время, затем через месяц или около того она снова появляется, но редко в одном месте в программе (то есть она не кажется связанной с какой-либо конкретной частью кода) ( приведенная выше ошибка была поднята с страницы Apex, которая сортировала 5000+ строк из таблицы).
Я пробовал увеличивать sga_max_size
с 140M до 256M и надеюсь, что это поможет. Конечно, я не буду знать, помогло ли это, так как мне пришлось перезапустить базу данных, чтобы изменить настройку:)
Я запускаю Oracle XE 10.2.0.1.0 в ящике Oracle Enterprise Linux 5 с 512 МБ ОЗУ. На сервере работает только база данных, Oracle Apex (v3.1.2) и веб-сервер Apache. Я установил его с почти всеми параметрами по умолчанию, и он работал довольно хорошо в течение года или около того. Большинство проблем, которые я смог решить, настраивая код приложения; он не интенсивно используется и не является критически важной для бизнеса системой.
Вот некоторые текущие настройки, которые, я думаю, могут иметь значение:
pga_aggregate_target 41,943,040
sga_max_size 268,435,456
sga_target 146,800,640
shared_pool_reserved_size 5,452,595
shared_pool_size 104,857,600
Если это поможет здесь текущие размеры SGA:
Total System Global Area 268435456 bytes
Fixed Size 1258392 bytes
Variable Size 251661416 bytes
Database Buffers 12582912 bytes
Redo Buffers 2932736 bytes