ORA-04031: unable to allocate string bytes of shared memory

Immunitet
Дата: 05.11.2008 09:39:03
Регулярно ловим сабж. Стоит SGA_TARGET=SGA_MAX_SIZE. Приложение при такой ошибке вывешивается и не подет признаков жизни до его перезагрузки.
В общем как это победить? Выставил помимо SGA_TARGET значение shared_pool_size=16 M - чтобы ниже не проваливался - та же история. Выставить его в еще большее значение?

-----------------------------------------------------------------------------------------------------------------------------
Ничего не дается нам так дешево и не ценится другими так дорого как вежливость
Camper
Дата: 05.11.2008 10:42:10
Что-то как-то...видать мало выделил памяти...Для начала нужно посмотреть вся ли используется.

select sum(bytes/1024/1024) from v$sgastat where pool = 'shared pool';
select sum(bytes/1024/1024) from v$sgastat;

show parameter shared_pool_size
show parameter sga_target

Если не хватает - поширить, если хватает - то копать в сторону лимитов для пользователей, если UNIX.
uname -a
pravednik
Дата: 05.11.2008 10:44:07
Immunitet,
а с чего вы взяли, что не хватает шаред пулу ?
Immunitet
Дата: 05.11.2008 10:51:43
pravednik
Immunitet,
а с чего вы взяли, что не хватает шаред пулу ?


ORA-04031: unable to allocate 16 bytes of shared memory ("shared pool","select obj#,type#,ctime,mtim...","sql area","tmp")

Это собственно кусок alert.log

OS Win 2000 (/3G)

SQL> select sum(value)/1024/1024 from v$sga;
SUM(VALUE)/1024/1024
--------------------
                 604
SQL>show parameter SGA_TARGET
       sga_target        604

Увеличил SGA_MAX_SIZE и SGA_TARGET до 900 M в spfile - будем ждать ночи для перезагрузки.