이 에러 메세지는 SQL 정보를 저장할 수 잇는 충분한 크기의 사용 가능 메모리 조각을 공유 풀의 프리리스트에서 찾지 못하고 또한 LRU리스트를 검색해도 찾지 못 할 경우 발생한다.

 이를 해결하기 위해서는 다음의 4가지를 고려할 수 있다.

 

 

1. Shared Pool 초기화 - Shared Pool 내에 존재하는 모든 내용을 제거하여 초기화를 수행할 수 있다. Shared Pool 내의 연속된 메모리 조각들을 하나의 조각으로 합쳐주는 역활을 수행하게 된다. 수행 방법은 다음과 같다.

  SQL> ALTER SYSTEM FLUSH SHARED_POOL;

그러나 위의 방법은 다른 SQL 정보도 Shared Pool에서 제거하므로 해당 명령어를 수행한 후에는 모든 SQL이 하드 구문 분석을 수행하게 되어 성능 저하가 발생 할 수 있다.

 

2. 패치 등을 고려 - ORA-4031 에러는 오라클 버그로 등록된 부분이 있으므로 해당 오라클 버전을 확인하여 오라클 패치 적용 및 업그레이드 등을 고려할 수 있다.

 

3. 파라미터 설정 - SHARED_POOL_RESERVED_SIZE 파라미터 설정을 통해 에러를 감소 시킬 수 있다.

 

4. Large Pool 설정 - 병렬 프로세싱을 사용한다면 Large Pool 설정으로 해당 에러를 감소 시킬 수 있다.

 

 

 

 



출처: http://boeok.tistory.com/entry/ORA4031-unable-to-allocate-s-bytes-of-shared-memory?category=564566 [Secret]

 

'CONSULTING SERVICE > Trouble Shooting' 카테고리의 다른 글

ORA-1652  (0) 2018.04.23
ORA-1651  (0) 2018.04.23
ORA-02097, ORA-00439  (0) 2018.04.23
ORA-19809, ORA-19804, ORA-19815  (0) 2018.04.23
libawt.so: libXp.so.6: cannot open shared object file:  (0) 2018.04.23
Posted by Any DB
,