Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

I'm trying to establish an Oracle database connection. It throws the following exception:

ORA-04031: unable to allocate 4048 bytes of shared memory 
  ("shared pool","unknown object","sga heap(1,0)","kglsim heap")

I have tried connecting the database through JDBC as well as SQL Developer, however it throws the exception in both case.

How can I fix this?

share|improve this question

migrated from stackoverflow.com Jun 24 '13 at 11:57

This question came from our site for professional and enthusiast programmers.

marked as duplicate by Paul White, RolandoMySQLDBA, Kin, ypercube, Mark Storey-Smith Feb 25 '14 at 7:51

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

First Google hit on your error message gives a lot of info. –  Rene Jun 24 '13 at 9:02

1 Answer 1

Oracle 10g or earlier? Probably you already restarted the database. Then you can check SQL Area: SELECT sql_text, parsing_schema_name, executions FROM v$sqlarea ORDER BY executions desc; If there are tens of thousands SQLs with 1 execution - you are having shared pool fragmentation. To avoid future exceptions either rewrite SQLs (usually not using binding variables causes SQL area bloat) or upgrade to 11g. It better handles shared pool fragmentation.

share|improve this answer