Oracle® Database Administrator's Reference 10g Release 2 (10.2) for UNIX-Based Operating Systems Part Number B15658-03 |
|
|
View PDF |
This appendix contains information about administering Oracle Database on Linux. It contains the following topics:
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 |
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:
Run the following command as the root
user:
# mount -t tmpfs shmfs -o size=8g /dev/shm
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.
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:
DB_CACHE_SIZE
DB_2K_CACHE_SIZE
DB_4K_CACHE_SIZE
DB_8K_CACHE_SIZE
DB_16K_CACHE_SIZE
The following limitations apply to the extended buffer cache feature:
You cannot create or use tablespaces with nondefault block sizes. You can create tablespaces using only the block size specified by the DB_BLOCK_SIZE
parameter.
You cannot change the size of the buffer cache while the instance is running.
See Also: Oracle Database SQL Reference for more information about the default block size used by theCREATE 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 theVLM_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 |
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
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).
To use large pages on Red Hat Enterprise Linux AS 3:
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.
Depending on the type of your boot loader, perform one of the following procedures:
LILO:
Add the hugepages
option to the appropriate image section in the /etc/lilo.conf
file, specifying the number of pages:
append = "hugepages=1024"
Run /sbin/lilo
.
Restart the system.
GRUB:
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
Restart the system.
Add or edit the following entry in the /etc/sysctl.conf
file, specifying the large page pool size in megabytes:
vm.hugetlb_pool = 2768
Run the following command to set the kernel parameter values:
# sysctl -p /etc/sysctl.conf
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.
Start Oracle Database.
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:
Log in as the oracle
user.
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. |
Run the following command to determine the process ID of the oracle
user's shell process:
$ echo $$
The number returned is the process ID.
Run the following command to switch user to root
:
$ su - root
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
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:
Log in as the oracle
user.
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
Start Oracle Database.
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:
Ensure that all Oracle Database files are located on file systems that support asynchronous I/O.
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 |
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:
Set the FILESYSTEMIO_OPTIONS
initialization parameter to DIRECTIO
.
If you are using the asynchronous I/O option, then set the FILESYSTEMIO_OPTIONS
initialization parameter to SETALL
.
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
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 NetNET_ASYNC_IO and SDP_ASYNC_IO configuration parameters, unless otherwise stated in this document. |