powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Заканчивается shared_pool
12 сообщений из 12, страница 1 из 1
Заканчивается shared_pool
    #39759191
selyukm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Помогите, пожалуйста! Не нашел решения проблемы в гугле.
Сервер: 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 очищается.
...
Рейтинг: 0 / 0
Заканчивается shared_pool
    #39759196
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selyukm,

каждый день, ночью, в скрипте rman, в конце:
Код: plsql
1.
sql 'ALTER SYSTEM FLUSH SHARED_POOL';



Ну или вручную, если не хотите использовать "горячий" бэкап (rman).
...
Рейтинг: 0 / 0
Заканчивается shared_pool
    #39759199
maxski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В вообще, я бы посмотрел в v$sqlarea: кто генерит курсоры, которые без bind variables.
...
Рейтинг: 0 / 0
Заканчивается shared_pool
    #39759200
selyukm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я так понимаю, что нельзя до бесконечности увеличивать shared_pool? Даже если мы его укажем 5000М. Все равно он закончится со временем.
...
Рейтинг: 0 / 0
Заканчивается shared_pool
    #39759223
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selyukmДаже если мы его укажем 5000М.Если укажешь 5000М, не сможешь стартовать БД.
...
Рейтинг: 0 / 0
Заканчивается shared_pool
    #39760693
selyukm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 дня всё ОК.
...
Рейтинг: 0 / 0
Заканчивается shared_pool
    #39760797
selyukm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Также заменили всю озу на сервере (2гбх4) на новую(4гбх4), проверив ее перед этим. Но shared_pool и дальше продолжает уменьшаться, примерно 10мб/час.
...
Рейтинг: 0 / 0
Заканчивается shared_pool
    #39760802
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selyukmТакже заменили всю озу на сервере (2гбх4) на новую(4гбх4)Зачем?
Лучше бы разрядность заменили.
...
Рейтинг: 0 / 0
Заканчивается shared_pool
    #39760845
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
select sql_id, count(*) from v$sql group by sql_id order by 2 desc;
select * from v$sql_shared_cursor where id = &sql_id;


А как семафоры рестартовали?
...
Рейтинг: 0 / 0
Заканчивается shared_pool
    #39760905
selyukm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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;
...
Рейтинг: 0 / 0
Заканчивается shared_pool
    #39760907
selyukm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
selyukm,
...
Рейтинг: 0 / 0
Заканчивается shared_pool
    #39760910
selyukm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Заканчивается shared_pool
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]