|
Заканчивается shared_pool
|
|||
---|---|---|---|
#18+
Добрый день! Помогите, пожалуйста! Не нашел решения проблемы в гугле. Сервер: Windows Server 2003 32bit, 8гб fb-ddr2(система поддерживает до 64ГБ озу). Версия Oracle 11.2.0.3. База ночью отключается для холодного копирования каждый день. Летом 2018 после запуска функциональности "выпуск виртуальной карты" стала возникать проблема с недостатком shared_pool. Сколько памяти свободно смотрю селектом: select * from v$sgastat order by bytes desc Сразу после рестарта свободно shared_pool 600M и все время уменьшается, примерно 100-120М в день. И потом как эта память заканчивается, выдает ошибку ORA-04031 (невозможно выделить память shared_pool для процесса ИМЯ_ПРОЦЕССА). Также по селекту выше вижу, что память съедают 2 процесса: SQLA и KGLH0. Изначально размер shared_pool был 300М, сделали 768М. Все равно не помогло. Помогает при ошибке рестарт семафоров, после чего shared_pool очищается. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2019, 10:00 |
|
Заканчивается shared_pool
|
|||
---|---|---|---|
#18+
selyukm, каждый день, ночью, в скрипте rman, в конце: Код: plsql 1.
Ну или вручную, если не хотите использовать "горячий" бэкап (rman). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2019, 10:08 |
|
Заканчивается shared_pool
|
|||
---|---|---|---|
#18+
В вообще, я бы посмотрел в v$sqlarea: кто генерит курсоры, которые без bind variables. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2019, 10:13 |
|
Заканчивается shared_pool
|
|||
---|---|---|---|
#18+
Я так понимаю, что нельзя до бесконечности увеличивать shared_pool? Даже если мы его укажем 5000М. Все равно он закончится со временем. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2019, 10:13 |
|
Заканчивается shared_pool
|
|||
---|---|---|---|
#18+
selyukmДаже если мы его укажем 5000М.Если укажешь 5000М, не сможешь стартовать БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2019, 11:12 |
|
Заканчивается shared_pool
|
|||
---|---|---|---|
#18+
http://www.sql.ru/forum/208727/vospriyate-bolee-4-gb-op-oracle-pod-windows Пока сделали так: 1)добавили в boot.ini /3GB /PAE 2) создали в реестре параметр AWE_WINDOW_MEMORY, оставив его пустым. 3) установили sga_max= 1280м, shared_pool=768м. Сам процесс oracle.exe ранее потреблял 500-600М ОЗУ, счас уже 1100М. shared_pool свободно 220М: select * from v$sgastat where name = 'free memory' Пока2 дня всё ОК. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2019, 10:54 |
|
Заканчивается shared_pool
|
|||
---|---|---|---|
#18+
Также заменили всю озу на сервере (2гбх4) на новую(4гбх4), проверив ее перед этим. Но shared_pool и дальше продолжает уменьшаться, примерно 10мб/час. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2019, 12:56 |
|
Заканчивается shared_pool
|
|||
---|---|---|---|
#18+
selyukmТакже заменили всю озу на сервере (2гбх4) на новую(4гбх4)Зачем? Лучше бы разрядность заменили. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2019, 13:00 |
|
Заканчивается shared_pool
|
|||
---|---|---|---|
#18+
KGLH0 вроде используется для динамического распределения памяти, типа буфера для переноса между shared pool и buffer cache - можно поробовать перейти на мануальное управление. Еще есть баг 14770516 SGA memory leak in KGLH0 under shared pool (Doc ID 14770516.8) - пофикшен в 12м. sqla растет из-за неиспользования bind переменных(у Кайта был скрипт для поиска таких) или из-за adaptive свистоперделок - Код: plsql 1. 2.
А как семафоры рестартовали? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2019, 13:41 |
|
Заканчивается shared_pool
|
|||
---|---|---|---|
#18+
Melkomyagkii_newbi, set scan off set termout off spool semafore_stop.log set termout on ---------------------------------------------------------- --- Stop queues ---------------------------------------------------------- set termout on prompt - Stopping queues set termout off declare begin for i in (select name from user_queues) loop begin execute immediate 'BEGIN DBMS_AQADM.STOP_QUEUE(queue_name => '''||i.name||'''); end; '; dbms_output.put_line ('Queue '||i.name||' stopped OK.'); exception when others then dbms_output.put_line(sqlerrm); end; end loop; end; / ---------------------------------------------------------- --- Stop registration job ---------------------------------------------------------- set termout on prompt - Stopping semaphore set termout off exec if izd_semaphore_s.StopServer then null; end if; / exit; ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2019, 14:47 |
|
Заканчивается shared_pool
|
|||
---|---|---|---|
#18+
selyukm, ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2019, 14:49 |
|
|
start [/forum/topic.php?fid=52&fpage=87&tid=1882925]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 304ms |
total: | 433ms |
0 / 0 |