DBAsupport.com Forums - Powered by vBulletin
Results 1 to 2 of 2
  1. #1
    Join Date
    Apr 2001
    Oracle internals experts.

    What is this utility for ? It seems there is a 2Gb SGA size limit on NT ? That does not sound correct.

    when you execute it without any params it returns the foll:

    The ORASTACK utility was created to allow users to modify
    the amount of stack that's reserved and/or committed by
    each thread in the Oracle Server. By running ORASTACK on
    certain .exe files, the headers of these executables are patched
    to reflect the settings specified. Typically, changing the
    commit size of each thread's stack is not necessary, since NT
    will commit more stack as needed. However, decreasing each
    thread's reserved size may be necessary since this size comes
    out of the Oracle Server's 2 gigabyte address space. When
    thousands of connections or a large SGA are in use, running
    out of address space in the Oracle server process [although
    still having available physical memory in the machine] is a

  2. #2
    Join Date
    Oct 2000
    Saskatoon, SK, Canada

    c) Altering the way Oracle creates per session memory structures

    The per session memory allocations listed in section 4.a do not come from
    the threads stack, section 4.d describes how they are separately allocated
    from the address space. Keeping parameters such as SORT_AREA_SIZE to a minimum
    is the easiest way to minimize per session memory allocations, the only other
    alternative is to alter the default stack size.

    Oracle supplies the ORASTACK utility to allow customers to modify the default
    stack size of a thread / session when created in the Oracle executable. When
    ORASTACK is run against specific executables it alters the part of the binary
    header that defines the default stack size used by the create thread API. It
    is not necessary to change the default number of pages committed by the thread
    because these will be allocated as required from the stack. By reducing the
    stack of every session created in the Oracle executable, it is possible to
    achieve a larger user population. In a system with a 1000 users reducing the
    stack from 1Mb to 500K would release 500Mb of the address space for other
    allocations or more users.

    Customers should thoroughly test their applications against databases that
    have the stack trimmed to less than 1Mb before using the new stack size in
    their production systems. If the Oracle stack has been trimmed below the size
    required by the Oracle server side code a stack overrun will occur and the
    users session will fail with a ORA-3113, there will be no trace files or
    entries in the CORE.LOG file. Oracle Support Services does not recommend
    that customers trim the stack below 500K, although a number of systems run
    without error on a 300K stack.

    ORASTACK must be run against all processes that can create a thread in the
    Oracle executable, use the following syntax :

    orastack executable_name new_stack_size_in_bytes

    Below are examples of setting the stack to 500K for the main executables :

    orastack oracle.exe 500000
    orastack tnslsnr.exe 500000
    orastack svrmgrl.exe 500000
    orastack sqlplus.exe 500000

    In addition, if there are programs on the server machine which connect to the
    database locally [without SQL*NET], run orastack on those as well.

    For more details, refer


    Life is a journey, not a destination!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Click Here to Expand Forum to Full Width

We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.