이 문제를 진단하고 해결하는 방법에 대한 몇 가지 지침이 필요합니다. 이것이 단순한 서버 설정 문제인지 또는 응용 프로그램 설계 문제인지 (또는 둘 다) 나는 모르겠습니다.ORA-4031 "x 바이트의 공유 메모리를 할당 할 수 없습니다"
몇 달에 한두 번이 Oracle XE 데이터베이스는 ORA-4031 오류를보고합니다. 그것은 sga의 특정 부분을 일관되게 가리 키지 않습니다. 최근의 예는 다음과 같습니다
ORA-04031: unable to allocate 8208 bytes of shared memory ("large pool","unknown object","sort subheap","sort key")
사용자가 다른 링크를 클릭, 상쾌하게 유지하는 경우이 오류가 나오면, 그들은 일반적으로 다음 곧 그들이, 서로 다른 시간에 이러한 종류의 오류를 더 얻을 것이다 "404 찾을 수 없음"페이지 오류가 발생합니다.
데이터베이스를 다시 시작하면 잠시 동안 문제가 해결되고 한 달 정도 지나면 다시 나타나지만 프로그램의 동일한 위치에서는 드물게 발생합니다 (즉, 코드의 특정 부분과 연결되지 않은 것처럼 보임) (위의 예제 오류는 테이블에서 5000 개 이상의 행을 정렬하는 Apex 페이지에서 발생했습니다).
나는 sga_max_size
을 140M에서 256M으로 늘리려고 노력했으며, 이것이 도움이되기를 바랍니다. 물론, 설정을 변경하기 위해 데이터베이스를 다시 시작해야했기 때문에 이것이 도움이되었는지 알 수 없습니다 :)
Oracle Enterprise Linux 5 상자에서 512MB의를 사용하여 Oracle XE 10.2.0.1.0을 실행하고 있습니다. 램. 서버는 데이터베이스, Oracle Apex (v3.1.2) 및 Apache 웹 서버 만 실행합니다. 거의 모든 기본 매개 변수를 사용하여 설치했으며 1 년 정도 동안 계속 실행되었습니다. 대부분의 문제 저는 응용 프로그램 코드를 조정하여 스스로 해결할 수있었습니다. 집중적으로 사용되지는 않으며 비즈니스에 중요한 시스템이 아닙니다. 는 현재 SGA 크기에 어떤 도움이 여기 있다면
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
:
이
내가 관련이있을 수 있습니다 생각하는 일부 현재 설정입니다Total System Global Area 268435456 bytes
Fixed Size 1258392 bytes
Variable Size 251661416 bytes
Database Buffers 12582912 bytes
Redo Buffers 2932736 bytes
추가 정보 : http://download.oracle.com/docs/cd/B19306_01/server. 102/b14231/create.htm # sthref376 –
btw large_pool_size가 0 (즉, ASMM에 의해 자동으로 관리 됨) –
언급 한 데이터베이스 구성 및 다른 프로세스의 경우 512M RAM이 부족한 것으로 보입니다. top이나 vmstat과 같은 툴은 OS 레벨에서의 메모리에 대해 무엇을 말합니까? – dpbradley