(9I) DYNAMIC SGA : SGA_MAX_SIZE, DB_CACHE_SIZE, DB_KEEP_CACHE_SIZE

제품 : ORACLE SERVER
작성날짜 : 2005-01-05
(9I) DYNAMIC SGA : SGA_MAX_SIZE, DB_CACHE_SIZE, DB_KEEP_CACHE_SIZE
==================================================================
PURPOSE
Oracle 9i의 새 기능인 동적으로 SGA 파라미터들을 변경하는 방법에
대하여 알아보기로 한다.
Explanation
Oracle 8i까지는 Buffer Cache, Shared Pool, Large Pool 등과 같은 SGA
파라미터들에 대해 그 크기를 동적으로, db가 운영 중인 상태에서는 변경할
수가 없었다.
즉, 이러한 파라미터들을 변경하려면 db를 shutdown하고 initSID.ora 화일에
서 그 크기를 다시 설정하고, 이 파라미터를 이용해서 db 인스턴스를 restart
해야만 했었다.
Oracle 9i에서는 DBA가 ALTER SYSTEM 명령을 이용해서 SGA 파라미터의 크기
를 동적으로 변경할 수 있게 되었다. 이 특정을 'Dynamic SGA'라고 부른다.
SGA 전체의 최대 크기(SGA_MAX_SIZE)를 정의하고 그 한도 내에서 파라미터의
크기를 변경할 수 있는 것이다. 데이타베이스를 shutdown/startup 없이 작업
이 가능하기 때문에 'Planned Downtime'을 줄이는 한 방법으로도 이해할 수
있다.
이 글에서는 SGA에 할당할 수 있는 최소 단위인 'Granule'의 개념을 살펴보
고, 이 granule이 어떠한 방법에 의해 동적으로 할당되는지에 대해 알아보고
자 한다.
또한 Buffer Cache 파라미터 중 새로운 것과 이전 버전에 비해 달라진 내용
을 소개하기로 한다.
1. Granule
Granule은 가상 메모리 상의 연속된 공간으로, dynamic SGA 모델에서 할당할
수 있는 최소 단위이다. 이 granule의 크기는 SGA 전체의 추정값
(SGA_MAX_SIZE)에 따라 다음과 같이 구분된다.
4MB if estimated SGA size is < 128M
16MB otherwise
SGA의 Buffer Cache, Shared Pool, Large Pool 등의 파라미터는 이 granule
단위로 늘어나거나 줄어들 수 있다. (현재 dynamic SGA를 사용할 수 있는
SGA 관련 파라미터는 Buffer Cache, Shared Pool, Large Pool 세 가지이다.)
2. Dynamic SGA(DB_CACHE_SIZE, SHARED_POOL_SIZE)
DBA는 ALTER SYSTEM 명령을 통해 initSID.ora 화일에 정의된 SGA 관련 파라미
터 값을 동적으로 변경할 수 있다. SGA 파라미터의 크기를 늘려주기 위해서
는 필요한 만큼의 free granule이 존재해야만 하며, 현재 사용하고 있는 SGA
의 크기가 SGA_MAX_SIZE보다 작아야 한다. Free granule이 없다고 해서 다른
파라미터로부터 granule을 free시켜서 그 granule을 이용할 수 있는 것은 아
니다.
반드시 DBA가 명시적으로 free/allocate해야 한다.
다음의 예를 살펴보자. 설명을 단순화하기 위해 이 경우는 SGA가 Buffer
Cache와 Shared Pool로만 구성되었다고만 하자.
예) initSID.ora
SGA_MAX_SIZE = 128M
DB_CACHE_SIZE = 96M
SHARED_POOL_SIZE = 32M
Note : DB_CACHE_SIZE는 Oracle 9i에 새롭게 도입된 파라미터이다.
위와 같은 상태일 때 동적으로 SHARED_POOL_SIZE를 64M로 늘리면 에러가 발생
한다.
SQL> ALTER SYSTEM SET SHARED_POOL_SIZE=64M;
(insufficient memory error message)
이 에러는 SHARED_POOL_SIZE를 늘림으로써 전체 SGA의 크기가 SGA_MAX_SIZE
보다 커지기 때문에 발생한다. (96M + 64M > 128M)
이를 해결하기 위해서는 DB_CACHE_SIZE를 줄인 후, SHARED_POOL_SIZE를 늘린다.
SQL> ALTER SYSTEM SET DB_CACHE_SIZE=64M;
SQL> ALTER SYSTEM SET SHARED_POOL_SIZE=64M;
Note : DB_CACHE_SIZE가 shrink되는 동안에
ALTER SYSTEM SET SHARED_POOL_SIZE=64M;
를 하면 insufficient error가 발생할 수도 있다.
이 경우는 DB_CACHE_SIZE가 shrink된 후 다시 수행하면 정상적으로
수행이 된다.
Note : 위 예제의 경우 estimated SGA 크기가 128M 이상이므로, granule의
단위는 16M이다. 따라서 SGA 파라미터의 크기를 16M의 정수배로 했다.
16M의 정수배가 아닌 경우는 지정한 값보다 큰 값에 대해 16M의
정수배 중 가장 가까운 값을 택하게 된다.
즉, 아래 두 문장의 결과는 똑같다.
SQL> ALTER SYSTEM SET SHARED_POOL_SIZE=64M;
SQL> ALTER SYSTEM SET SHARED_POOL_SIZE=49M;
Note : LARGE_POOL_SIZE 와 JAVA_POOL_SIZE 파라미터는 동적으로 변경하는
것이 불가능하다.
1) Dynamic Shared Pool
인스턴스 start 후, Shared Pool의 크기는 다음과 같은 명령에 의해 동적으
로 변경(grow or shrink)될 수 있다.
ALTER SYSTEM SET SHARED_POOL_SIZE=64M;
다음과 같은 제약 사항이 있다.
- 실제 할당되는 크기는 16M의 정수배가 된다.
- 전체 SGA의 크기는 SGA_MAX_SIZE를 초과할 수는 없다.
2) Dynamic Buffer Cache
인스턴스 start 후, Buffer Cache의 크기는 다음과 같은 명령에 의해 동적으
로 변경(grow or shrink)될 수 있다.
ALTER SYSTEM SET DB_CACHE_SIZE=96M;
다음과 같은 제약 사항이 있다.
- 실제 할당되는 크기는 16M의 정수배가 된다.
- 전체 SGA의 크기는 SGA_MAX_SIZE를 초과할 수는 없다.
- DB_CACHE_SIZE는 0이 될 수 없다.
3. Buffer Cache 파라미터의 변경된 내용
여기서는 Buffer Cache 파라미터와 관련하여 Oracle 9i에 의미가 없어진 파라
미터와 새롭게 추가된 파라미터, 그리고 dynamic SGA 중 Buffer Cache와 관련
이 있는 부분에 대해 기술하고자 한다.
1) Deprecated Buffer Cache Parameters
다음의 세 가지 파라미터는 backward compatibility를 위해 존재하는 것으
로, 차후 의미가 없어진다.
- DB_BLOCK_BUFFERS
- BUFFER_POOL_KEEP
- BUFFER_POOL_RECYCLE
위의 파라미터들이 정의되어 있으면 이 값들을 사용하게 될 것이다. 하지만,
다음에 나올 새로운 파라미터들을 사용하는 것이 좋으며, 만일 위 파라미터
(DB_BLOCK_BUFFERS, BUFFER_POOL_KEEP, BUFFER_POOL_RECYCLE) 값들을 사용
한다면 이 글에서 설명한 dynamic SGA 특징을 사용할 수는 없다. 또한
initSID.ora 화일에 위 파라미터들과 새로운 파라미터를 동시에 기술한다면
에러가 발생한다.
2) New Buffer Cache Sizing Parameters
다음의 세 파라미터가 추가되었다. 이 파라미터들은 primary block size에
대한 buffer cache 정보를 다루고 있다.
- DB_CACHE_SIZE
- DB_KEEP_CACHE_SIZE
- DB_RECYCLE_CACHE_SIZE
DB_CACHE_SIZE 파라미터에 지정된 값은 primary block size에 대한 default
Buffer Pool의 크기를 의미한다. 또한 이전 버전과 마찬가지로 KEEP과
RECYCLE buffer pool을 둘 수 있는데, 이는 DB_KEEP_CACHE_SIZE,
DB_RECYCLE_CACHE_SIZE 라는 파라미터를 이용한다.
이전 버전과 다른 점은 이전 버전의 경우 각각의 파라미터
(DB_BLOCK_BUFFERS, BUFFER_POOL_KEEP,BUFFER_POOL_RECYCLE)에 정의된 값들
이 buffer 갯수(즉, 실제 메모리 크기를 구하려면 db_block_size를 곱했어야
했다. )였는데 반해 이제는 구체적인 메모리 크기이다.
또한 이전에는 DB_BLOCK_BUFFERS가 BUFFER_POOL_KEEP, BUFFER_POOL_RECYCLE
의 값을 포함하고 있었지만, 이제는 DB_CACHE_SIZE가 DB_KEEP_CACHE_SIZE,
DB_RECYCLE_CACHE_SIZE를 포함하고 있지 않다.
즉, 각각의 파라미터들은 독립적이다.
Note : Oracle 9i부터는 multiple block size(2K, 4K, 8K, 16K, 32K)를 지원한다.
위에서 언급한 primary block size는 DB_BLOCK_SIZE에 의해 정해진 block
size를 의미한다. (SYSTEM tablespace는 이 block size를 이용한다.)
3) Dynamic Buffer Cache Size Parameters
바로 위에서 언급한 세 파라미터는 아래와 같이 ALTER SYSTEM 명령에 의해
동적으로 변경 가능하다.
SQL> ALTER SYSTEM SET DB_CACHE_SIZE=96M;
SQL> ALTER SYSTEM SET DB_KEEP_CACHE_SIZE=16M;
SQL> ALTER SYSTEM SET DB_RECYCLE_CACHE_SIZE=16M;
Example
none
Reference Documents
<Note:148495.1>

Hello Martin,
Can I execute by ORA-27102 the following commandos in order to set and use the values of sga_max_size immediately?
Variant 1)
>sqlplus /nolog
>connect / as sysdba
> startup nomout
> ALTER SYSTEM SET SGA_MAX_SIZE= ’value’ SCOPE=pfile;
> shutdown immediate
> startup
Variant 2)
Changing the values of sga_max_size, etc. in init<DBSID>.ora
>sqlplus /nolog
>connect / as sysdba
> startup from pfile = /oracle/<SID>/dbs/ init<DBSID>.ora;
Thank you very much!
regards
Thom

Similar Messages

  • Dynamic sga

    Hi All,
    I enabled 10g dynamic SGA by just keeping sga_target and sga_max_size...
    now when i see the dbcache_size...it doesn't show any value ..
    How do i know the amount of db_cache_cache, shared_pool size which is being used...
    Thanks in advance ...

    when u set sga_target its automatically sizes
    dbbc,shared_pool and other memory areas, this all areJust a gentle clarification - ASMM sizes SOME memory areas in the SGA.
    1) Only sizes the basic 5 (shared pool, Java pool, large pool, buffer cache, Streams pool)
    2) Of those, it only sizes those the DBA has set to 0
    There are a bunch that still need the DBA's watchful eye. http://download-east.oracle.com/docs/cd/B19306_01/server.102/b14220/memory.htm#sthref1258

  • Startup options and dynamic SGA

    Pls, let me know in detail, is it possible to change the values in the parameter file (like of database buffer cache) while the instance is running dynamically without shutting down the instance and what all memory structure can be changed and what all cannot be changed dynamically.
    Also, I want to know different database startup options like nomount, mount, open, restrict, force, recoverer. what are the uses of each option and for what purpose we start the database in these options

    You can dynamically change the size of the following memory segments limited to the size specified by SGA_TARGET_SIZE parameter.
    shared_pool_size
    large_pool_size
    java_pool_size
    db_cache_size
    For various startup options, you may like to refer to http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/start.htm#sthref523.
    HTH
    Thanks
    Chandra Pabba

  • SGA dynamic or not ?

    Hi Forum,
    when is SGA dynamic ? One SAP note says that the use of parameter db_cache_size make SGA dynamically sizing its buffers. Others say that parameter sga_target
    <> 0 decides on dynamic or not. If db_cache_size is set but sga_target is 0, what does this mean ?
    Kind regards
    hakort

    DB_CACHE_SIZE itself is a dynamic parameter. Even if you mention SGA_TARGET as 0, its still can be changed dynamically with alter system command. The dynamic word has been used at several places in oracle docs. By making db_cache_size dynamic, any changes done to it are immediately effected. But this doesn't mean that the entire SGA has become dynamic.
    With dynamic sga(started from 10g onwards), 5 parameters, which are mentioned by Laura are made dynamic and are collectively set by the SGA_TARGET parameter. This leaves the entire SGA over Oracle's discretion that how to allocate/deallocate memory among these parameters. This setting works only when the SGA_TAGET is set to some non-zero value. Once set to 0, Oracle reverts back to the manual SGA where the parameters can be changed by you dynamically but the entire SGA is still controlled by you. By entire SGA I mean the 5 parameters and the other non-dynamic parameters like Log_buffer and so on.
    HTH
    Aman....

  • Sga_max_size dynamic?

    Hi
    we are using oracle std edition
    how can we enable sga_max_size to be dynamic
    thanx
    kedar

    Hi,
    sga_max_size is a static parameter.You can increase the shared pool and buffer cache dynamic until sga_max_size.

  • Questions about db_keep_cache_size and Automatic Shared Memory Management

    Hello all,
    I'm coming upon a server that I'm needing to pin a table and some objects in, per the recommendations of an application support call.
    Looking at the database, which is a 5 node RAC cluster (11gr2), I'm looking to see how things are laid out:
    SQL> select name, value, value/1024/1024 value_MB from v$parameter
    2 where name in ('db_cache_size','db_keep_cache_size','db_recycle_cache_size','shared_pool_size','sga_max_size');
    NAME VALUE VALUE_MB
    sga_max_size 1694498816 1616
    shared_pool_size 0 0
    db_cache_size 0 0
    db_keep_cache_size 0 0
    db_recycle_cache_siz 0 0
    e
    Looking at granularity level:
    SQL> select granule_size/value from v$sga_dynamic_components, v$parameter where name = 'db_block_size' and component like 'KEEP%';
    GRANULE_SIZE/VALUE
    2048
    Then....I looked, and I thought this instance was set up with Auto Shared Mem Mgmt....but I see that sga_target size is not set:
    SQL> show parameter sga
    NAME TYPE VALUE
    lock_sga boolean FALSE
    pre_page_sga boolean FALSE
    sga_max_size big integer 1616M
    sga_target big integer 0
    So, I'm wondering first of all...would it be a good idea to switch to Automatic Shared Memory Management? If so, is this as simple as altering system set sga_target =...? Again, this is on a RAC system, is there a different way to do this than on a single instance?
    If that isn't the way to go...let me continue with the table size, etc....
    The table I need to pin is:
    SQL> select sum (blocks) from all_tables where table_name = 'MYTABLE' and owner = 'MYOWNER';
    SUM(BLOCKS)
    4858
    And block size is:
    SQL> show parameter block_size
    NAME TYPE VALUE
    db_block_size integer 8192
    So, the space I'll need in memory for pinning this is:
    4858 * 8192 /1024/1024 = 37.95.......which is well below my granularity mark of 2048
    So, would this be as easy as setting db_keep_cache_size = 2048 with an alter system call? Do I need to set db_cache_size first? What do I set that to?
    Thanks in advance for any suggestions and links to info on this.
    cayenne
    Edited by: cayenne on Mar 27, 2013 10:14 AM
    Edited by: cayenne on Mar 27, 2013 10:15 AM

    JohnWatson wrote:
    This is what you need,alter system set db_keep_cache_size=40M;I do not understand the arithmetic you do here,select granule_size/value from v$sga_dynamic_components, v$parameter where name = 'db_block_size' and component like 'KEEP%';it shows you the number of buffers per granule, which I would not think has any meaning.I'd been looking at some different sites studying this, and what I got from that, was that this granularity gave you the minimum you could set the db_keep_cache_size, that if you tried setting it below this value, it would be bumped up to it, and also, that each bump you gave the keep_cache, would be in increments of the granularity number....?
    Thanks,
    cayenne

  • Sga_max_size

    Hi,
    I have a question about the parameter sga-max-size.
    When starting the instance, oracle9i r2 on linux redhat, it seems that the total sga comes near to that sga-max-size parameter. As far as I understand is this used for dynamic sga, so you can increase db_cache_size etc on the fly. But does it also mean that the size of the SGA is already completely in the memory of the system? How can you see on Linux Redhat 9 how much memory Oracle is using, if it is really using the completely SGA (for example 1GB)?
    thanks
    greets

    it seems that the total sga comes near to that sga-max-size parameter
    r.- Explanation about this point: if the SGA components exceed the SGA_MAX_SIZE value the instance is not going to start.
    As far as I understand is this used for dynamic sga, so you can increase db_cache_size etc on the fly
    r.- It is true
    But does it also mean that the size of the SGA is already completely in the memory of the system?
    r.- Part of them. While the SGA is higher the memory in your machine is more used. But it does not mean that if you have 1GB in SGA it means that 1GB it is need of RAM. Really as far as I know Oracle software does not inform us in what proportion it uses the memory and so on. Oracle software and documentation learn us how the SGA must be handle.
    How can you see on Linux Redhat 9 how much memory Oracle is using
    r.- You have several ways to find out those values.
    1.- command : "top"
    2.- Create a script using "ps" command
    Joel Pérez
    http://otn.oracle.com/experts

  • Reduced SGA_TARGET, but SGA size not changing?

    I reduced the sga_taget from 1536M to 512M:
    alter system set sga_target = 500M scope = memory;
    System altered.
    select VERSION from v$instance;
    VERSION
    10.2.0.3.0
    show parameter sga
    NAME TYPE VALUE
    lock_sga boolean FALSE
    pre_page_sga boolean FALSE
    sga_max_size big integer 1536M
    sga_target big integer 512M
    But the real memory still showing the original value
    show sga
    Total System Global Area 1610612736 bytes
    Fixed Size 2030456 bytes
    Variable Size 1509950600 bytes
    Database Buffers 83886080 bytes
    Redo Buffers 14745600 bytes
    why is that while it's a dynamic parameter?
    Thanks a lot for any help.
    Edited by: user10484253 on May 13, 2011 8:36 AM
    Edited by: user10484253 on May 13, 2011 8:39 AM
    Edited by: user10484253 on May 13, 2011 8:41 AM

    I would suggest you to check v$sgastat to find out the exact SGA memory you are using currently instead of using "SHOW SGA" when when you set SGA_MAX_SIZE & SGA_TARGET initialization parameters.
    Below is a sample output from one of my test dbs. As you can see below my SGA size is only 1GB.
    SHOW SGA shows 2GB thats because I have set SGA_MAX_SIZE to 2gb ( which only means that I can grow my sga up till 2 gig , it may not be my current sga size).
    you can try increasing or decreasing SGA_TARGET and check memory usage on OS level to see the difference.
    SQL>show parameter sga
    NAME                                 TYPE        VALUE
    lock_sga                             boolean     FALSE
    pre_page_sga                         boolean     FALSE
    sga_max_size                         big integer 2000M
    sga_target                           big integer 1008M
    SQL>show sga
    Total System Global Area 2087780352 bytes
    Fixed Size                  2155336 bytes
    Variable Size            1744833720 bytes
    Database Buffers          318767104 bytes
    Redo Buffers               22024192 bytes
    SQL>select name, round(sum(mb),1) mb
      2        from (
      3      select case when name = 'buffer_cache' then 'db_cache_size'
      4                  when name = 'log_buffer'   then 'log_buffer'
      5                  else pool
      6              end name,
      7              bytes/1024/1024 mb
      8                   from v$sgastat
      9           )group by name
    10  /
    NAME                  MB
    db_cache_size        304
    java pool            128
    large pool            16
    log_buffer            21
    shared pool          528
                         2.1
    6 rows selected.
    SQL> -- V$SGA_DYNAMIC_FREE_MEMORY: Information about the amount of SGA memory available for future dynamic SGA resize operations.
    SQL>select * from V$SGA_DYNAMIC_FREE_MEMORY;
    CURRENT_SIZE
      1040187392- Krishna

  • Set SGA maximum size larget than it's component

    Dear all,
    I want to activate the DISM in Oracle 10g on Solaris container, therefore I need to set the parameter sga_max_size larger than it's component.
    From my understanding, below are the sga components parameter and the current value on my system::
    SHARED_POOL_SIZE (560M)
    LARGE_POOL_SIZE (0)
    JAVA_POOL_SIZE (32M)
    DB_CACHE_SIZE (560M)
    STREAMS_POOL_SIZE (0)
    The thing is, my sga max size parameter (1168M) is already larger than above parameters.
    Is there another sga component I've missed ? Plz advice. Thanks.

    Hi,
    SGA: The size is determined indirectly from the size of the contained memory areas.
    – 1) Buffer pool: DB_BLOCK_BUFFERS (unit: blocks) or DB_CACHE_SIZE when you use the dynamic SGA
    2) – Shared pool: SHARED_POOL_SIZE
    –3) Java pool: JAVA_POOL_SIZE
    – 4) Large pool: LARGE_POOL_SIZE
    –5) Streams pool (Oracle 10g or later): STREAMS_POOL_SIZE
    –6) Redo buffer: LOG_BUFFER
    In addition, in the context of the dynamic SGA , you can define parameter
    SGA_MAX_SIZE, which sets an upper limit for the total size of the SGA. In
    general, you can only increase the size of parameters, such as DB_CACHE_SIZE
    or SHARED_POOL_SIZE, up to the size defined by SGA_MAX_SIZE.
    Thanks
    Sunny

  • 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

  • Increase SGA_MAX_SIZE and SGA_TARGET

    Hi all,
    I want to increase SGA_MAX_SIZE and SGA_TARGET in 10g. Currently we have
    SQL> sho parameter sga
    NAME TYPE VALUE
    lock_sga boolean FALSE
    pre_page_sga boolean FALSE
    sga_max_size big integer 2384M
    sga_target big integer 2384M
    And we have 16GB RAM in redhat linux 4(32 bit).Oracle 10.2.0.3 DB.
    Because of 32 bit OS, I was not able to increase shmmax more than 4GB.
    In this situation how and how much SGA_MAX_SIZE and SGA_TARGET I can increase?
    Thanks in Advance,
    Sunil

    Hi sunilgln,
    Given the present state of things, you have to take a meassure of how many RAM is used with nothing running but the OS, that will give you the Linux footprint.
    Take note of the amount of physical free memory (using <strong>top</strong> command)
    Later you have to estimate how much swapping are you willing to accept, the SGA you define may be within the ranges of
    FREE MEM*90% and FREE MEM*90+(OS FOOTPRINT*%SWAP MEMORY WILLING TO USE)
    <em>This is a proposal for setting this up, you need to tune and balance load depending on usage.</em>
    Another recommendation, SGA_TARGET is <strong>dynamic</strong>, SGA_MAX_SIZE is not...but you may set SGA_MAX_SIZE to a full allocation and set SGA_TARGET to a percentage that allocation and gradually use it.
    What happens is: the OS will "allocate" a chunk(or chunks) the size given by SGA_MAX_SIZE, but the real usage by the database will be determined by SGA_TARGET.
    Hope this helps you
    Ignacio
    Regards
    http://oracledisect.blogspot.com

  • Need to increase db_cache_size

    Hi Forum Friends,
    I have one concern, On one production server as per ADDM analysis report we need to increase db_cache_size at db level .
    According to my knowledge, SGA_MAX_SIZE= db_cache_size+shared_pool size + large pool size . Pls correct if i am wrong ?
    As per my DB settings:
    ============================================================
    sga_max_size = 70G
    db_cache_size = 60928M
    shared_pool_size = 8G
    large_pool_size= 0
    sga_target= 0
    As per ADDM report db_cache_size should be 64,768M
    ================================================================================================================
    But If my above statement is correct then we cannot increase db_cache_size untill we will increase sga_max_size  so that all parameter get involved in it ?
    Regards,
    Vishal Raina

    The SGA = Fixed size + Variable size + DB Cache Buffers + Online Redo Buffers.  Try querying v$sga and v$stastat to see how your space is allocated.
    Also Oracle has a strong tendency to over-identify space needs, that is, just because one of Oracle's features suggests more space is needed does not mean it really is.  You may be able to relieve some of the demand on the buffer cache by tuning SQL to be more efficient.  Then see if Oracle still wants more space.
    HTH -- Mark D Powell --

  • Sga max size is not changed.

    We use Oracle 11gr2 on win2008R2.
    Our member said that he set sga max size by
    alter system set sga_max_size scope=spfile; max size to 6GB.
    And he restared that OS and DB instance , then
    show parameters sga_max_size was 7.6GB.
    we use  dynamic SGA and automatic memory management.
    Is it natural things ? If so, I would like to explaint about to our customer.
    Why the show parameters sga_max_size was 7.6GB ?

    DUPLICATE POST. please continue with our original post. Please mark this question answered and check the following link:
    sga max size is different

  • SGA resize

    Can we resize SGA after setting SGA_MAX_SIZE to some number.
    what parameters will be considered whule allocating this size.

    I hope you are talking about dynamic SGA feature of 9i. Following link would help you in this regards.
    http://www.dbazine.com/burleson1.html

  • Regarding Bigger SGA in ECC 6.0

    Hi All,
    When installing SAP ECC 6.0/Oracle 10g on AIX 5.3, if i am modifing instance memory then installation giving me following error in catproc.sql running phase.
    ============ ERROR==== ========= ========= ========= =======
    ERROR 2006-12-20 09:44:38
    FCO-00011 The step runCatprocSql with step key
    |NW_Onehost| ind|ind|ind| ind|0|0|NW_ Onehost_System| ind|ind|ind| ind|1|0|NW_ CreateDBandLoad| ind|ind|ind| ind|9|0|NW_ CreateDB| ind|ind|ind| ind|0|0|NW_ OraDBCheck| ind|ind|ind| ind|0|0|NW_ OraDBMain| ind|ind|ind| ind|0|0|NW_ OraDBStd| ind|ind|ind| ind|3|0|NW_ OraDbBuild| ind|ind|ind| ind|5|0|runCatpr ocSql
    was executed with status ERROR .
    ERROR 2006-12-20 09:44:38
    CJS-00084 SQL statement or script
    failed.<br>DIAGNOSI S: Error message: ORA-29809: cannot
    drop an operator with dependent objects
    ============ ========= ========= ========= ========= =======
    if i am not modifing the instance RAM(if using default value) then installation is working fine,
    My Server RAM is 9 GB
    When i am installing SAP/Oracle occpy 50% of total RAM, if i am modifing 6 GB RAM then it is not working and giving me error at catproc.sql phase.
    My intention is that i want to create little bit bigger SGA greather then 1.7 GB.
    I have following doubts, kindly provide guidance.
    (1) Why should i cannot create more then 1.7 GB RAM?
    (2) If i want to Create more then 1.7 GB RAM's SGA
    then what should i have to do during installation?
    (3) Which SAP Parameters i have to change to utilise maximum Memroy.
    Waiting for your kind response.
    Thanks and Regards
    K R Singh

    Hi Karmesh,
    As a role of thumb, Oracle does not support any extended shared memory segments on IBM AIX. Please take a look OSS notes #105429, 123366.
    Additionally, I would like to suggest that you use dynamic SGA that has been mentioned in OSS note #105429.
    What kind of memory, you are talking about, in your last question? Oracle memory tuning or SAP memory tuning?
    Regards,
    Orkun Gedik
    Senior SAP R/3 Basis and Development Consultant
    ASTRON

Maybe you are looking for

  • Ipod 40 GB clicking, wirring and now empty with strange message!

    Hi, Following an update, ipod clicks, wirls, is now empty following restore which didn't solve problem and I get the following message on screen - YOU HAVE INSERTED A DISK CONTAINING NO VOLUMES THAT MAC OSX CAN READ. TO CONTINUE WITH THE DISK INSERTE

  • ORA-00064 after changes processes, open_cursors in Oracle 10g Express

    Hi, I just run the following sql statements: alter system set processes=400 scope=spfile; alter system set open_cursors=5000 scope=spfile; After restart my computer, I can't connect to the oracle and in oradim.log i see the following error: ORA-00064

  • Jerky Ken Burns effect

    I am using iMovie 10 on a mac desktop with all the latest software. In some photos in my 4 min video, the Ken Burns effect is jerky, even after sharing the video to a .mp4 file. The photos are of good quality and resolution (I use iPhoto). Is there a

  • Debian recognizes 3G RAM out of 4G RAM for SL510

    Hi, I installed Debian 5 on my new SL510, but found that Debian recognizes only 3G RAM instead of the installed 4G RAM of the machine. Anyone has any idea on this? Thanks. Here are the specs: Processor   Intel Core 2 Duo processor T6670 (2.20GHz 800M

  • Factory Calender in net weaver

    Dear all ; How to maintain the factory calender in Net weaver ,I have just tried to create one holiday calender for the year 2011-2015 ,system is showing the error :" please maintain a validity periord between 1996-2010". Ites a urgent requirement ,k