Title
Configure Very Large Memory (VLM) for Oracle 10g 32-bit

Date
2007-12-20

Summary
Depending on your kernel, the maximum SGA supported is 2.7GB-3.42GB for Oracle Database 10g R1 and 2.2GB-3.3GB for Oracle Database 10g R2. These instructions describe how to configure VLM which uses a shared memory filesystem. The database essentially moves the buffer cache to the shared memory filesystem.

Prerequisites
The Oracle database is functional, and all Oracle prerequisites are satisfied, which includes, but not limited to:
  • Edit /etc/sysctl.conf and add Oracle specific settings
  • Edit /etc/security/limits.conf required by Oracle
  • Edit /etc/pam.d/login and added, as required by Oracle
  • Edit /etc/profile as required by Oracle

    The Oracle software owner is 'oracle' and group 'dba'.

  • Details
    1. Confirm that the following three RPMs required for Oracle are installed:
    rpm -ivh gnome-libs-1.4.1.2.90-34.2.i386.rpm
    rpm -ivh sysstat-5.0.5-11.rhel3.i386.rpm
    rpm -ivh xterm-179-6.EL3.i386.rpm
    

    2. Run the following command (this is where the Oracle will write its memory files to):
    chown oracle:dba /dev/shm
    

    3. Update init.ora to and set the following:
  • SGA_TARGET has to be removed to support VLM (Otherwise you will get ORA-600 when querying V$AQ)
  • STREAMS_POOL_SIZE needs to be set since SGA_TARGET is no longer set (Otherwise the trace file will show ORA-832) (By default STREAMS_POOL_SIZE is set to 10% of the SGA_TARGET)

    Suggested init.ora settings/changes:
    *.db_block_size=8192
    *.db_block_buffers=1048576
    *.shared_pool_size=1073741824
    *.use_indirect_data_buffers=TRUE
    *.streams_pool_size=539492352
    

  • 4. Startup the database.

    Applicable Versions
    Oracle Database 10g on Red Hat AS 3 x86

    References
    http://www.puschitz.com/TuningLinuxForOracle.shtml#UsingVeryLargeMemory
    Ahmed Aboulnaga

    .com .com