PGA/SGA

Hi All,
My current oltp db is having a sga target set to 2gb and pga target set to 100mb. I see on a peak load all the sorting is done in memory what are the things to look and determine if these settings are optimal i have 32 gb host memory available. And one the DB running on the server. And if my Db occupies approximately 3gb of memory what is the fate of the remaining memory will it be used by the server process or cpu in read write operation etc....please advice
Thanks for your help

What is the problem are try to solve? Free memory is a not big problem. For example linux can use it for filesystem cache.
I see on a peak load all the sorting is done in memory If it true than you need not change PGA settings. But you can remember that 100mb pga it for all session of your DB.
Remain memory can not be used by DB. OS can use it for other purpose.

Similar Messages

  • SOA-- Invoking OSB Service Getting Error :ORA-00084: global area must be PGA, SGA, or UGA

    Hello Friends,
    Really appreciate your help/inputs on the below Error Message encountered while running a Concurrent Program--using SOA:Same encountered in recently refreshed DEV instance, Can it be related to some Developement Instance Configuration related to SOA, as same working as expected in PROD.PLEASE ASSIST
    Need your inputs on the Error Message we are getting which Invoking OSB Service.
    "Error inside invoke_osb_service -> Error Code : -84Error Message :ORA-00084: global area must be PGA, SGA, or UGA "
    Can you please review and confirm if the same encountered before or assist on the same:
    XXFIN_AP_INVOICES_INT_IB_PKG.invoke_osb_service
    -- Define the SOAP request according the the definition of the web service being called
    l_soap_request := 
                '<?xml version = "1.0" encoding = "UTF-8"?>'
            || '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:prox="http://OmnicareFinance/ProxyInput/">'
             ||   '<soapenv:Header/>'
             ||     '<soapenv:Body>'
             ||       '<prox:InboundProcess>'
             ||     '<Source_system>'||g_source_instance||'</Source_system>'
             ||     '<Run_mode>'||g_run_mode||'</Run_mode>'
             ||     '<Batch_key>'||g_batch_key||'</Batch_key>'
             ||     '<Request_id>'||g_request_id||'</Request_id>'
             ||     '<Invoice_Header_File_name>'||g_file_name||'</Invoice_Header_File_name>'
             ||     '<Invoice_Line_File_name>'||NULL||'</Invoice_Line_File_name>'
             ||     '<File_location>'||g_file_location||'</File_location>'
             ||       '</prox:InboundProcess>'
             ||     '</soapenv:Body>'
             ||   '</soapenv:Envelope>';
    Oracle Apps Log File
    -->Entering XXFIN_AP_INVOICES_INT_IB_PKG.invoke_osb_service
    -->   = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
    -->Response> status_code: "200"
    -->Response> reason_phrase: "OK"
    -->Response> http_version: "HTTP/1.1"
    -->Response From OSB: <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header xmlns:prox="http://OmnicareFinance/ProxyInput/"/><soapenv:Body xmlns:prox="http://OmnicareFinance/ProxyInput/"><prox:InboundProcessResponse><status>E</status></prox:InboundProcessResponse></soapenv:Body></soapenv:Envelope>
    -->OSB Response: E
    -->Error inside invoke_osb_service -> Error Code : -84Error Message :ORA-00084: global area must be PGA, SGA, or UGA
    -->   = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
    -->Entering XXFIN_AP_INVOICES_INT_IB_PKG.capture_error_info
    THANKS
    ANKUR

    Hi..
    >
    # symptom: ORA-00381: cannot use both new and old parameters for buffer cache size specification
    # cause: Both db_block_buffers and db_cache_size parameters are defined in the init.ora (instance parameter file). The db_block_buffers parameter has been deprecated and has been maintained only for backward compatibility. The db_cache_size parameter is one of the size parameters which defines the size of the cache for buffers. These parameters cannot be combined. Setting this along with the Dynamic SGA parameters errors out.
    >
    For sga_target refer to [http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/initparams193.htm#REFRN10256]
    which quotes
    >
    SGA_TARGET specifies the total size of all SGA components. If SGA_TARGET is specified, then the following memory pools are automatically sized:
    *Buffer cache (DB_CACHE_SIZE)
    * Shared pool (SHARED_POOL_SIZE)
    * Large pool (LARGE_POOL_SIZE)
    * Java pool (JAVA_POOL_SIZE)
    * Streams pool (STREAMS_POOL_SIZE)
    If these automatically tuned memory pools are set to non-zero values, then those values are used as minimum levels by Automatic Shared Memory Management. You would set minimum values if an application component needs a minimum amount of memory to function properly.
    >
    So, the what ever the value are set for the parameter will act as minimum value when sga_target is set.
    HTH
    Anand

  • Can oracle use more memory than pga+sga

    Hi Experts,
    If I have set pga 1GB and SGA 2GB then Could oracle use more than 3GB RAM from OS.
    Thanks,
    Please Ignore if seems to be very basic question..

    Yes.
    The PGA_AGGREGATE_TARGET is only a target. On a busy system, a system with frequently changing SQL patterns , Oracle may sometimes attempt to allocate a higher value.
    I presume that you are on 32-bit Windows. You will hit ORA-4030 errors occassionally because Oracle on Windows is a single process (multi-threaded) and Windows limits the memory the process can address.
    I suggest that you reduce your P_A_T.
    Hemant K Chitale

  • Changing PGA / SGA

    We have had an error with unable to begin new thread. All connections to the db were denied. Requests were falling down. We flushed the shared pool and restarted the cc managers and users could then connect.
    We are using Windows 2003 server enterprise edition platform with the /3 gb switch.
    PGA_AGGREGATE_TARGET and SGA_AGGREGATE_TARGET are both set to 1G.
    Is it worth trying to reduce these two memory settings?
    Thanks.

    Dan,
    I think the answer would depend on the number of concurrent users you have. If you are on 11i, pl see MOS Doc 216205.1 (Database Initialization Parameters for Oracle Applications Release 11i) - scroll down to the bottom and you will see some recommendations for the various init.ora parameters depending on the number of users you have.
    HTH
    Srini

  • SGA/PGA best practice

    With an XE limitation of 1GB for the PGA and SGA, how would one best preserve this limitation?
    In other words, how would one minimise the PGA and SGA usage via ones interface with Oracle?
    For instance, in a SQL query I was building I could either (The query has multiple aggregates on multiple tables in a 'one to many' join relationship):
    1) Use WITH clauses
    2) Use inline views
    3) Use standard views
    4) Use temporary tables
    5) Maybe more possibilities
    Without much of an insite into how Oracle 'works' it's difficult to gauge which of these is less 'resource hungry'.
    Possibly there is a reference on how to use the PGA & SGA efficiently?
    Or possibly a more definitive explanation on what's actually stored in these memory areas (rather than just 'prorgam' and 'system' data).
    Regards all,

    SGA is used in 2 main areas: parsing the SQL and avoiding disk reads by having stuff in memory. There is one SGA for all of XE instance.
    PGA is used heavily for sorting, hash joining and 'working stuff'. The PGA is created for each Dedicated Server process. Much of the PGA is inside the SGA for Shared Server processes
    SGA: (There are exceptions to each of these 'Rules Of Thumb' or 'ROT' statements)
    Good coding technique will allow reuse of SQL and avoid as much as possible reparsing;
    Use bind variables;
    Do not create SQL on the fly;
    Avoid dynamic SQL (concat strings to create SQL on the fly);
    Forget about tweakiing the buffer cache as it is mainly a performance thing that you can't do much about in XE;
    WITH clause is nice as it may reduce the count of subqueries;
    Leave it with 'automatic memory management' (again a perf hit, but it will attempt to optimize mem availability);
    Don't reinvent - Use the features that are loaded as they will likely get statements out faster, releasing memory faster;
    Stored Views may (often do) grab unneeded table data. When joining to stored views, see whether they can be replaced by cleaner code;
    Do not create SQL on the fly.
    PGA:
    Use shared server when feasible (at risk of performance hit);
    Global Temp Tables go into PGA, watch the use;
    Maximize reuabale SQL, minimze all other languages (remote or in DB) including PL/SQL;
    Watch for PGA wasters such as UNION vs the better UNION ALL, and unneeded sorts;
    PGA is 'swapped out' to Temporary tablespace. Make sure temp tablespace big enough ... it's not counted in the 4GB disk;
    Avoid using COMMIT except at end of transaction. Avoid COMMIT in loops. Make sure undo tablespace is big enough ... it's not counted in the 4GB disk ;
    Did I mention it's not a good idea to create SQL on the fly?

  • SGA & PGA target

    Hi all,
    My questions is regarding how to set up SGA & PGA target values giving DB server is MS 2003 Enterprise 64 edition sever with 63 GB of RAM. Our DB’s version is 10.2.0.3 and RACed with 2 instances.
    Currently our setting for SGA is 23 GB and PGA is 4 GB. I ran the memory advisor it display different optimal values for those two instances (35 GB and 23 GB for SGA, 5 GB and 4 GB for PGA). Guess our db is not well balance loaded.
    I would like to know if there is any rule(s) that SGA can’t be more than certain percentage of total RAM for the server.
    Thanks a lot in advance.
    Have a great weekend!!
    Shirley

    Hi
    Here is my approach:
    1) consider free physical memory (meassure must be taken with Oracle down)
    2) substract a 10% of that amount as a margin
    3) if the box is exclusive for Oracle, the remaining amount may be your SGA+PGA limit
    4) if not is exclusive, then substract memory required for other services, then you'll get the SGA+PGA limit.
    5) Substract your PGA size, giving the SGA figure
    For instance
    59 Gb - 6 Gb = 53 Gb - 4 Gb = 49 Gb
    (63 Gb -4 Gb [estimated OS footprint + IO cache]) = 59 Gb free physical memory
    Setting PGA+SGA beyond the free physical memory figure, may lead to swaping and degraded system performance.
    Regards
    http://oracledisect.blogspot.com

  • Error changing value of memory_target in 11g

    Hello -
    I am getting this error:
    SQL> alter system set memory_target=250M sid='m433d1';
    alter system set memory_target=250M sid='m433d1'
    ERROR at line 1:
    ORA-02097: parameter cannot be modified because specified value is invalid
    ORA-00846: could not shrink MEMORY_TARGET to specified value
    Here are the current memory values:
    m433d1.__db_cache_size=96468992 = 92M
    m433d1.__java_pool_size=4194304 = 4M
    m433d1.__large_pool_size=8388608 = 8M
    m433d1.__shared_pool_size=184549376 = 176
    pga = 108
    SQL> show parameter pga_aggregate_target;
    NAME TYPE VALUE
    pga_aggregate_target big integer 12M
    SQL> show parameter sga_target
    NAME TYPE VALUE
    sga_target big integer 200M
    Why would I not be able to set to 250M, if the pga + sga = 212M? The individual componts of SGA + PGA = 284M. Therefore, it allows me to resize to resize with 275M, but not 272M:
    SQL> alter system set memory_target=275M sid='m433d1';
    System altered.
    SQL> alter system set memory_target=272M sid='m433d1';
    alter system set memory_target=272M sid='m433d1'
    ERROR at line 1:
    ORA-02097: parameter cannot be modified because specified value is invalid
    ORA-00846: could not shrink MEMORY_TARGET to specified value
    Any ideas are greatly appreciated!
    Thanks,
    mike

    m433d1.__db_cache_size=96468992 = 92M
    m433d1.__java_pool_size=4194304 = 4M
    m433d1.__large_pool_size=8388608 = 8M
    m433d1.__shared_pool_size=184549376 = 176
    pga = 108
    ==========
    I understand that these values were set explicitly.
    You can see the values of db_cache_size and shared_pool itself totals to 268M
    Since these values are set explicitly, then you cannot give the value for memory_target to a lower value.
    OR
    set all other component values to 0 and set memory_target.
    Mahesh

  • Setting max heap in Oracle JVM

    Hello -
    I'm having a problem with a Java stored procedure running out of heap memory in Oracle 10g running Java 1.4.
    Normally (running Java in a standard context) I would just modify the -Xmx with a higher value, but for the life of me I can't figure out how to do it in a stored procedure context.
    I have browsed Google and I have browsed the Oracle JVM installation stuff, all to no avail.
    Can anyone help me with how to set my max heap size, or verify that it's impossible? I have taken all of the standard Oracle memory parameters (JAVA_POOL, UGA/PGA/SGA limits) out of the picture by jacking them up and keeping an eye on memory values up to the point that the procedure fails (at ~700m), so I'm pretty sure that this is my problem.
    So far I have looked at:
    Config files
    Config tables
    DB parameters
    I haven't been able to find anything remotely related to JVM option configuration in any of the above.
    It is worth noting that I ran across another forum where someone was wanting to set their minimum heap size, and they were told that it was not possible. I'm just having trouble believing that it's the same story with something as critical as max heap size.
    Much obliged for any help.
    Thanks,
    Annaka

    From Metalink Note 466112.1:
    Applies to:
    Oracle Server - Enterprise Edition - Version: 9.2.0.1 to 10.2.0.3
    This problem can occur on any platform.
    Symptoms
    When attempting to execute a java class that works fine in a stand alone JVM, fails with Oracle JVM with the following error:
    ERROR
    ORA-29532: Java call terminated by uncaught Java exception:
    java.lang.OutOfMemoryError
    ORA-06512: at "IDS_SYS.POD", line 3
    Cause
    The MaxMemorySize was set 256M (the default values) where the JSO needs memory more than 256 MB to run.
    This can be checked as following:
    SQL> create or replace function getMaxMemorySize return number
    2 is language java name
    3 'oracle.aurora.vm.OracleRuntime.getMaxMemorySize() returns long';
    4 /
    Function created.
    SQL> select getMaxMemorySize from dual;
    GETMAXMEMORYSIZE
    268435456
    After increasing the MaxMemorySize to a larger value(1 GB), the problem was fixed
    Solution
    Please increase the MaxMemorySize to a larger values(i.e. 1GB), this can be done as following:
    SQL> create or replace function setMaxMemorySize(num number) return number
    2 is language java name
    3 'oracle.aurora.vm.OracleRuntime.setMaxMemorySize(long) returns long';
    4 /
    Function created.
    SQL> select setMaxMemorySize(1024*1024*1024) from dual;
    SETMAXMEMORYSIZE(1024*1024*1024)
    Then you can check if the value is set correctly using the following:
    SQL> select getMaxMemorySize from dual;
    GETMAXMEMORYSIZE
    1073741824
    In my case I had to set the parameter within a job's the session.
    bye
    TPD
    Edited by: TPD on Sep 23, 2008 4:27 PM - tags added

  • Oracle Error in a Data Dictionary

    Is there a data dictionary or table that contains all Oracle errors and it's description?

    or sqlerrm
    begin
      for i in 1..100 loop
        if (sqlerrm(-i) not like '%Message % not found%') then
          dbms_output.put_line(sqlerrm(-i));
        end if;
      end loop;
    end;
    ORA-00001: unique constraint (.) violated
    ORA-00017: session requested to set trace event
    ORA-00018: maximum number of sessions exceeded
    ORA-00019: maximum number of session licenses exceeded
    ORA-00020: maximum number of processes () exceeded
    ORA-00021: session attached to some other process; cannot switch session
    ORA-00022: invalid session ID; access denied
    ORA-00023: session references process private memory; cannot detach session
    ORA-00024: logins from more than one process not allowed in single-process mode
    ORA-00025: failed to allocate
    ORA-00026: missing or invalid session ID
    ORA-00027: cannot kill current session
    ORA-00028: your session has been killed
    ORA-00029: session is not a user session
    ORA-00030: User session ID does not exist.
    ORA-00031: session marked for kill
    ORA-00032: invalid session migration password
    ORA-00033: current session has empty migration password
    ORA-00034: cannot  in current PL/SQL session
    ORA-00035: LICENSE_MAX_USERS cannot be less than current number of users
    ORA-00036: maximum number of recursive SQL levels () exceeded
    ORA-00037: cannot switch to a session belonging to a different server group
    ORA-00038: Cannot create session: server group belongs to another user
    ORA-00040: active time limit exceeded - call aborted
    ORA-00041: active time limit exceeded - session terminated
    ORA-00042: Unknown Service name
    ORA-00050: operating system error occurred while obtaining an enqueue
    ORA-00051: timeout occurred while waiting for a resource
    ORA-00052: maximum number of enqueue resources () exceeded
    ORA-00053: maximum number of enqueues exceeded
    ORA-00054: resource busy and acquire with NOWAIT specified
    ORA-00055: maximum number of DML locks exceeded
    ORA-00056: DDL lock on object '.' is already held in an incompatible mode
    ORA-00057: maximum number of temporary table locks exceeded
    ORA-00058: DB_BLOCK_SIZE must be  to mount this database (not )
    ORA-00059: maximum number of DB_FILES exceeded
    ORA-00060: deadlock detected while waiting for resource
    ORA-00061: another instance has a different DML_LOCKS setting
    ORA-00062: DML full-table lock cannot be acquired; DML_LOCKS is 0
    ORA-00063: maximum number of log files exceeded
    ORA-00064: object is too large to allocate on this O/S (,)
    ORA-00065: initialization of FIXED_DATE failed
    ORA-00067: invalid value  for parameter ; must be at least
    ORA-00068: invalid value  for parameter , must be between  and
    ORA-00069: cannot acquire lock -- table locks disabled for
    ORA-00070: command  is not valid
    ORA-00071: process number must be between 1 and
    ORA-00072: process "" is not active
    ORA-00073: command  takes between  and  argument(s)
    ORA-00074: no process has been specified
    ORA-00075: process "" not found in this instance
    ORA-00076: dump  not found
    ORA-00077: dump  is not valid
    ORA-00078: cannot dump variables by name
    ORA-00079: variable  not found
    ORA-00080: invalid global area specified by level
    ORA-00081: address range [, ) is not readable
    ORA-00082: memory size of  is not in valid set of [1], [2], [4]
    ORA-00083: warning: possibly corrupt SGA mapped
    ORA-00084: global area must be PGA, SGA, or UGA
    ORA-00085: current call does not exist
    ORA-00086: user call does not exist
    ORA-00087: command cannot be executed on remote instance
    ORA-00088: command cannot be executed by shared server
    ORA-00089: invalid instance number in ORADEBUG command
    ORA-00090: failed to allocate memory for cluster database ORADEBUG command
    ORA-00091: LARGE_POOL_SIZE must be at least
    ORA-00092: LARGE_POOL_SIZE must be greater than LARGE_POOL_MIN_ALLOC
    ORA-00093:  must be between  and
    ORA-00094:  requires an integer value
    ORA-00096: invalid value  for parameter , must be from among
    ORA-00097: use of Oracle SQL feature not in SQL92  Level
    ORA-00100: no data found

  • Internal Table with Oracle's Error Codes

    Hi,
    Is there any internal table where is stored every oracle error code with it's Cause, Action and all the other similar stuff?
    Att,

    For a table of all "ORA-" error codes and messages, you could do something like:
    <BR>
    create type t_oracle_error is object (
    error_num varchar2(9),
    error_desc varchar2(1024)
    create type t_oracle_error_tab is table of t_oracle_error;
    create or replace function OracleErrors return t_oracle_error_tab pipelined is
      l_error t_oracle_error := t_oracle_error(null,null);
    begin
      for errNo in reverse -32799..0 loop
        l_error.error_num := errNo;
        l_error.error_desc := sqlerrm(errNo);
        if l_error.error_desc not like '%Message % not found;%' and l_error.error_desc != 'ORA'||to_char(errNo,'FM09999')||': ' then
          pipe row(l_error);
        end if;
      end loop;
      return;
    end OracleErrors;
    select * from table(oracleerrors);
    SQL> select * from table(oracleerrors);
    ERROR_NUM ERROR_DESC
    0         ORA-0000: normal, successful completion
    -1        ORA-00001: unique constraint (.) violated
    -17       ORA-00017: session requested to set trace event
    -18       ORA-00018: maximum number of sessions exceeded
    -19       ORA-00019: maximum number of session licenses exceeded
    -20       ORA-00020: maximum number of processes () exceeded
    -21       ORA-00021: session attached to some other process; cannot switch session
    -22       ORA-00022: invalid session ID; access denied
    -23       ORA-00023: session references process private memory; cannot detach session
    -24       ORA-00024: logins from more than one process not allowed in single-process mode
    -25       ORA-00025: failed to allocate
    -26       ORA-00026: missing or invalid session ID
    -27       ORA-00027: cannot kill current session
    -28       ORA-00028: your session has been killed
    -29       ORA-00029: session is not a user session
    -30       ORA-00030: User session ID does not exist.
    -31       ORA-00031: session marked for kill
    -32       ORA-00032: invalid session migration password
    -33       ORA-00033: current session has empty migration password
    -34       ORA-00034: cannot  in current PL/SQL session
    -35       ORA-00035: LICENSE_MAX_USERS cannot be less than current number of users
    -36       ORA-00036: maximum number of recursive SQL levels () exceeded
    -37       ORA-00037: cannot switch to a session belonging to a different server group
    -38       ORA-00038: Cannot create session: server group belongs to another user
    -50       ORA-00050: operating system error occurred while obtaining an enqueue
    -51       ORA-00051: timeout occurred while waiting for a resource
    -52       ORA-00052: maximum number of enqueue resources () exceeded
    -53       ORA-00053: maximum number of enqueues exceeded
    -54       ORA-00054: resource busy and acquire with NOWAIT specified
    -55       ORA-00055: maximum number of DML locks exceeded
    -56       ORA-00056: DDL lock on object '.' is already held in an incompatible mode
    -57       ORA-00057: maximum number of temporary table locks exceeded
    -58       ORA-00058: DB_BLOCK_SIZE must be  to mount this database (not )
    -59       ORA-00059: maximum number of DB_FILES exceeded
    -60       ORA-00060: deadlock detected while waiting for resource
    -61       ORA-00061: another instance has a different DML_LOCKS setting
    -62       ORA-00062: DML full-table lock cannot be acquired; DML_LOCKS is 0
    -63       ORA-00063: maximum number of LOG_FILES exceeded
    -64       ORA-00064: object is too large to allocate on this O/S (,)
    -65       ORA-00065: initialization of FIXED_DATE failed
    -66       ORA-00066: LOG_FILES is  but needs to be  to be compatible
    -67       ORA-00067: invalid value  for parameter ; must be at least
    -68       ORA-00068: invalid value  for parameter , must be between  and
    -69       ORA-00069: cannot acquire lock -- table locks disabled for
    -70       ORA-00070: command  is not valid
    -71       ORA-00071: process number must be between 1 and
    -72       ORA-00072: process "" is not active
    -73       ORA-00073: command  takes between  and  argument(s)
    -74       ORA-00074: no process has been specified
    -75       ORA-00075: process "" not found in this instance
    -76       ORA-00076: dump  not found
    -77       ORA-00077: dump  is not valid
    -78       ORA-00078: cannot dump variables by name
    -79       ORA-00079: variable  not found
    -80       ORA-00080: invalid global area specified by level
    -81       ORA-00081: address range [, ) is not readable
    -82       ORA-00082: memory size of  is not in valid set of [1], [2], [4]
    -83       ORA-00083: warning: possibly corrupt SGA mapped
    -84       ORA-00084: global area must be PGA, SGA, or UGA
    -85       ORA-00085: current call does not exist
    -86       ORA-00086: user call does not exist
    -87       ORA-00087: command cannot be executed on remote instance
    -88       ORA-00088: command cannot be executed by shared server
    -89       ORA-00089: invalid instance number in ORADEBUG command
    -90       ORA-00090: failed to allocate memory for cluster database ORADEBUG command
    -91       ORA-00091: LARGE_POOL_SIZE must be at least
    -92       ORA-00092: LARGE_POOL_SIZE must be greater than LARGE_POOL_MIN_ALLOC
    -93       ORA-00093:  must be between  and
    -94       ORA-00094:  requires an integer value
    -96       ORA-00096: invalid value  for parameter , must be from among
    -97       ORA-00097: use of Oracle SQL feature not in SQL92  Level
    -99       ORA-00099: timed out while waiting for resource, potential PDML deadlock
    -100      ORA-00100: no data found
    -101      ORA-00101: invalid specification for system parameter DISPATCHERS
    -102      ORA-00102: network protocol  cannot be used by dispatchers
    -103      ORA-00103: invalid network protocol; reserved for use by dispatchers
    -104      ORA-00104: deadlock detected; all public servers blocked waiting for resources
    -105      ORA-00105: dispatching mechanism not configured for network protocol
    -106      ORA-00106: cannot startup/shutdown database when connected to a dispatcher
    -107      ORA-00107: failed to connect to ORACLE listener process
    -108      ORA-00108: failed to set up dispatcher to accept connection asynchronously
    -111      ORA-00111: not all servers started because number of servers is limited to
    -112      ORA-00112: only created up to  (maximum specified) dispatchers
    -113      ORA-00113: protocol name  is too long
    -114      ORA-00114: missing value for system parameter SERVICE_NAMES
    -115      ORA-00115: connection refused; dispatcher connection table is full
    -116      ORA-00116: SERVICE_NAMES name is too long
    -117      ORA-00117: value out of range for system parameter SERVICE_NAMES
    -118      ORA-00118: value out of range for system parameter DISPATCHERS
    -119      ORA-00119: invalid specification for system parameter
    -120      ORA-00120: dispatching mechanism not enabled or installed
    -121      ORA-00121: SHARED_SERVERS specified without DISPATCHERS
    -122      ORA-00122: cannot initialize network configuration
    -123      ORA-00123: idle public server terminating
    -124      ORA-00124: DISPATCHERS specified without MAX_SHARED_SERVERS
    -125      ORA-00125: connection refused; invalid presentation
    -126      ORA-00126: connection refused; invalid duplicity
    -127      ORA-00127: dispatcher  does not exist
    -128      ORA-00128: this command requires a dispatcher name
    ...

  • Large shared pool

    I am running a DW application on 11.2.0.1, linux, using AMM. We have 64G memory, of which 45G is (theoretically) allocated to ORACLE.
    I have noticed that the PGA size has increased substantially ( I'd expect this, being a DW with an MDX miiddle ), to about 40G, but I also notice that the SGA has remained static at about 20G (it was 25G). I've ailso noticed that the shared pool has ballooned from a few hundred MB to 7Gb in a matter of months. This is definitely increasing I/O which is unwanted.
    Why does the shared pool get so big ? We are not a high turnover/large user number operation and parse times are a very small proportion of overall query time. Will a flush shrink the shared pool memory allocation or will it jsut clear the space ?

    OK, the allocated PGA will of course increase in response to demand, but I do not believe that the total PGA + SGA will ever break your 45G limit, and never has. I guess OEM is mis-representing something.
    wrt the performance issue, I would question whether the size of the shared pool is in fact impacting on performance. The way I look at it is that no end user ever telphoned the help desk to say "the shared pool is too big" or "disc I/O is excessive". They may telephone to say "my queries are too slow". This throws you into the realm of query tuning, which would be a different topic.
    wrt to memory usage and AMM, I believe that AMM does tend to assign more memory than needed to the shared_pool. If this really is a problem in your instance (and we don't know this yet) then you can set minimum values for the other SGA structures (usually, db_cache_size) to prevent this.
    Hope this helps.
    J.

  • Standby db memory size

    Hello,
    it's a simple question: when I have a Data Guard standby instance, does it need to have the exact same size of PGA/SGA as the primary? Or can it be downscaled and if so, are there any limits (ofc depending on primary workload). What would be an appropriate ratio between primary:standby pga/sga?
    Thanks.

    Honza wrote:
    Hello,
    it's a simple question: when I have a Data Guard standby instance, does it need to have the exact same size of PGA/SGA as the primary? Or can it be downscaled and if so, are there any limits (ofc depending on primary workload). What would be an appropriate ratio between primary:standby pga/sga?
    Thanks.No do not need memory configuration setting to set as primary.But you need set SGA/PGA properly,because when applying archive logs you can get errors(if you do not gen any errors then all are ok.)

  • Oracle Database Performance With Semantic

    Hello,
    Is there a Developer's Guide for Semantic that specifically talks about database performance with the Semantic network/tables/indexes? We are having issues with performance the larger the semantic network becomes.
    Any help or pointers would be appriciated.
    Thanks
    -MichaelB

    Matt,
    Thanks for your response. Here are the answers to the questions about our setup/environment.
    1) Are you querying multiple models and/or a model + entailment? If so, are you using a virtual model and using the ALLOW_DUP=T query option?
    A single model, no entailments. We attempted to use multiple models, and a virtual model (with ALLOW_DUP=T), however the UNION ALL in the explain plan made the query duration unacceptable.
    2) Are you using named graphs?
    No named graphs.
    3) How many triples are you querying?
    Approximately 85 million.
    4) What semantic network and/or datatype indexes have been created?
    We have PCSGM, PSCGM, PSCM, PCSM, CPSM, and SCM.
    5) What is your hardware setup (number and type of disks, RAM, processor, etc.)?
    We are running the 11.2.0.3 database on a Sun Solaris T2000, we have ASM managing our disks from RAID5, I believe currently we have two Disk Groups with the indexes in one and the data tables in the other. We have 32 GB of memory, and 32 CPUs. However, it is not the only thing running on the machine.
    6) How much memory have you allocated to the database (pga, sga, memory_target, etc.)?
    We have the memory_target set to 9GB, the db_cache_size set to 2GB, and the db_keep_cache_size set to 4.5GB. `pga_aggregate_target` is set to 0 (auto), as is `sga_target`.
    (Since my initial request, we pinned the RDF_VALUE$ (~2.5GB) and C_PK_VID (~1.7GB) objects in the KEEP buffer cache, which drastically improved performance)
    7) Are you using parallel query execution?
    Yes, some of the more complex queries we run with the parallel hint set to 8.
    8) Have you tried dynamic sampling?
    Yes. We have ODS set to 3 for our more complex queries, we have not altered this much to see if there is a performance gained by changing this value.
    Thanks again,
    -Michael

  • What is the consensus regarding AMM

    Hi I am running a test database on AIX and have just upgraded from 10.2 to 11.2
    When i created my database using DBCA i set the SGA to 512 mb. When i upgraded to 11g it said the minimum was 624mb which i increased it to.
    I have just had a message in the alert log : ORA-12751: cpu time or run time policy violation but cant see any issues.
    Anyway after looking at various different sites I decided to switch from using ASMM to AMM. What is the general concensus regarding AMM? How do most be manage the SGA- ASMM, AMM or manually?Am i right in thinking i no longer have to worry about changing any parameters in the SGA now?
    Many thanks for any feedback

    I have it running in both of my 'major' databases that I'm primarily responsible for:
    Exadata V2 (Linux) - AMM enabled - memory target/max = 40Gb, SGA max = 40Gb, PGA not set, shared pool not set, buffer cache not set - runs perfectly
    11.2.0.3 (running on AIX) - AMM enabled - memory target/max = 15Gb - for this one, we had to explicitly set minimum values for PGA, SGA, buffer cache, shared pool (and subpools)
    If I let Oracle have complete control on the AIX-hosted database, the performance was quite wild. Not sure whether that's because of the O/S or just because of the type of workload. I would suggest setting minimum values for the key components and then allowing Oracle to decide what gets any overhead at any particular time.

  • What Tables or Views for ORA- errors?

    What are those tables or views where you can lookup for the ORA- errors which has a description or meaning?
    Thanks,
    Warren

    Of course, you can always use the SQLERRM function, as well:
    SQL> begin
      2    for i in 1..100 loop
      3      dbms_output.put_line(SQLERRM(i * -1));
      4    end loop;
      5  end;
      6  /
    ORA-00001: unique constraint (.) violated
    ORA-00002: Message 2 not found;  product=RDBMS; facility=ORA
    ORA-00003: Message 3 not found;  product=RDBMS; facility=ORA
    ORA-00004: Message 4 not found;  product=RDBMS; facility=ORA
    ORA-00005: Message 5 not found;  product=RDBMS; facility=ORA
    ORA-00006: Message 6 not found;  product=RDBMS; facility=ORA
    ORA-00007: Message 7 not found;  product=RDBMS; facility=ORA
    ORA-00008: Message 8 not found;  product=RDBMS; facility=ORA
    ORA-00009: Message 9 not found;  product=RDBMS; facility=ORA
    ORA-00010: Message 10 not found;  product=RDBMS; facility=ORA
    ORA-00011: Message 11 not found;  product=RDBMS; facility=ORA
    ORA-00012: Message 12 not found;  product=RDBMS; facility=ORA
    ORA-00013: Message 13 not found;  product=RDBMS; facility=ORA
    ORA-00014: Message 14 not found;  product=RDBMS; facility=ORA
    ORA-00015: Message 15 not found;  product=RDBMS; facility=ORA
    ORA-00016: Message 16 not found;  product=RDBMS; facility=ORA
    ORA-00017: session requested to set trace event
    ORA-00018: maximum number of sessions exceeded
    ORA-00019: maximum number of session licenses exceeded
    ORA-00020: maximum number of processes () exceeded
    ORA-00021: session attached to some other process; cannot switch session
    ORA-00022: invalid session ID; access denied
    ORA-00023: session references process private memory; cannot detach session
    ORA-00024: logins from more than one process not allowed in single-process mode
    ORA-00025: failed to allocate
    ORA-00026: missing or invalid session ID
    ORA-00027: cannot kill current session
    ORA-00028: your session has been killed
    ORA-00029: session is not a user session
    ORA-00030: User session ID does not exist.
    ORA-00031: session marked for kill
    ORA-00032: invalid session migration password
    ORA-00033: current session has empty migration password
    ORA-00034: cannot  in current PL/SQL session
    ORA-00035: LICENSE_MAX_USERS cannot be less than current number of users
    ORA-00036: maximum number of recursive SQL levels () exceeded
    ORA-00037: cannot switch to a session belonging to a different server group
    ORA-00038: Cannot create session: server group belongs to another user
    ORA-00039: Message 39 not found;  product=RDBMS; facility=ORA
    ORA-00040: Message 40 not found;  product=RDBMS; facility=ORA
    ORA-00041: Message 41 not found;  product=RDBMS; facility=ORA
    ORA-00042: Message 42 not found;  product=RDBMS; facility=ORA
    ORA-00043: Message 43 not found;  product=RDBMS; facility=ORA
    ORA-00044: Message 44 not found;  product=RDBMS; facility=ORA
    ORA-00045: Message 45 not found;  product=RDBMS; facility=ORA
    ORA-00046: Message 46 not found;  product=RDBMS; facility=ORA
    ORA-00047: Message 47 not found;  product=RDBMS; facility=ORA
    ORA-00048: Message 48 not found;  product=RDBMS; facility=ORA
    ORA-00049: Message 49 not found;  product=RDBMS; facility=ORA
    ORA-00050: operating system error occurred while obtaining an enqueue
    ORA-00051: timeout occurred while waiting for a resource
    ORA-00052: maximum number of enqueue resources () exceeded
    ORA-00053: maximum number of enqueues exceeded
    ORA-00054: resource busy and acquire with NOWAIT specified
    ORA-00055: maximum number of DML locks exceeded
    ORA-00056: DDL lock on object '.' is already held in an incompatible mode
    ORA-00057: maximum number of temporary table locks exceeded
    ORA-00058: DB_BLOCK_SIZE must be  to mount this database (not )
    ORA-00059: maximum number of DB_FILES exceeded
    ORA-00060: deadlock detected while waiting for resource
    ORA-00061: another instance has a different DML_LOCKS setting
    ORA-00062: DML full-table lock cannot be acquired; DML_LOCKS is 0
    ORA-00063: maximum number of LOG_FILES exceeded
    ORA-00064: object is too large to allocate on this O/S (,)
    ORA-00065: initialization of FIXED_DATE failed
    ORA-00066: LOG_FILES is  but needs to be  to be compatible
    ORA-00067: invalid value  for parameter ; must be at least
    ORA-00068: invalid value  for parameter , must be between  and
    ORA-00069: cannot acquire lock -- table locks disabled for
    ORA-00070: command  is not valid
    ORA-00071: process number must be between 1 and
    ORA-00072: process "" is not active
    ORA-00073: command  takes between  and  argument(s)
    ORA-00074: no process has been specified
    ORA-00075: process "" not found in this instance
    ORA-00076: dump  not found
    ORA-00077: dump  is not valid
    ORA-00078: cannot dump variables by name
    ORA-00079: variable  not found
    ORA-00080: invalid global area specified by level
    ORA-00081: address range [, ) is not readable
    ORA-00082: memory size of  is not in valid set of [1], [2], [4]
    ORA-00083: warning: possibly corrupt SGA mapped
    ORA-00084: global area must be PGA, SGA, or UGA
    ORA-00085: current call does not exist
    ORA-00086: user call does not exist
    ORA-00087: command cannot be executed on remote instance
    ORA-00088: command cannot be executed by shared server
    ORA-00089: invalid instance number in ORADEBUG command
    ORA-00090: failed to allocate memory for cluster database ORADEBUG command
    ORA-00091: LARGE_POOL_SIZE must be at least
    ORA-00092: LARGE_POOL_SIZE must be greater than LARGE_POOL_MIN_ALLOC
    ORA-00093:  must be between  and
    ORA-00094:  requires an integer value
    ORA-00095: Message 95 not found;  product=RDBMS; facility=ORA
    ORA-00096: invalid value  for parameter , must be from among
    ORA-00097: use of Oracle SQL feature not in SQL92  Level
    ORA-00098: Message 98 not found;  product=RDBMS; facility=ORA
    ORA-00099: timed out while waiting for resource, potential PDML deadlock
    ORA-00100: no data found
    PL/SQL procedure successfully completed

Maybe you are looking for