Skip Headers
Oracle® Database Administrator's Reference
10g Release 2 (10.2) for UNIX-Based Operating Systems

Part Number B15658-03
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Feedback

Go to previous page
Previous
Go to next page
Next
View PDF

C Administering Oracle Database on Linux

This appendix contains information about administering Oracle Database on Linux. It contains the following topics:

C.1 Extended Buffer Cache Support


Note:

This section applies to Linux x86 only.

Oracle Database can allocate and use more than 4 GB of memory for the database buffer cache. This section describes the limitations and requirements of the extended buffer cache feature on Linux x86 systems.


See Also:

Oracle Database Concepts for more information about the extended buffer cache feature

In-Memory File System

To use the extended buffer cache feature, create an in-memory file system on the /dev/shm mount point equal in size or larger than the amount of memory that you intend to use for the database buffer cache. For example, to create an 8 GB file system on the /dev/shm mount point:

  1. Run the following command as the root user:

    # mount -t tmpfs shmfs -o size=8g /dev/shm
    
    
  2. To ensure that the in-memory file system is mounted when the system restarts, add an entry in the /etc/fstab file similar to the following:

    shmfs /dev/shm tmpfs size=8g 0 0
    
    

When Oracle Database starts with the extended buffer cache feature enabled, it creates a file in the /dev/shm directory that corresponds to the Oracle buffer cache.


Note:

If an in-memory file system is already mounted on the /dev/shm mount point, then ensure that its size is equal to or larger than the amount of memory that is used for the database buffer cache.

USE_INDIRECT_DATA_BUFFERS Initialization Parameter

To enable the extended buffer cache feature, set the USE_INDIRECT_DATA_BUFFERS initialization parameter to TRUE in the parameter file. This enables Oracle Database to specify a larger buffer cache.

Dynamic Cache Parameters

If the extended cache feature is enabled, then you must use the DB_BLOCK_BUFFERS parameter to specify the database cache size.

Do not use the following dynamic cache parameters while the extended buffer cache feature is enabled:

Limitations

The following limitations apply to the extended buffer cache feature:


See Also:

Oracle Database SQL Reference for more information about the default block size used by the CREATE TABLESPACE command


Note:

The default VLM window size is 512 MB. This memory size is allocated to the address space of the process. To increase or decrease this value, set the VLM_WINDOW_SIZE environment variable to the new size in bytes. For example, to set the VLM_WINDOW_SIZE to 256 MB, run the following command:
$ export VLM_WINDOW_SIZE=268435456

The value that you specify for the VLM_WINDOW_SIZE environment variable must be a multiple of 64 KB.


Red Hat Enterprise Linux 3 Only: VLM Window Size

To accommodate the VLM window size, you must increase the default maximum size of the per-process locked memory. To increase it, add the following lines to the /etc/security/limits.conf file, where oracle is the user that administers the database:

oracle          soft    memlock        3145728
oracle          hard    memlock        3145728

If you use ssh to log in to the system, then add the following line to the /etc/ssh/sshd_config file to enable the default values to be used when an ssh session is started:

UsePrivilegeSeparation no

C.2 Using hugetlbfs on SUSE Linux Enterprise Server 9

To enable Oracle Database to use large pages (sometimes called huge pages) on SUSE Linux Enterprise Server 9, set the value of the vm.nr_hugepages kernel parameter to specify the number of large pages that you want to reserve. You must specify a sufficient number of large pages to hold the entire SGA for the database instance. To determine the required parameter value, divide the SGA size for the instance by the size of a large page, then round up the result to the nearest integer.

To determine the default large page size, run the following command:

# grep Hugepagesize /proc/meminfo

For example, if /proc/meminfo lists the large page size as 2 MB, and the total SGA size for the instance is 1.6 GB, then set the value for the vm.nr_hugepages kernel parameter to 820 (1.6 GB / 2 MB = 819.2).

C.3 Using hugetlbfs on Red Hat Enterprise Linux AS 3

To use large pages on Red Hat Enterprise Linux AS 3:

  1. Determine the memory required for the large page pool.

    To determine this value, convert the size of the SGA of the instance to megabytes, and round up by 4 MB. For example, if the SGA is 2.7 GB, then the appropriate value is 2768 MB.

  2. Depending on the type of your boot loader, perform one of the following procedures:

    LILO:

    1. Add the hugepages option to the appropriate image section in the /etc/lilo.conf file, specifying the number of pages:

      append = "hugepages=1024"
      
      
    2. Run /sbin/lilo.

    3. Restart the system.

    GRUB:

    1. Add the hugepages option to the kernel command in the /etc/grub.conf file, specifying the number of pages as follows:

      kernel /vmlinuz-2.4.9 root=/dev/hda5 hugepages=1024
      
      
    2. Restart the system.

  3. Add or edit the following entry in the /etc/sysctl.conf file, specifying the large page pool size in megabytes:

    vm.hugetlb_pool = 2768
    
    
  4. Run the following command to set the kernel parameter values:

    # sysctl -p /etc/sysctl.conf
    
    
  5. To verify that this amount of memory was moved successfully into the large page pool, run the following command:

    # cat /proc/meminfo
    
    

    The lines at the end of the display show how many memory pages were moved into the large page pool.

  6. Start Oracle Database.

C.4 Increasing SGA Address Space


Note:

This section applies to Linux x86 only.

Depending on your distribution of Linux, apply the instructions in one of the following sections to increase the SGA address space:

SUSE Linux Enterprise Server 9

To increase the SGA address space on SUSE Linux Enterprise Server 9:

  1. Log in as the oracle user.

  2. In the $ORACLE_HOME/rdbms/lib directory, run the following commands:

    $ genksms -s 0x15000000 > ksms.s
    $ make -f ins_rdbms.mk ksms.o
    $ make -f ins_rdbms.mk ioracle
    
    

    Note:

    If Oracle Database does not start after completing this procedure, or if there are run-time memory errors, then increase the hexadecimal number specified in the first command. For example, if the 0x15000000 value prevents Oracle Database from starting, then specify the value 0x20000000. Lowering this value increases the SGA address space, but could decrease the PGA address space.

  3. Run the following command to determine the process ID of the oracle user's shell process:

    $ echo $$
    
    

    The number returned is the process ID.

  4. Run the following command to switch user to root:

    $ su - root
    
    
  5. Run the following commands to change the mapped base setting for the oracle user's shell process, where pid is the process ID identified in step 3:

    # echo 268435456 > /proc/pid/mapped_base
    
    
  6. Run the exit command to return to the oracle user's shell process, and start Oracle Listener and Oracle Database.


Note:

All Oracle processes must get this modified mapped base value. Starting the listener from the shell that has the modified mapped base enables client connections to connect properly.

Red Hat Enterprise Linux AS 3

To increase the SGA address space on Red Hat Enterprise Linux AS 3 or 4:

  1. Log in as the oracle user.

  2. In the $ORACLE_HOME/rdbms/lib directory, run the following commands:

    $ genksms -s 0x15000000 > ksms.s
    $ make -f ins_rdbms.mk ksms.o
    $ make -f ins_rdbms.mk ioracle
    
    
  3. Start Oracle Database.

C.5 Asynchronous I/O Support


Note:

On Linux, Automatic Storage Management uses asynchronous I/O by default. Asynchronous I/O is not supported for database files stored on NFS file systems.

Oracle Database supports kernel asynchronous I/O. This feature is disabled by default.

By default, the DISK_ASYNCH_IO initialization parameter in the parameter file is set to TRUE to enable asynchronous I/O on raw devices. To enable asynchronous I/O on file system files:

  1. Ensure that all Oracle Database files are located on file systems that support asynchronous I/O.

  2. Set the FILESYSTEMIO_OPTIONS initialization parameter in the parameter file to one of the following values:

    Linux Distribution Recommended Value
    SUSE Linux Enterprise Server 9 SETALL
    Other distributions ASYNCH

C.6 Direct I/O Support

Direct I/O support is available and supported on Red Hat Enterprise Linux 3 and SUSE Linux Enterprise Server 9.


Note:

To use direct I/O on Red Hat Enterprise Linux 3, the driver that you use must support vary I/O.

To enable direct I/O support:

C.7 semtimedop Support

On Red Hat Enterprise Linux 3 and SUSE Linux Enterprise Server 9, Oracle Database supports the semtimedop() system call (semaphores with a time limitation). To enable support for the feature, run the following command as the oracle user in the $ORACLE_HOME/rdbms/lib directory:

$ make -f ins_rdbms.mk smt_on

To disable semtimedop() support, run the following command as the oracle user in the $ORACLE_HOME/rdbms/lib directory:

$ make -f ins_rdbms.mk smt_off

C.8 High-Speed Network Support


Note:

This section applies to Linux x86 only.

Oracle Net supports Sockets Direct protocol (SDP) over the InfiniBand network architecture on Red Hat Enterprise Linux AS 3 for Oracle Database 10g release 1. For this release, SDP support is limited to synchronous I/O only. For information about support for using asynchronous I/O on SDP, refer to the following document:

http://www.oracle.com/technology/products/oraclenet/files/Oracle_Net_High-Speed_Interconnect_Support.doc


Note:

Do not set the Oracle Net NET_ASYNC_IO and SDP_ASYNC_IO configuration parameters, unless otherwise stated in this document.