Potrzebuję wskazówek, jak zdiagnozować i rozwiązać ten problem. Nie wiem, czy jest to prosty problem z konfiguracją serwera lub problem z projektowaniem aplikacji (lub obu).Rozwiązywanie ORA-4031 "nie można przydzielić x bajtów pamięci współużytkowanej"
Raz lub dwa razy w ciągu kilku miesięcy ta baza danych Oracle XE zgłasza błędy ORA-4031. Nie wskazuje konkretnej części sgi konsekwentnie. Najnowszym przykładem jest:
ORA-04031: unable to allocate 8208 bytes of shared memory ("large pool","unknown object","sort subheap","sort key")
Gdy ten błąd pojawia się, gdy użytkownik trzyma orzeźwiający, klikając na różnych linków, oni ogólnie dostać więcej tych rodzajów błędów w różnych momentach, a następnie szybko oni Pojawią się błędy na stronie "404 nie znaleziono".
Ponowne uruchomienie bazy danych zazwyczaj rozwiązuje problem przez pewien czas, a następnie miesiąc lub później później pojawia się ponownie, ale rzadko w tej samej lokalizacji w programie (tj. Nie jest związany z żadną określoną częścią kodu) (powyższy przykład błędu został zgłoszony ze strony Apex, która sortowała 5000+ wierszy z tabeli).
Próbowałem zwiększyć liczbę sga_max_size
z 140M do 256M i mam nadzieję, że to pomoże. Oczywiście nie będę wiedział, czy to pomogło, ponieważ musiałem ponownie uruchomić bazę danych, aby zmienić ustawienie :)
Używam Oracle XE 10.2.0.1.0 na pudełku Oracle Enterprise Linux 5 z 512 MB BARAN. Serwer uruchamia tylko bazę danych Oracle Apex (v3.1.2) i serwer WWW Apache. Zainstalowałem go z prawie wszystkimi domyślnymi parametrami i działa już całkiem dobrze od roku. Większość problemów, które udało mi się rozwiązać samodzielnie, dostrajałem kod aplikacji; nie jest intensywnie wykorzystywany i nie jest systemem krytycznym dla biznesu.
Oto niektóre bieżące ustawienia myślę, że może być istotne:
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
Jeśli to każda pomoc oto obecne rozmiary SGA:
Total System Global Area 268435456 bytes
Fixed Size 1258392 bytes
Variable Size 251661416 bytes
Database Buffers 12582912 bytes
Redo Buffers 2932736 bytes
Dodatkowe informacje: http://download.oracle.com/docs/cd/B19306_01/server. 102/b14231/create.htm # sthref376 –
btw large_pool_size to 0 (tj. Automatycznie zarządzane przez ASMM) –
512M pamięci RAM wydaje się niskie dla konfiguracji bazy danych + innych procesów, o których wspomniałeś. Co narzędzia takie jak top lub vmstat mówią o pamięci na poziomie systemu operacyjnego? – dpbradley