Server Administration :: Unable To Allocate 4120 Bytes Of Shared Memory
Jan 1, 2013
I have a package when it runs, it terminates with "unable to allocate 4120 bytes of shared memory"error at a particular INSERT statement. So everytime we had this error, we had to flush the shared pool area, after which it would run without issues(for 3-4 weeks).
It had a dynamic subpartition clause framed, which made it to repharse the query every time.So to reduce this, we removed the subpartition clause(made it to static query), which did benefit of not getting shared pool error.
I would like to find the current shared pool memory usage of my program.Is there a way I could find the live consumption of shared pool area of my program(pkg).
When i try to extract create statement of table i get below error message.
SQL> SQL> set heading off SQL> set pagesize 0 SQL> set long 1000000 SQL> set feedback off SQL> select 2 dbms_metadata.get_ddl( 'TABLE','CATALOG_TBL','JACK') 3 from 4 dual 5 /
ERROR:
ORA-04031: unable to allocate 104 bytes of shared memory ("shared pool",
"SELECT /*+rule*/ SYS_XMLGEN(...","SQLA^fc8f5280","qecsub : qkxrPXformQbc") ORA-06512: at "SYS.DBMS_METADATA", line 2625 ORA-06512: at "SYS.DBMS_METADATA", line 2668 ORA-06512: at "SYS.DBMS_METADATA", line 2983 ORA-06512: at "SYS.DBMS_METADATA", line 3897 ORA-06512: at "SYS.DBMS_METADATA", line 5678 ORA-06512: at line 1
Note: ---- I am executing this command from another user 'DEMO' which has got DBA privilege.
how to fix this error and extract the create table statement.
I am seeing the following error message in alert.log (ORA-04031: unable to allocate 32 bytes of shared memory ) and my database goes into hung state and wont let any new sessions to connect and old sessions just hung with no response. i have to kill the instance to come out of this problem.
I am running 11.2.0.3 on AIX and have memory_target=35GB. I would like to know what approach to take to find out the root cause of this? btw - does AWR show if memory was under pressure and what SQL's were consuming more memory just before the problem surface?
Single Laptop Machine of 16GB RAM. Assigned 13GB to VM.
I have installed Oracle Database 11g. 11.2.00. When I try to access my application many times I received below error
• Error: “”Caused by: java.sql.SQLException: Could not retrieve datasource via JNDI url 'jdbc/oimJMSStoreDS' weblogic.jdbc.extensions.ConnectionDeadSQLExceptio n: weblogic.common.resourcepool.ResourceDeadException : Could not create pool connection. The DBMS driver exception was: ORA-00604: error occurred at recursive SQL level 3 ORA-04031: unable to allocate 352 bytes of shared memory ("shared pool","select /*+ rule */ bucket_cn...","SQLA^337fc737","qertbs:qertbIAlloca te") [code]......
Even when above error occur I have 7GB free JVM so JVM is not an Issue.
•I have updated Max Capacity of oimOperationsDB =100,oimOperdationDB, oimJMSStoreDS=80,SOADATAStore =80. But still I have error
• ERROR:: • ““Aug 30, 2012 3:24:10 PM EST> <Warning> <oracle.integration.platform.blocks.event.saq> <SOA-31013> <Error handling message (rolling back). java.sql.SQLException: ORA-04031: unable to allocate 352 bytes of shared memory ("shared pool","select /*+ rule */ bucket_cn...","SQLA^337fc737","qertbs:qertbIAlloca te") ORA-06512: at "SYS.DBMS_AQ", line 335 ORA-06512: at "DEV_SOAINFRA.EDN_DEQUEUE_OAOO_DELIVERY", line 14” [code]......
I have modified Shared_pool_size,large_pool_size. Content of my modified Pfile is as below.
o orcl.__db_cache_size=822083584 o orcl.__java_pool_size=2777216 o orcl.__large_pool_size=56777216 o orcl.__oracle_base='/home/oracle/app/oracle'#ORACLE_BASE set from environment o orcl.__pga_aggregate_target=805306368 o orcl.__sga_target=1174405120 o orcl.__shared_io_pool_size=0 o orcl.__shared_pool_size=601989888 o orcl.__streams_pool_size=0
What’s value of parameter I need to set for datastore, pfile ? (I have 13GB of memory).
Windows 2003 Server Enterprise Edition, Service Pack 2. 3.5GB RAM.Two Oracle Databases running on this server, one not heavily used. On the database i am concerned with it is 10.2.0.3.0.
I have just started to look at this database and am seeing various things in the alert log and have had user error messages as well.Initially when i started looking at this server it was running with quite a small SGA (600MB) and the memory_target_advice was saying to take it to 1000MB.(PGA is around 200MB)
In January, before i looked at it, it started to throw:
ORA-04031 unable to allocate 16 bytes of shared memory ("shared pool","........", "sql area", "tmp") These would occur regularly and mostly during nightly processes, it seems, and thus not bubbling up to users.Having switched the SGA_MAX_SIZE to 1GB a new set of errors starts to appear in the alert log:
ORA-27301: ..... Not enough storage is available to process this command ORA-27302: ..... ssthrddcr
At the same time the ORA-04031 errors start to bubble through to the users. Before i could return to the scene of the crime someone else set the SGA back to 600MB and the error messages stopped. However the ORA-04031 message start to reappear in the alert log. My questions are many and, mostly, from a lack of knowledge ;) In particular:
1. Why would increasing the SGA lead to a different memory error? I would assume this would have something to do with the amount of memory a 32bit OS will allow a single process to address but the PGA+SGA is only 1200MB.
2. How does a ORA-273xx error end up with a ORA-04031 being shown to the users? I would look at the listener log but its over 2GB!!!
We had the following error in alertlog repeatedly from 5 PM to 10 PM :
ORA-04031: unable to allocate 32 bytes of shared memory ("shared pool","SELECT VERSION FROM PSVERSIO .....Since MEMORY_TARGET is defined in spfile then shared pool is managed automatically.
I have installed Oracle 10g on my PC and create a Database on it. I wanted to connect it with PL Sql Developer with the same PC but it`s not connecting. It gives the following error "ORA-01019: unable to allocate memory in the user " And some time blank error message box.
I have a stored procedure which uses BULK COLLECT and the table has 16 nested tables within it. When I limit the number of rows processed it works fine, if I let it run with all the 10,000 rows I get this:
ERROR: ORA-04030: out of process memory when trying to allocate 16408 bytes (koh-kghu call ,pmuccst: adt/record)
C:UsersAdministrator>sqlplus SQL*Plus: Release 10.2.0.4.0 - Production on Thu Jan 17 15:59:33 2013 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Enter user-name: sys@orcl as sysdba Enter password: Connected to an idle instance. SQL> create pfile from spfile;
[code].....
here its my init.ora file
############################################################################## # Copyright (c) 1991, 2001, 2002 by Oracle Corporation ############################################################################## ########################################### # Cache and I/O ###########################################
i am continuously inserting data to oracle database after some time like 2 hours oracle disconnects,it creates erros like
ERROR: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Process ID: 0 Session ID: 0 Serial number: 0
after restarting the database with shutdown immediate ans startup if i start inserting records it will show erros like
ORA-01653: unable to extend table SYSTEM.GLT_PROT_TRAFFIC_SUM_VOIP by 8192 in tablespace GLCOMM
but i have created the Tablespace with BigFile Auto Extend and max size unlimited, i am having 400GB disk space created Redo logs with 15gb,i have tried serveral times reinstalling the oracle but problem is not solved.
same problem is happenging with small datafiles also,
operating system: windows server 2008 R2 standard oracle server : 11g oracle client : 64 bit
IBM p series servers AIX 5.3 Server memory : 16G there are 2 instances on this server. 1. Near DR - 9840M 2. Test server - 1344M Rest is for server. Oracle 10.2.0.3.0 - Production
2 days ago we are running a stored procedure on this test server. After some time DB gave this error and stored procedure stopped.After that we were unable to login through Oracle Client Software. Whenever we try to login to this DB through client software, it gives following errors.
ERROR: ORA-01034: ORACLE not available ORA-27123: unable to attach to shared memory segment IBM AIX RISC System /6000 Error: 13: Permission denied
We tried to shut the DR database and then login but still gives error..
[oracle@localhost ~]$ sqlplus system/password SQL*Plus: Release 10.2.0.1.0 - Production on Tue Feb 21 20:20:09 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. ERROR: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Linux Error: 2: No such file or directory
But when i am using SID name while connecting to database i am able to connect...
[oracle@localhost ~]$ sqlplus system/password@apple SQL*Plus: Release 10.2.0.1.0 - Production on Tue Feb 21 20:21:42 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL>
I have a 11g database installed on a windows 2003 server. When I created the database I could not assign more than 2GB for SGA_TARGET where as I have 16GB of RAM available on the server. I created the database with SGA_TARGET as 1.5 GB and Memory_TARGET as 2GB. I could create the database successfully. Later when I again tried to increase SGA_TARGET to 6GB and MEMORY_TARGET to 8GB, I could not start the database. I got below error;
ORA-27102: out of memory
OSD-00022: additional error information
O/S-Error: (OS 8) Not enough storage is available to process this command
Quote:I added /pae in the boot.ini Added AWE_WINDOW_SIZE key to registry as 2000000000 Set use_indirect_data_buffers=true added db_block_buffer=131072 (ie. 2GB DB_BLOCK_SIZE=16kb) java_pool_size= 1000M large_pool_size=1000M shared_pool_size=2000M
I got again the same error
I could not use SGA_TARGET. So is AMM not allowed with AWE?
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 3G sga_target big integer 2G
from what I read I beleive this will initially grab 2GB of memory on startup and will grab up to to 3GB of memory total for the SGA. The "total" memory can be allocated to different peices of the SGA when needed but will never exceed 3GB. Is this correct or would these settings infringe on any available memory on a system that is already tight on memory?
Secondly, what happens if both these values are set to the same value?
create a procedure or cursor to allocate extents to all tables with zero rows for all the user in the database.I have used the below query to check table with zero rows and no extents allocated.
select onwer,table_name,initial_extent from dba_tables where initial_extent is null order by owner; I generated the query to allocate extents by using concatenation in the above query. select 'ALTER TABLE '||table_name|| ' ALLOCATE EXTENT; ' from dba_tables where initial_extent is null order by owner;
now I want the extent allocation for such table auutomatically for aal the tables with zero rows.
When investigating memory usage on HP-UX V3 for my oracle database 11.2.0.3.4 which use AMM, it seems to me that system is not shifting shared SGA memory to private PGA memory when needed but it allocate other memory.The shared memory don't shrink all the memory_target id allocated. VSZ = RSZ
To test i have used this script which will allocate memory in process PGA.
create or replace package demo_pkg as type array is table of char(2000) index by binary_integer; g_data array; end;
[code]...
I have done the same test on a linux machine (Red Hat Enterprise Linux Server release 6.3) and the size of the POSIX shared memory switched (/dev/shm) to the PGA like demonstrated by Tanel Poder in his blog [URL]...
Enter user-name: sys as sysdba Enter password: ERROR: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist
Even i start the Oracle service through the services.msc there are no new entries seen in alert log file of the database.I even changed the init DBNAME. ora file but that file is not being read. what is the normal procedure used by oracle 8i while starting the DB ? Which file should be edited if i come across shared realm memory error.