11g memory @ solaris10

On Solaris 10 4Gb Ram, how much memory could be allocated to Oracle 11G instance?
If I set memory_target=1200M the server starts okay and immediately.
If I set memory_target=2500M the server takes very very long time to start - at some point over 45 minutes (Giving 1Gb to OS, I thougth I could use 3Gb for oracle)
Nothing else is running on this Unix box(dedicated to DB).
Is there anyway to accurately figure out how much of memory all oracle processes [ora_<process>] needs (other than the shared memory segment created)?
I see 1200M shared memory segment created for user oracle. pmap for ora_<processes> lists too much memory being used by that process, any other way to figure out who is using up memory(filesystem cache, other processes)...

I thougth I could use 3Gb for oracle)Ready, FIRE, AIM!
It appears you subscribe to the theory that bigger is always better.
Oracle provides many ADVISORs to answer such questions.
select * from V_$SGA_TARGET_ADVICE ;

Similar Messages

  • Oracle 11g - Memory used for sorting

    Hi everyone,
    I would like to know how I could analyze memory used for sorting in Oracle 11g. When I run the below query, it returns 1531381.
    select value from v$sysstat where name like 'sorts (memory)';But when I check sort_area_size parameter from v$parameter, it returns 65536. Does it mean my database is using more memory for sorting than sort_area_size. Or is the way I interpret v$sysstat view and sort_area_size wrong? What is the best way to monitor the memory usage for sorting? Thanks in advance.
    Regards,
    K.H
    Edited by: K Hein on Apr 5, 2012 8:16 PM

    check the valuse of pga_aggregate_target
    http://docs.oracle.com/cd/B19306_01/server.102/b14237/initparams157.htm
    Note:
    Oracle does not recommend using the SORT_AREA_SIZE parameter unless the instance is configured with the shared server option. Oracle recommends that you enable automatic sizing of SQL working areas by setting PGA_AGGREGATE_TARGET instead. SORT_AREA_SIZE is retained for backward compatibility.
    What is the best way to monitor the memory usage for sorting? try v$sort_usage
    or v$tempseg_usage
    col sid_serial for a44
    col size for a22
    col SID_SERIAL for a22
    SELECT b.tablespace,
            ROUND(((b.blocks*p.value)/1024/1024),2)||' MB' "SIZE",
            a.sid||','||a.serial# SID_SERIAL,
            a.username,a.osuser,
            a.program
       FROM sys.v_$session a,
            sys.v_$sort_usage b,
            sys.v_$parameter p
      WHERE p.name  = 'db_block_size'
        AND a.saddr = b.session_addr
    ORDER BY b.blocks;

  • Help needed regarding installation of Oracle 11G in Solaris10(VMware)

    I am trying to install Oracle 11G in Solaris. Whenever I am trying to run the installer ,I gets below error messages.
    # cd /export/home/oracle
    # ls -ltr
    total 2098204
    drwxr-xr-x 3 oracle oinstall 512 Mar 29 21:23 product
    drwxr-xr-x 2 oracle oinstall 512 Mar 29 23:03 Documents
    drwxr-xr-x 2 oracle oinstall 512 Mar 29 23:03 Desktop
    -rw------T 1 root root 1073741824 Mar 29 23:09 orcl_swap
    lrwxrwxrwx 1 oracle oinstall 32 Mar 30 19:34 link to installation -> /e xport/home/oracle/installation
    drwxr-xr-x 4 root root 512 Mar 30 20:30 installation
    drwxr-xr-x 4 oracle oinstall 512 Mar 30 23:30 tmp
    # cd installation
    # ls -ltr
    total 4
    dr-xr-xr-x 4 root root 512 Mar 30 20:30 linux.zseries64_11gR2_data base_2of2
    dr-xr-xr-x 3 root root 512 Mar 30 20:30 solaris.x64_11gR2_database _1of2_1
    # cd solaris.x64_11gR2_database_1of2_1
    # ls -ltr
    total 2
    dr-xr-xr-x 8 root root 512 Mar 30 21:09 database
    # cd database
    # ls -ltr
    total 38
    dr-xr-xr-x 12 root root 512 Mar 30 20:34 doc
    dr-xr-xr-x 4 root root 512 Mar 30 20:34 install
    dr-xr-xr-x 2 root root 512 Mar 30 20:34 response
    dr-xr-xr-x 2 root root 512 Mar 30 20:34 rpm
    dr-xr-xr-x 2 root root 512 Mar 30 20:34 sshsetup
    dr-xr-xr-x 14 root root 1024 Mar 30 21:09 stage
    -rwxrwxrwx 1 root root 6513 Mar 30 21:59 runInstaller
    -r--r--r-- 1 root root 5400 Mar 30 21:59 welcome.html
    # ./runInstaller
    ./runInstaller: /export/home/oracle/installation/solaris.x64_11gR2_database_1of2_1/database/install/.oui: cannot execute
    It will bre great if anyone can help me with some ideas and concepts here.

    I have downloaded Oracle 11G R2 version from Windows and extracted it in Windows and copied it into DVD after extraction in two folders. Now I am mounting that DVD in Solaris 10 installed in my VMware . I made a new directory named as 'installation ' under /export/home/oracle and copied the folders from DVD to 'installation' folder. Now I am entering installation folder and try to do ./runInstaller as 'oracle ' user and getting the error mentioned before.
    Edited by: 916438 on Mar 31, 2012 5:55 PM

  • Oracle 11g - memory issue.

    hi,
    Recently we have upgraded to oracle 11.2.0.1 from 10.2.0.4. Below memory issues shows up and system crashes.
    We included parameter MEMORYIMM_MODE_WITHOUT_AUTOSGA=FALSE in init file. Despite this happens.
    ORA-04031: unable to allocate 264 bytes of shared memory ("shared pool","unknown object","CCUR^4e9657a","kglob")
    Fri May 20 18:43:45 2011
    Sweep [inc][64733]: completed
    Sweep [inc][64732]: completed
    We increased db_cache and shared_pool memory, does not help.
    Would appreciate any feedback on this.
    Thanks,
    RajS

    Hi Raj
    with experience I noticed these memory issues (ORA-0403 ) issues with 11.2.0.1
    say some bugs, which aren't easy to fix.
    Better upgrade to 11.2.0.2.
    May be not the proper answer to your question Just a tip.
    BR
    Venkat

  • 11G Memory Issue - ORA-01438

    We have begun playing with OLAP for Oracle 11G. So far we have noticed this error popping up from time to time.
    ORA-01438: value larger than specified precision allowed for this column.
    We have generated this error when trying to return a large ammount of rows using the new select * from [CUBE]_View functionality and also every cube build I have built so far, only 2, has failed in the Analyze step after aggregation with this error.
    Anyone else notice this? Any thoughts? Any on 11G OLAP yet?

    Hi ZeroWing,
    Can you please log a TAR with Oracle Support so we can track this issue. I will research this and see if we have seen this during the beta and internal testing.
    Thanks
    Keith Laker
    Oracle EMEA Consulting
    BI Blog: http://oraclebi.blogspot.com/
    DM Blog: http://oracledmt.blogspot.com/
    BI on Oracle: http://www.oracle.com/bi/
    BI on OTN: http://www.oracle.com/technology/products/bi/
    BI Samples: http://www.oracle.com/technology/products/bi/samples/

  • I need to download 11g for Solaris10 x86

    sorry for easy question.
    I hope to install Oracle 11g on Soalris 10 x86 with VMware.
    but I can't finding for a 11g x86.
    Where can I do that?

    user3531902 wrote:
    sorry for easy question.
    I hope to install Oracle 11g on Soalris 10 x86 with VMware.
    but I can't finding for a 11g x86.
    Where can I do that?You can not find it because it is not available. And, apparently it will not become available.
    According to information, you will need to wait until Oracle releases 11gR2 for Solaris x86. Unfortunately we have no date for that.

  • OSB 11g on Solaris10

    I'm trying to get OSB 11g working on Solaris 10 SPARC, with partial success.
    Software versions:
    Solaris 10 10/09
    OSB 11.1.1.3.0
    WebLogic 10.3.3
    JRockit 4
    Upon installation of OSB 11g, step 5 of 8 asks for the OEPE (Oracle Enterprise Pack for Eclipse) location.
    This would seem to be a problem as OEPE isn't supported on Solaris. http://www.oracle.com/technology/products/enterprise-pack-for-eclipse/system_requirements.html
    One way I was able to get by the requirement was to copy the windows files onto a Solaris directory and reference it in the OSB setup. Then the installation would then continue.
    There must be a better solution than to use the windows binaries on Solaris.

    Upon installation of OSB 11g, step 5 of 8 asks for the OEPE (Oracle Enterprise Pack for Eclipse) location.
    This would seem to be a problem as OEPE isn't supported on Solaris.This can never be a problem as it is an optional component which is required if you are installing Oracle Service Bus Integrated Development Environment (IDE). You may simply skip this part.
    Please refer section 5.2.3 Procedure, point#8 at below link -
    http://download.oracle.com/docs/cd/E14571_01/doc.1111/e15017/apm.htm#CDEBABCB
    Regards,
    Anuj

  • 11g Memory Profiler: ADF BC 2 AppModuleImpls and 2 ViewObjectImpls?

    I'm currently playing with the Memory Profiler under JDev11g 11.1.1.2.0, and I'm seeing some unexplained behavior on the number of AppModuleImpl + ViewObjectImpls created.
    To replicate I've built a very simple application:
    1) A single EO
    2) A single updateable VO based on the EO
    3) An AM with the VO exposed
    4) A single ADF Faces RC Forms page based on the VO
    5) The relevant pageDef file with the iterator and attribute bindings
    6) The relevant DataBinding.cpx file with the pageDef reference + the single DataControl mapping back to AM using the config AppModuleLocal
    I've done absolutely nothing tricky in terms of the setup, taking all default values. At runtime when the page is invoked, I can see in the Memory Profiler that:
    a) 25 EntityImpl's are created for my relating EO - this is expected as it's the rangesize determined by the iterator the pageDef
    b) 25 ViewRowImpl's reflecting the rows retrieved by the VO
    but oddly:
    c) 2 AppModuleImpl's, where I'd expect one (by 2 I mean the Size column in the Memory Profiler shows 2, as well as the Final and Balance columns)
    d) 2 ViewObjectImpl's, where I'd expect one
    ...and slightly more strange, I can see the constructor for the AppModuleImpl called only once?
    I'll take a bet this is something to do with the AM pool settings, but the fact that I can't see the AppModuleImpl constructor called twice (only once) leaves me to think there's something else going on.
    Could somebody assist me in understanding why I'm seeing the above behavior please?
    (Post edit: I should also mention we're talking about a single user request here, not multiple users).
    Cheers,
    CM.

    Boing.

  • Oracle Streams Update conflict handler not working

    Hello,
    I've been working on the Oracle streams and this time we've to come up with Update conflict handler.
    We are using Oracle 11g on Solaris10 env.
    So far, we have implemented bi-directional Oracle Streams Replication and it is working fine.
    Now, when i try to implement Update conflict handler - it executed successfully but it is not fulfilling the desired functionality.
    Here are the steps i performed:
    Steap -1:
    create table test73 (first_name varchar2(20),last_name varchar2(20), salary number(7));
    ALTER TABLE jas23.test73 ADD (time TIMESTAMP WITH TIME ZONE);
    insert into jas23.test73 values ('gugg','qwer',2000,SYSTIMESTAMP);
    insert into jas23.test73 values ('papa','sdds',2050,SYSTIMESTAMP);
    insert into jas23.test73 values ('jaja','xzxc',2075,SYSTIMESTAMP);
    insert into jas23.test73 values ('kaka','cvdxx',2095,SYSTIMESTAMP);
    insert into jas23.test73 values ('mama','rfgy',1900,SYSTIMESTAMP);
    insert into jas23.test73 values ('tata','jaja',1950,SYSTIMESTAMP);
    commit;
    Step-2:
    conn to strmadmin/strmadmin to server1:
    SQL> ALTER TABLE jas23.test73 ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
    Step-3
    SQL>
    DECLARE
    cols DBMS_UTILITY.NAME_ARRAY;
    BEGIN
    cols(1) := 'first_name';
    cols(2) := 'last_name';
    cols(3) := 'salary';
    cols(4) := 'time';
    DBMS_APPLY_ADM.SET_UPDATE_CONFLICT_HANDLER(
    object_name => 'jas23.test73',
    method_name => 'MAXIMUM',
    resolution_column => 'time',
    column_list => cols);
    END;
    Step-4
    conn to strmadmin/strmadmin to server2
    SQL>
    DECLARE
    cols DBMS_UTILITY.NAME_ARRAY;
    BEGIN
    cols(1) := 'first_name';
    cols(2) := 'last_name';
    cols(3) := 'salary';
    cols(4) := 'time';
    DBMS_APPLY_ADM.SET_UPDATE_CONFLICT_HANDLER(
    object_name => 'jas23.test73',
    method_name => 'MAXIMUM',
    resolution_column => 'time',
    column_list => cols);
    END;
    Step-5
    And now, if i try to update the value of salary, then it is not getting handled by update conflict handler.
    update jas23.test73 set salary = 1500,time=SYSTIMESTAMP where first_name='papa'; --server1
    update jas23.test73 set salary = 2500,time=SYSTIMESTAMP where first_name='papa'; --server2
    commit; --server1
    commit; --server2
    Note: Both the servers are into different timezone (i hope it wont be any problem)
    Now, after performing all these steps - the data is not same at both sites.
    Error(DBA_APPLY_ERROR) -
    ORA-26787: The row with key ("FIRST_NAME", "LAST_NAME", "SALARY", "TIME") = (papa, sdds, 2000, 23-DEC-10 05.46.18.994233000 PM +00:00) does not exist in ta
    ble JAS23.TEST73
    ORA-01403: no data found
    Please help.
    Thanks.
    Edited by: gags on Dec 23, 2010 12:30 PM

    Hi,
    When i tried to do it on Server-2:
    SQL> ALTER TABLE jas23.test73 ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
    it throws me an error,
    Error -
    ERROR at line 1:
    ORA-32588: supplemental logging attribute all column exists

  • Oracle Audit Vault and Database Firewall implementaion

    Dear All,
    we are planning to implement Oracle Audit Vault and Database Firewall on 2 node 11g RAC/solaris10, please advise me to ahead in details
    Thanks

    Recently purchased Audit Vault and Database Firewall
    My question is with Audit Vault.
    All of the documentation says that i need Oracle Linux 5.8 as part of the installation. We do not have any servers now that support 5.8 currently. When I check the HCL for Oracle Linux 5.8 i see only 4 Oracle servers that support this version
    Sun Server X2-4
    Sun Server X2-8
    Sunfire X2270 M2
    Sunfire X4470
    The only two servers that are currently offer for purchase by Oracle are the X2-4 and X2-8 which are way overkill both in power and price for this application.
    The X2270 M2 would fit nicely, but is no longer offered for sale. In it place is the X3-2 which would fit nicely, but it listed as supporting Oracle Linux 5.8. Oracle Linux 5.9 is supported on the X3-2.
    My question is will Oracle Linux 5.9 or newer install to support Audit Vault? The documentation specifies Linux 5.8. Is this flexible or not?
    Thanks,

  • Oracle performance, slow for larger and more complex results.

    Hello Oracle forum,
    At the moment i have a Oracle database running and i'm specifically interested in the efficiency spatial extension for webmaps and GIS.
    I've been testing the database with large shape files (400mb - 1gigabyte) loaded them into the database with shp2sdo->sql*loader.
    Using Benchmark factory i've test the speed of transactions an these drop relatively quickly. I've started with a simple query:
    SELECT id FROM map WHERE id = 3 when I increase the amount of id's to 3-10000 the performance decreases drastically.
    so :
    SELECT id FROM map WHERE id >=3 and id <= 10000
    The explain plan shows the second query , both query's use the index.
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 9828 | 49140 | 22 (0)| 00:00:01 |
    |* 1 | INDEX RANGE SCAN| SYS_C009650 | 9828 | 49140 | 22 (0)| 00:00:01 |
    Statistics
    0 recursive calls
    0 db block gets
    675 consistent gets
    0 physical reads
    0 redo size
    134248 bytes sent via SQL*Net to client
    7599 bytes received via SQL*Net from client
    655 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    9796 rows processed
    The statistics does not show very weird stuff, but maybe i'm wrong. Nothing changed in the explain plan except for the range scan instead of a unique scan.
    The query returns lots of results and this is I think the reason why my measured time of the query is large. The time it takes returning large amount of rows increases quickly for more rows.
    . Can this be solved? The table has been analyzed before starting the query.
    The parameters of the database are not really changed from standard, I increased the amount of memory used by Oracle 11g to 1+ gigabyte.
    and let the database itself decide how it uses this memory.
    The system specs are and db_parameters are:
    Oracle 11G
    Memory Processor # of CPUs OS OS Version OS B
    1.99 gb Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz 2 Microsoft WindowsXP 5.2600
    0=Oracle decides which value will be given
    cursor_sharing EXACT
    cursor_space_for_time FALSE
    db_block_size 8192
    db_recovery_file_dest_size 2147483648
    diagnostic_dest C:\DBBENCHMARK\ORACLE
    dispatchers (PROTOCOL=TCP) (SERVICE=gistestXDB)
    hash_area_size 131072
    log_buffer 5656576
    memory_max_target 1115684864
    memory_target 1048576000
    open_cursors 300
    parallel_max_servers 20
    pga_aggregate_target 0
    processes 150
    resumable_timeout 2162688
    sort_area_size 65536
    Sga=632mb
    PGA=368mb
    javapool=16mb
    largepool=8mb
    other=8mb
    So I indexed and analyzed the data what did i forget? I can speed it up with soft parsing, but the problem remains . Hopefully this enough information for some analysis, does anyone experienced the same problems ? I tested with SQLdeveloper the speed and is shows the same speed as Benchmark factory. What could be wrong with the parameters?
    Thanks,
    Jan Martijn
    Edited by: user12227964 on 25-jan-2010 4:53
    Edited by: user12227964 on 26-jan-2010 2:20

    Sand wrote:
    select count(id) , resulted in 3669015 counted id's.
    The database counted 18,345,075 rows per second without binded variables , which is ten times slower as your result. This can be possible because of hardware but my question is specifically about the number of rows returned thus large amount of results. The idea was not to compare the speed of "+select count(*)+" statements - but to illustrate that even when dealing with a huge number of rows, one can decrease the amount of I/O that needs to be performed to deal with that number of rows.
    Select id from map where id <= 1
    4000 rows per second are selected, Rows/sec is a meaningless measurement - due to physical I/O (PIO) versus logical I/O (LIO). You can select a 100 rows and these require PIO. Resulting in an elapsed time of 1 sec. You can select a 1000 rows that require only LIO. With an an elapsed time of 0.5 sec.
    Is the 2nd method better or faster? No. It simply needed less time to be spend on I/O as the data blocks were in the buffer cache (memory) and did not require very slow and expensive disk access.
    Another database i testes returns 6 times 25425 rows back per second for the same query (100 ids). What could be a parameter that limits the output speed of multiple rows in a query?.Every single row that needs to be read/processed by a SQL statement has a cost associated with it. This cost is not consistent! It differs depending on how that row can reached - what I/O paths are available to find that rows? Does the full table need to be scanned? Does an index need to be scanned? Is there a unique index that can be used? Is the table partitioned and can partitioning pruning be applied and local partition indexes used? Are there are user functions that need to be applied to the row's data? Etc. Etc.
    All these together determine how fast the client gets a row from the cursor executing that SQL.
    The more rows you want to process, the bigger the increase in the cost/expense - specifically more I/O. As I/O is the biggest expense (slowest ito elapsed time).
    So you want to do as little I/O as possible and read as little data as possible. For example, instead of a full table scan, a fast full index scan. For example, instead of reading the complete contents of a 10GB table, reading the complete contents of a 12MB index for that table.
    I suggest that you read the Oracle Performance Guide to familiarise yourself with basic performance concepts. Use http://tahiti.oracle.com for finding the the guide for your applicable Oracle version.

  • Server Disk I/O issue?

    I have a server 2008 with 24gb of RAM. On it, there are 5 separate instances; some SQL2008 and some SQL2012.
    In my Oracle databases that are in Windows environment, I normally reserve 30% (about 7gb) of RAM for OS. So this is what I'm doing as well for this server.
    I allocated 10% of the remaining (about 1.5gb) to the max server memory to each of the default instance, instance 2, 3 and 4.
    I allocated 50% of the remaining RAM (11gb++) to the max server memory to instance1 because it has a numerous databases and one particularly huge database (> 5tb) and about 10-15k rows inserted daily.
    Question 1: Is that how you allocate RAM? Based on database size and activity?
    Question 2: I have a user reporting that when she has bulk insert (1000++ rows) from an 3rd party application; the application hangs and nothing will get inserted. Her database (DBXYZ) is in instance 4. Could this be related
    to amount or RAMs allocated to instance 4?
    Question 3: I was reading
    http://www.sqlskills.com/blogs/paul/how-to-examine-io-subsystem-latencies-from-within-sql-server/ and executed the 2nd query. The read/write latency for
    DBXYZ are 111 and 571 respectively. Is that too high?
    Question 4: The article mentioned "read and write hot spots are and then drill into a database to see what’s going on, and if nothing out of the ordinary" - what am I suppose to drill on the database and what's out of the ordinary?
    Thanks
    Ami

    Hello Ami,
    1. Configuring MAX server memory for SQL Server can be done through article.
    http://www.sqlskills.com/blogs/jonathan/how-much-memory-does-my-sql-server-actually-need/
    Now it is an article which will give you tentative value which is almost every time correct but for configuring MAX server memory properly for  server having multiple instance you need to look at perfmon counter.Please refer to below article it has
    section as 'How to test SQL Server is facing memory crunch there are perfmon counters which you have to look .If you configured memory such that Your target server memory is less than or equal to total server memory and page life expectancy is high with high
    buffer cache hit ratio and low checkpoint pages/sec you can say you have configured memory well
    http://social.technet.microsoft.com/wiki/contents/articles/22316.sql-server-memory-and-troubleshooting.aspx#Does_my_system_have_low_memory
    11G memory for Terabyte of data seems less to me .
    2.There can be many reasons for that may be blocking may be server is not able to cope with load its difficult to answer unless you provide some stats.
    3.If you see Pauls answer for what is value which should be considered as good he said it depends .So please can you check perfmon counters according to this article and it has value which will tell you what is acceptable and what not
    http://blogs.msdn.com/b/askjay/archive/2011/07/08/troubleshooting-slow-disk-i-o-in-sql-server.aspx
    Please mark this reply as the answer or vote as helpful, as appropriate, to make it useful for other readers

  • Local_listener name is different from listener.ora

    I'm on 11g R2 solaris10 platform.
    lsnrctl status adv_sec_listener2 shows all the correct items I would expect including the Alias = adv_sec_listener2
    but when I do lsnrctl status listener_farley it shows the same thing with Alias = adv_sec_listener2
    My listener.ora file is set with adv_sec_listener2
    In the spfile it has local_listener=listener_farley
    I try to edit the parameter and set local_listener to adv_sec_listener2 but I get errors:
    ORA-02097: parameter could not be modified
    ORA-00119: invalid specification for LOCAL_LISTENER
    ORA-00132: syntax error or unresolved network name 'ADV_SEC_LISTENER2'

    is your listener registered with all instances in the server? if so, its new from 10g that all instances will listen through one instance
    try to see the ouput of
    $ lsnrctl status <listener_name>
    and check if all instances are shown

  • OIM 11g using too much memory and not releasing it when shutting down

    Hello,
    we have a problem with OIM 11g using too much memory (about 5gb) and it's not releasing it at shutdown (4gb still used).
    We are using a VM with RedHat Linux 5.6. Originally we had 4gb RAM + 2gb swap file. We installed Admin Server, OAM, OIM and SOA on that machine but quickly realised we couldn't run all 4 programs at once in 6gb. AdminServer could run with 2 other products, but it was a tight fit in memory.
    So we increased the RAM to 8gb (still 2gb swap file). But then our problem occured : I start the Admin Server (2.7gb total memory used), then OAM (4.6gb total memory used) and then OIM. After it started the server is now using 9.6gb of memory (~300mb of free memory) ! The problem gets even better : after I shut down everything (OIM, OAM, admin server) the "top" command show that there is still 4gb of memory used even tho nothing else is running on the server ! There is absolutely no other process (other than root stuff) running and no other users connected to the machine. After a reboot, it shows 400mb of memory used. I tried restarting the programs and it did the same thing.
    Our intuition is that there might be a memory leak or some bug in OIM that might use up almost all the free memory and it's not releasing it upon shutdown. It might have been there before we increased the memory but have not noticed it since memory was already tight.
    Anyone encountered the same problem ? Any idea ? Any suggestion to narrow down the problem ?
    Thank you

    You can adjust the memory settings for WLS by editing the setSOADomainEnv.sh file that can be found in your /middleware/user_projects/domains/<domain>/bin/ folder. There is an argument called PORT_MEM_ARGS which is used to set your Java memory arguments. This way you can decrease/increase the amount of memory used by each managed server.
    I usually type "ps -ef | grep oracle" to see what processes are running by the oracle user. This way the output doesn't get cluttered with root processes.
    Sunny Tsang

  • The danger of memory target in Oracle 11g - request for discussion.

    Hello, everyone.
    This is not a question, but kind of request for discussion.
    I believe that many of you heard something about automatic memory management in Oracle 11g.
    The concept is that Oracle manages the target size of SGA and PGA. Yes, believe it or not, all we have to do is just to tell Oracle how much memory it can use.
    But I have a big concern on this. The optimizer takes the PGA size into consideration when calculating the cost of sort-related operations.
    So what would happen when Oracle dynamically changes the target size of PGA? Following is a simple demonstration of my concern.
    UKJA@ukja116> select * from v$version;
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
    PL/SQL Release 11.1.0.6.0 - Production
    CORE    11.1.0.6.0      Production
    TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
    NLSRTL Version 11.1.0.6.0 - Production
    -- Configuration
    *.memory_target=350m
    *.memory_max_target=350m
    create table t1(c1 int, c2 char(100));
    create table t2(c1 int, c2 char(100));
    insert into t1 select level, level from dual connect by level <= 10000;
    insert into t2 select level, level from dual connect by level <= 10000;
    -- First 10053 trace
    alter session set events '10053 trace name context forever, level 1';
    select /*+ use_hash(t1 t2) */ count(*)
    from t1, t2
    where t1.c1 = t2.c1 and t1.c2 = t2.c2
    alter session set events '10053 trace name context off';
    -- Do aggressive hard parse to make Oracle dynamically change the size of memory segments.
    declare
      pat1     varchar2(1000);
      pat2     varchar2(1000);
      va       number;
      vc       sys_refcursor;
      vs        varchar2(1000);
    begin
      select ksppstvl into pat1
        from sys.xm$ksppi i, sys.xm$ksppcv v   -- views for x$ table
        where i.indx = v.indx
        and i.ksppinm = '__pga_aggregate_target';
      for idx in 1 .. 10000000 loop
        execute immediate 'select count(*) from t1 where rownum = ' || (idx+1)
              into va;
        if mod(idx, 1000) = 0 then
          sys.dbms_system.ksdwrt(2, idx || 'th execution');
          select ksppstvl into pat2
          from sys.xm$ksppi i, sys.xm$ksppcv v   -- views for x$ table
          where i.indx = v.indx
          and i.ksppinm = '__pga_aggregate_target';
          if pat1 <> pat2 then
            sys.dbms_system.ksdwrt(2, 'yep, I got it!');
            exit;
          end if;
        end if;
      end loop;
    end;
    -- As to alert log file,
    25000th execution
    26000th execution
    27000th execution
    28000th execution
    29000th execution
    30000th execution
    yep, I got it! <-- the pga target changed with 30000th hard parse
    -- Second 10053 trace for same query
    alter session set events '10053 trace name context forever, level 1';
    select /*+ use_hash(t1 t2) */ count(*)
    from t1, t2
    where t1.c1 = t2.c1 and t1.c2 = t2.c2
    alter session set events '10053 trace name context off';With above test case, I found that
    1. Oracle invalidates the query when internal pga aggregate size changes, which is quite natural.
    2. With changed pga aggregate size, Oracle recalculates the cost. These are excerpts from the both of the 10053 trace files.
    -- First 10053 trace file
    PARAMETERS USED BY THE OPTIMIZER
      PARAMETERS WITH ALTERED VALUES
    Compilation Environment Dump
    _smm_max_size                       = 11468 KB
    _smm_px_max_size                    = 28672 KB
    optimizer_use_sql_plan_baselines    = false
    optimizer_use_invisible_indexes     = true
    -- Second 10053 trace file
    PARAMETERS USED BY THE OPTIMIZER
      PARAMETERS WITH ALTERED VALUES
    Compilation Environment Dump
    _smm_max_size                       = 13107 KB
    _smm_px_max_size                    = 32768 KB
    optimizer_use_sql_plan_baselines    = false
    optimizer_use_invisible_indexes     = true
    Bug Fix Control Environment10053 trace file clearly says that Oracle recalculates the cost of the query with the change of internal pga aggregate target size. So, there is a great danger of unexpected plan change while Oracle dynamically controls the memory segments.
    I believe that this is a desinged behavior, but the negative side effect is not negligible.
    I just like to hear your opinions on this behavior.
    Do you think that this is acceptable? Or is this another great feature that nobody wants to use like automatic tuning advisor?
    ================================
    Dion Cho - Oracle Performance Storyteller
    http://dioncho.wordpress.com (english)
    http://ukja.tistory.com (korean)
    ================================

    I made a slight modification with my test case to have mixed workloads of hard parse and logical reads.
    *.memory_target=200m
    *.memory_max_target=200m
    create table t3(c1 int, c2 char(1000));
    insert into t3 select level, level from dual connect by level <= 50000;
    declare
      pat1     varchar2(1000);
      pat2     varchar2(1000);
      va       number;
    begin
      select ksppstvl into pat1
        from sys.xm$ksppi i, sys.xm$ksppcv v
        where i.indx = v.indx
        and i.ksppinm = '__pga_aggregate_target';
      for idx in 1 .. 1000000 loop
        -- try many patterns here!
        execute immediate 'select count(*) from t3 where 10 = mod('||idx||',10)+1' into va;
        if mod(idx, 100) = 0 then
          sys.dbms_system.ksdwrt(2, idx || 'th execution');
          for p in (select ksppinm, ksppstvl
              from sys.xm$ksppi i, sys.xm$ksppcv v
              where i.indx = v.indx
              and i.ksppinm in ('__shared_pool_size', '__db_cache_size', '__pga_aggregate_target')) loop
              sys.dbms_system.ksdwrt(2, p.ksppinm || ' = ' || p.ksppstvl);
          end loop;
          select ksppstvl into pat2
          from sys.xm$ksppi i, sys.xm$ksppcv v
          where i.indx = v.indx
          and i.ksppinm = '__pga_aggregate_target';
          if pat1 <> pat2 then
            sys.dbms_system.ksdwrt(2, 'yep, I got it! pat1=' || pat1 ||', pat2='||pat2);
            exit;
          end if;
        end if;
      end loop;
    end;
    /This test case showed expected and reasonable result, like following:
    100th execution
    __shared_pool_size = 92274688
    __db_cache_size = 16777216
    __pga_aggregate_target = 83886080
    200th execution
    __shared_pool_size = 92274688
    __db_cache_size = 16777216
    __pga_aggregate_target = 83886080
    300th execution
    __shared_pool_size = 88080384
    __db_cache_size = 20971520
    __pga_aggregate_target = 83886080
    400th execution
    __shared_pool_size = 92274688
    __db_cache_size = 16777216
    __pga_aggregate_target = 83886080
    500th execution
    __shared_pool_size = 88080384
    __db_cache_size = 20971520
    __pga_aggregate_target = 83886080
    1100th execution
    __shared_pool_size = 92274688
    __db_cache_size = 20971520
    __pga_aggregate_target = 83886080
    1200th execution
    __shared_pool_size = 92274688
    __db_cache_size = 37748736
    __pga_aggregate_target = 58720256
    yep, I got it! pat1=83886080, pat2=58720256Oracle continued being bounced between shared pool and buffer cache size, and about 1200th execution Oracle suddenly stole some memory from PGA target area to increase db cache size.
    (I'm still in dark age on this automatic memory target management of 11g. More research in need!)
    I think that this is very clear and natural behavior. I just want to point out that this would result in unwanted catastrophe under special cases, especially with some logic holes and bugs.
    ================================
    Dion Cho - Oracle Performance Storyteller
    http://dioncho.wordpress.com (english)
    http://ukja.tistory.com (korean)
    ================================

Maybe you are looking for

  • New to Apple.  Any suggestions for a contact mgmt. app for Mac similar to ACT?

    I am totally new on Apple products.  Can anyone suggest if there is a comparable product such as ACT or Goldmine for Customer Contact Management purpose?  I am excited about the simplicity of "Contacts" on Mac compared to ACT or some of the more comp

  • How do you change the dpi on photos?

    I am writing a book and inserting old photos into it.   These photos were scanned by people and sent by e-mail.   I need to change the dpi on the photos to 300 dpi for printing purposes.   I have just bought Lightroom, so I don't know a lot yet.   Bu

  • Attaching images

    Hello. I am trying to send an email with HTML and images. The HTML is the next one: <div><img src="cid:conf01" width="500" height="131" border="0"/></div> <div><img src="cid:conf02" width="500" height="157" border="0"/></div>     The email is sent pr

  • Kodak 8500 in the Snow

    Does anyone have a driver to make this fine printer work with Snow Leopard?

  • Leopard Server and Blackberry

    Hi All, We are considering migrating from Exchange to Leopard Server for our small business mail/calendar/file sharing/wiki needs. But, we have a requirement to be able to support the blackberry for mail/calendar. What are our options for interfacing