ORA-04031: unable to allocate 33568 bytes of shared memory  in Oracle 10g

Hi,
I am getting following message frequently while taking export in Oracle 10g database:-
EXP-00008: ORACLE error 4031 encountered
ORA-04031: unable to allocate 33568 bytes of shared memory ("shared pool","DBMS_REPCAT_UTL","PL/SQL MPCODE","BAMIMA: Bam Buffer")
ORA-06508: PL/SQL: could not find program unit being called: "SYS.DBMS_REPCAT_UTL"
ORA-06512: at "SYS.DBMS_REPCAT_EXP", line 87
ORA-06512: at line 1
EXP-00083: The previous problem occurred when calling SYS.DBMS_REPCAT_EXP.schema_info_exp
EXP-00008: ORACLE error 4031 encountered
ORA-04031: unable to allocate 16416 bytes of shared memory ("shared pool","SELECT SYNNAM, SYNNAM, SYNTA...","kgghtInit","kgghtInit")
EXP-00000: Export terminated unsuccessfully
Whats could be the reason?

There could be a few reasons causing the problem. From literal message it would look like your shared pool size is small and you need to increase. But the root cause of the problem is a little more complicated than that. I suggest you read metalink doc
Diagnosing and Resolving Error ORA-04031
Doc ID: Note:146599.1

Similar Messages

  • ORA-04031: unable to allocate 64 bytes of shared memory

    Hi All,
    We are performing System copy on a distributed environment with OS Windows 2003 and DB Oracle 10.2.0.4
    While importing the Database (ABAP) only ,we are facing error and 5 import steps are failing  in Import ABAP phase.
    Error is "ORA-00604: error occurred at recursive SQL level 1
    ORA-04031: unable to allocate 4120 bytes of shared memory ("shared pool","select user#,type# from user...","Typecheck","kgghteInit")
    (DB) INFO: disconnected from DB"
    There is already one Oracel Instance OracleXX1 is runing this is the second instance and the server has around 1.75 GB RAM...i
    Can you please suggest what could be the error.
    Regards
    Ajay

    Dears,
    Please try increase your database parameter shared_pool_size in pfile and then try to resume the activity.
    Regards,
    Shivam

  • ORA-04031: unable to allocate 4096 bytes if shared memory

    Hello Gurus,
    Did anyone got this type of error before:
    ERROR:
    ORA-20414: Materialized View refresh failed - ORA-12008: error in materialized view refresh path
    ORA-04031: unable to allocate 4096 bytes of shared memory ("shared pool","IDX_MIF_SITE","pacdHds_kkpaco","stP_kkpacd: kkpodPacdInit")
    Every sunday full refresh of the data warehouse is scheduled. This sunday it didn't complete and gave us the above error. This can be solved by increasing the shared pool memory size. But DBA doesnot want to increase it every sunday(This has been going on for 3 weeks now) and it's not feasible to increase like this everytime.
    We want to find the actual cause of it and fix?
    Does anyone know the solution or can throw some light on this issue?
    Thanks,
    Sanjay

    We want to find the actual cause of it and fix?The cause is simple - you have run out of memory assigned to the Shared Pool in the SGA.
    The root cause is more of an issue. The Shared Pool is mostly used for keeping the SQL statements and supporting information (such as cursor support). Each unique SQL statement requires it's own area in the shared pool, however identical statements can used the same (shared) area. Shared Pool is also used to store the 'current' data dictionary (table, view, etc.) information. And in some cases, it's also used for 'large' operations such as direct path insert block builds.
    Some of the possible reasons for running out of shared pool might include
    - it's simply undersized;
    - not enough SQL is actually shareable;
    - the large pool has not been allocated.
    That second one is frequent when the application builds up SQL statements by concatenating pieces, including literals (user input) and then executing the unique statement. This is a common technique by developers using .Net, Perl or having SQL Server background. (That mode of operation is very susceptible to SQL Injection.)
    You can get a lot more info from:
    - searching the forum;
    - looking in the docco (Concepts manual and Performance Tuning guide);
    - books, like Tom Kyte's "Expert One on One Oracle", "Effective Oracle By Design", and newer on apress.com

  • ORA-04031: unable to allocate 128 bytes of shared memory

    Hi,
    experts i need your advice here,
    in my application we have on so called Master view which has 550 columns, this view is left outer join with 60 other views, something like
    select c1
    from   master_view
             left outer join v1 on --
             left outer join v2 on --
             left outer join v60 the compilation of the master view takes around 140 secs, but when i give grants to other users, or i re compile again, it shows me the error
    ORA-04031: unable to allocate 128 bytes of shared memory plz assist me how i should resolve this issue,
    Regards
    nic

    Hi billy,
    your idea worked big big time,
    i encaspulated all the outer joins views in small small views and finally build mv on each views,
    the master view is plain equijoin, and has only 5 new mvs in its join condition,
    the performance is increased tremendously,
    thanks,
    some times i wonder y i dont get such ides ;-);
    all and all i can say,
    good judgement comes from good experience, but good experience comes from bad judgement...
    Regards
    nic

  • ORA-04031 unable to allocate 4080 bytes of shared memory

    Hi Everyone,
    The error ORA-04031 has been consistently occuring in our production landscape.
    We have Applied Oracle patches in BI7.0 (2004s - Oracle 10.2.0.2) system as per SAP's suggestions.  (A set of 35 patches as per note 871096)
    (Patches List - 5369855,5253307,6340979,5618049,7133360,5895190,6826661,4704890,6005996,5188321,6447320,3748430,5442919,4952782,5458753,5941030,5345999,6153847,5530958,4883635,5636728,4668719,5635254,5063279,7237154,5103126,4638550,4770693,4864648,6046043,7608184,6729801,5363584,6771608,6435823)
    Applying oracle patches has not resolved this issue.  The error is reoccuring.  Now as per notes 1171650 and 830576 we have tuned in certain parameters.
    We also checked the Notes 869006 and 1120481 but nothing much is helpful. 
    A Go-Live is scheduled this week.  Could you please suggest what further actions need to be taken to identify the issue and resolve it.
    Thanks in advance.
    Best Regards
    Bhupesh

    Hi Stefan / Jens,
    Thanks for the help so far.
    Running the SQL statement produced more than 21000 rows.  We could get an idea as to which statement is using more memory.
    Top 5 statements are as below
    SQL> select * from (SELECT SQL_text, SHARABLE_MEM, PERSISTENT_MEM, RUNTIME_MEM FROM V$SQLAREA ORDER BY SHARABLE_MEM desc) where rownum <=5;
    SQL_TEXT
    SHARABLE_MEM PERSISTENT_MEM RUNTIME_MEM
      select a.segment_type,         round(a.mb,2) size_mb,         round(decode(seg_num,0,0,a.mb/a.seg_num),2) size_avg_mb,         a.seg_num,         a.ext_num,              nvl(b.more100ext,0) more100ext,         decode(lower(a.segment_type),'table',c.com_tab,                                      'index',d.com_ind,                                         'table partition',e.com_tpar,                                    'index partition',f.com_ipar,                         0) compressed,          decode(lower(a.segment_type),'table',g.log_tab,                                      'index',h.log_ind,                                'table partition',i.log_tpar,                                     'index partition',j.log_ipar,                                    'lobsegment',k.log_lob,                                 'lobindex',k.log_lob,                                     0) nologging  from (select segment_type,               nvl(count(*),0) seg_num,                    sum(nvl(bytes,0))/10
         1257431         441584      436528
      select a.username user_name,         a.user_id user_id,         round(nvl(b.mb,0),2) size_mb,         nvl(b.seg,0) segments,         nvl(c.tab,0) tables,     nvl(d.ind,0) indexes,          nvl(b.ext,0) extents,         a.default_tablespace default_tablespace,         a.temporary_tablespace temporary_tablespace,      to_char(a.created, 'dd.mm.yyyy') created,         to_char(a.created, 'hh:mm:ss') created,         a.account_status account_status,         a.profile profile  from    dba_users a,    (select owner, count() seg, sum(nvl(bytes,0))/1024/1024 mb,         sum(nvl(extents,0)) ext     from dba_segments group by owner) b, (select owner, count() tab from dba_segments     where segment_type='TABLE' group by owner) c,    (select owner, count(*) ind from dba_segments     where segment_type='INDEX' group by owner) d  where a.username=b.owner() and     a.username=c.owner() and        a.username=d.owner(+)
          578473         200064      196176
    SELECT count(*) over () as total_count,        sd_xe_ash_nm.event_name,        sd_xe_ash_nm.event_id,        sd_xe_ash_nm.parameter1 as p1text,        (CASE WHEN (sd_xe_ash_nm.parameter1 is NULL                 OR                    sd_xe_ash_nm.parameter1 = '0')              THEN 0              ELSE 1         END) as p1valid,     sd_xe_ash_nm.parameter2 as p2text,        (CASE WHEN (sd_xe_ash_nm.parameter2 is NULL                    OR                    sd_xe_ash_nm.parameter2 = '0')           THEN 0              ELSE 1         END) as p2valid,        sd_xe_ash_nm.parameter3 as p3text,        (CASE WHEN (sd_xe_ash_nm.parameter3 is NULL                         OR                    sd_xe_ash_nm.parameter3 = '0')              THEN 0              ELSE 1         END) as p3valid,        sd_xe_ash_nm.keh_evt_id,        nvl(xc.class#, 0) as class_num,             sd_xe_ash_nm.wait_class_id,        nvl(xc.keh_id, 0) as keh_ecl_id,    sd_xe_ash_nm.ash_cnt,         sd_xe_ash_nm.tot_wts_diff,
          453779         138168      132136
      select    a.name db_name,    round((nvl(b.data_KB,0)nvl(c.temp_KB,0))/1024/1024,2) size_gb,    round((nvl(b.data_KB,0)-nvl(d.data_free,0)             nvl(e.temp_KB_used,0))/1024/1024,2) used_gb,         round((nvl(d.data_free,0)nvl(c.temp_KB,0)-     nvl(e.temp_KB_used,0))/1024/1024,2) free_gb,    to_char(((nvl(b.data_KB,0)-nvl(d.data_free,0)           nvl(e.temp_KB_used,0))/(nvl(b.data_KB,0)+              nvl(c.temp_KB,0)))100, '999') percent_used,    to_char(((nvl(d.data_free,0)nvl(c.temp_KB,0)-           nvl(e.temp_KB_used,0))/(nvl(b.data_KB,0)              nvl(c.temp_KB,0)))100, '999') percent_free,    f.num_seg,    g.num_ts,    h.num_us, to_char((nvl(b.data_KB,0)/(nvl(b.data_KB,0)+             nvl(c.temp_KB,0)))100,'999') percent_data,    to_char((nvl(c.temp_KB,0)/(nvl(b.data_KB,0)+          nvl(c.temp_KB,0)))100,'999') percent_temp,    round(to_char((f.tab_kb/(nvl(b.data_KB,0)+                    nvl(c.temp_KB,0)))*100,'999'),0) percent_tab,    round(to_char((f.
          449213         154968      151184
      select ts,         round(size_mb,2) size_mb,         round(free_mb,2) free_mb,         round(decode(size_mb,0,'',(size_mb-           free_mb)100/size_mb),0) per_used,      autoextensible,         round(total_size_mb,2) tot_size_mb,         round(total_free_mb,2) tot_free_mb,         round(decode(total_size_mb,0,'',(total_size_mb-        total_free_mb)100/total_size_mb),0) per_tot_used,         files,         segments,         extents,         status,         contents  from    (select a.tablespace_name ts,         nvl(c.mb,0)nvl(e.mb,0) size_mb,            decode(lower(a.contents),'temporary',              nvl(e.mb,0)-nvl(f.used_mb,0),nvl(d.free_mb,0))           free_mb,            nvl(c.files,0)nvl(e.files,0) files,            nvl(b.seg,0) segments,            nvl(b.ext,0) extents,         decode(lower(a.contents),'temporary',         decode(sign(nvl(e.tot_mb,0)-nvl(e.mb,0)),1,'YES','NO'),         decode(sign(nvl(c.tot_mb,0)-nvl(c.mb,0)),1,'YES','NO'))
          429595         139184      136072
    SQL>
    Please suggest how to go ahead.
    Thanks & Regards
    Bhupesh

  • ORA-04301:Unable to allocate 8144 bytes of shared memory

    I am using 64 bit version of oracle 10g Release 2 (10.2.0.1.0)
    I am randomly getting this error. The full error message is below:
    ORA-04301:Unable to allocate 8144 bytes of shared memory("large pool","COMPANYHISTORY","kxs-heap-w","qesaQBinit:buffer")
    The table name keeps changing as the queries change. Similarly sometimes instead of "large pool" I get "shared pool" in the above message.
    I tried increasing the shared pool size but the problem did not resolve.
    Please help
    Regards
    Madhup

    I have already tried that, but I am not able to solve the problem. Is there a way to compute how much space you should define for the shared pool, the large pool etc.
    Regards
    Madhup

  • ORACLE error ORA-04031: unable to allocate 16 bytes of memory

    Error
    UDI-04031: operation generated ORACLE error 4031
    ORA-04031: unable to allocate 16 bytes of shared memory ("shared pool","SELECT j
    generated during import operation, using documentation about migration from 10g XE to 11g XE.

    Hello,
    you could try to override the automatic memory management and setup your SGA to be larger by setting SGA_TARGET. If that doesn't help yet, you could even try to configure the memory size for the components in SGA manually, but I guess this won't be necessary.
    After your import is done, I'd recommend to use automatic memory management again.
    See the XE 2 Day DBA for details, especially the section on [url http://download.oracle.com/docs/cd/E17781_01/server.112/e18804/memory.htm#ADMQS174]Managing Memory. It's not a complete guide, but a rough introduction, but it'll probably help you understand the memory concepts in the database.
    Keep in mind that you may only assign 1 GB of memory in total when you setup your memory manually.
    -Udo

  • ORA-04031:unable to allocate 32 bytes of memory :on UPGRADE to 10.2.0.4

    Hi upgraded from 10.2.0.1 to 10.2.0.4 and I consistently start getting this error
    ORA-00604: error occurred at recursive SQL level 1
    ORA-04031: unable to allocate 32 bytes of shared memory ("shared pool","select job, nvl2(l
    ast_date, ...","sql area","tmp")
    even instance crashed couple of times...
    Thanx
    Gagan

    What is the complete message for ORA-04031 (I mean what is there in place of '...'):
    ORA-04031: unable to allocate 32 bytes of shared memory ("shared pool","select job, nvl2(l
    ast_date, ...","sql area","tmp")

  • Unable to allocate nnnn bytes of shared memory

    Hello,
    When I do search for string like '%AB%' or '%b%', I get this error very often.
    I also incresed the LARGE_POOL=JAVA_POOL=SHARED_POOL=64MB on oracle 9i Server.
    I search in IfsDefault service, which contains not more than 200 files in KBs
    Please suggest some remedy to overcome this problem.
    Regards,
    Bahadur Singh
    Config: Orcale9i Server with 9i File System on Win 2000 with 512 MB RAM
    ERROR MESSAGE:
    oracle.ifs.common.IfsException: IFS-22012: SQL Error while executing Search
    java.sql.SQLException: ORA-04031: unable to allocate 73628 bytes of shared memory ("large pool","unknown object","hash-join subh","kllcqc:kllcqslt")
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
    at oracle.jdbc.ttc7.TTC7Protocol.fetch(TTC7Protocol.java:1198)
    at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2400)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2655)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:527)
    at oracle.ifs.server.S_LibrarySession.executeQuery(S_LibrarySession.java:14358)
    at oracle.ifs.server.S_Search.open(S_Search.java:290)
    at oracle.ifs.server.S_LibrarySession.DMOpenSearch(S_LibrarySession.java:5452)
    at oracle.ifs.beans.LibrarySession.DMOpenSearch(LibrarySession.java:9513)
    at oracle.ifs.beans.Search.open(Search.java:533)
    at oracle.ifs.beans.Search.open(Search.java:493)
    at oracle.ifs.beans.Search.open(Search.java:445)

    Seems like an iFS issue. Please post on the iFS forum: http://forums.oracle.com/forums/forum.jsp?id=436819

  • UNABLE TO ALLOCATE 34824 BYTES OF SHARED MEMORY

    Hai
    Server Configuration:
    Windows 2003 R2
    Service Pack 2
    Intel Xeon
    E5620 @ 2.40Ghz
    16 Gb RAM
    Table Space Allocation:
    TEMP - 1 GB(TEMP01.DBF 1GB)
    USERS -9 GB (2 Data File - USERS01.DBF(5 GB), USERS02.DBF(4GB))
    SYSTEM - 12 GB (SYSTEM01.DBF 12GB)
    Error Message:
    *ORA-04031 UNABLE TO ALLOCATE 34824 BYTES OF SHARED MEMORY("SHARED
    POOL","UNKNOWN OBJECT","SGA HEAL(1,0)","TRACE BUF HDR XTEND")*

    Hai
    Oracle9i Enterprise Edition Release 9.0.1.1.1 - Production
    PL/SQL Release 9.0.1.1.1 - Production
    CORE 9.0.1.1.1 Production
    TNS for 32-bit Windows: Version 9.0.1.1.0 - Production
    NLSRTL Version 9.0.1.1.1 - Production
    I know oracle 9i is unsupported version.
    I have one doubt. Based on windows 2003 server configuration, how manu GB space I have to
    allocate to the table space?. Is there any space limit for table space?

  • Ora-04031 unable to allocate shared memory

    Hi Guru's
    Could some one help me in finding the sql's/program which causing the ora-04031 unable to allocate 3896 bytes of shared memory.
    any suggestion is highly apprciated
    Kind Regards

    You may want to take look at:
    ORA-04031: unable to allocate 4032 bytes of shared memory
    >
    ORA-04031 unable to allocate n bytes of shared memory ("string","string","string","string")
    Cause: More shared memory is needed than was allocated in the shared pool.
    Action: If the shared pool is out of memory, either use the DBMS_SHARED_POOL package to pin large packages, reduce your use of shared memory, or increase the amount of available shared memory by increasing the value of the initialization parameters SHARED_POOL_RESERVED_SIZE and SHARED_POOL_SIZE. If the large pool is out of memory, increase the initialization parameter LARGE_POOL_SIZE.

  • ORA-04031: unable to allocate

    hi gurus,
    I am getting the following error whenever try to access database from client side or login to SQL*Plus :
    ora 04031, 00000, "unable to allocate %s bytes of shared memory (\"%s\",\"%s\",\"%s")"
    But i can login on server and working properly.
    I am using oracle 9i release 1 on win 2k.
    Can any one help me to come out of this problem.
    Thanks
    Regards,
    Raghv

    Thanks Joel to have some time for this post.
    Hope these details will help you to understand the problem.
    How long is the virtual memory of your OS ?Minimum : 744 MB Maximum : 1488 MB
    How long is the RAM memory of the OS ?RAM : 640 MB
    Do you have several instances in the same OS ?No,only single instance
    Details from init.ora file:
    # Cache and I/O
    db_block_size=4096
    db_cache_size=33554432
    # Cursors and Library Cache
    open_cursors=300
    # Network Registration
    instance_name=orcl
    # Pools
    java_pool_size=33554432
    large_pool_size=1048576
    shared_pool_size=33554432
    # Processes and Sessions
    processes=150
    # Redo Log and Recovery
    fast_start_mttr_target=300
    Desired query output :
    SQL> select * from v$shared_pool_reserved;
    no rows selected
    SQL> select * from v$sgastat where name='free memory';
    POOL NAME BYTES
    shared pool free memory 3301916
    large pool free memory 4294613080
    java pool free memory 28954624
    SQL> select sum(bytes) from v$sgastat where pool = 'shared pool';
    SUM(BYTES)
    46137344
    SQL> select sum(bytes) from v$sgastat where pool = 'java pool';
    SUM(BYTES)
    33554432
    SQL> select sum(bytes) from v$sgastat where pool = 'large pool';
    SUM(BYTES)
    4.295E+09
    Regards,
    Raghv

  • ORA-29855 - Unable to allocate shared memory

    Hi,
    We are encountering troubles (unable to allocate shared memory) while indexes creation. We tried to increase the share_size_memory (actually 52 mb) but this had no effect on this error. The Oracle error code is ORA-29855.
    The database is version 8.1.7, hosted on a Linux machine (RedHat 7.2) with 512 mb of memory. The code used for the index creation works fine on other machines (code from 9iAS Wireless installation) running with Windows 2000 as operation system.
    Any help or comment will be appreciated.
    Thanks,
    Fabrice Clari.
    The error message is:
    java.sql.SQLException: ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
    ORA-13200: internal error [ROWID:AAAGDwAAFAAAAvjAAA] in spatial indexing.
    ORA-13206: internal error [] while creating the spatial index
    ORA-13011: value is out of range
    ORA-00600: internal error code, arguments: [kope2ucoll700], [], [], [], [], [], [], []
    ORA-04031: unable to allocate 16396 bytes of shared memory ("large pool","unknown object","koh-kghu sessi","kolcalm coll")
    ORA-06512: at "MDSYS.SDO_INDEX_METHOD", line 8
    ORA-06512: at line 1

    Which portion of shared memory did you increase? The error indicates you need to increase large_pool_size. It seems you may also have other problems since you have several errors, and this only relates to the ORA-04031 error.

  • Unable to allocate 27160 bytes.........Help needed urgently

    hi
    in my production database in getting this error..
    ORA-04031: unable to allocate 27160 bytes of shared memory ("shared
    pool","unknown object","sga heap(1,0)","session param values")
    help needed urgently

    If you have a program that does not use bind variables you can get this error.
    In such cases you do not want to increase the size of the shared pool, but reduce it, and flush regularly. This is a bug in the application and should be fixed to use bind variables.
    Another possible workaround is setting cursor_sharing = force, but this can cause other problems, so should only be used as a last resort. If the apps connections can be distinguished by user account or machine, then a log on trigger could be set cursor_sharing just for that application, to limit the damage until the vendor can fix it.

  • Unable allocate bytes of shared memory

    When I execute the sql statement in sql*plus,I find the error:
    ORA-04031:unable to allocate 618744 bytes of shared memory
    ("shared pool","unknown object","cursor work he","kllcqc,kllcqslt")
    I query the performance view 'v$sgastat',free memory in shared pool
    is 200399720 bytes.
    why?how should I do?

    What is the version of Oracle you are running. If you are running Oracle 8.1.7 on Sun OS, apply the relevant patch. This problem will vanish.

Maybe you are looking for

  • Server 2008r2 and windows 7 pro slow to no networkshare file searching and file access (green progress bar)

    we are running a windows server 2008r2 sp1 domain controller and a 3com gigabit switch to which 7 windows 7 pro computers are connected. We are only using the windows server to distribute a few printers and as a network share (z drive). we are storin

  • Compressor will not start batchs

    Hi guys, I'm having some major problems, every time I send my projects to Compressor from FCP or even when I drop exported self contained video projects, after I drop in the settings (usually 90 min. video 2 pass) and hit submit it just sits there an

  • Multilpe  Database on one server

    In one server there are 5 database created and all five services are started. When query V$database getting only one database name? Oracel 11g /Windows 2008 From which view I will get all created on oracel server.

  • Browsing an external drive makes iTunes skip

    Hello there! Please help me to solve this issue. Couple of days ago I had to set up a new account on an iMac (2.7Ghz Intel i5 quad core, 8Gb RAM) and restore all my stuff from Time Machine. I have two hard drives connected to the iMac (Iomega Mini Ma

  • Price is zero

    Hi there we are on extended classic, SRM 5.0. User created a PO, it was approved and invoiced (follow on documents created). user realised afterwards they made a mistake and changed the PO. a changed version was created, but now it gives an error mes