This appendix provides instructions for how to complete configuration tasks manually that Cluster Verification Utility (CVU) and Oracle Universal Installer normally complete during installation. Use this appendix as a guide if you cannot use the fixup script.
This appendix contains the following information:
This section contains the following topics:
Note:
The kernel parameter values in this section are minimum values only. For production database systems, Oracle recommends that you tune these values to optimize the performance of the system. Refer to your operating system documentation for more information about kernel resource management.During installation, you can generate and run the Fixup script to check and set the kernel parameter values required for successful installation of the database. This script updates required kernel packages if necessary to minimum values.
If you cannot use the fixup script, then review the following table to set the values manually. Verify that the kernel parameters shown in the following table are set to values greater than or equal to the minimum value shown.
Note:
On Oracle Solaris 10, you are not required to make changes to the/etc/system
file to implement the System V IPC. Oracle Solaris 10 uses the resource control facility for its implementation.Resource Control | Minimum Value |
---|---|
project.max-sem-ids |
100 |
process.max-sem-nsems |
256 |
project.max-shm-memory |
This value varies according to the RAM size. See Requirements for Shared Memory Resources for minimum values. |
project.max-shm-ids |
100 |
tcp_smallest_anon_port |
9000 |
tcp_largest_anon_port |
65500 |
udp_smallest_anon_port |
9000 |
udp_largest_anon_port |
65500 |
Note:
project.max-shm-memory resource control
= the cumulative sum of all shared memory allocated on each Oracle database instance started under the corresponding project.
The project.max-shm-memory
resource control value assumes that no other application is using the shared memory segment from this project other than the Oracle instances. If applications, other than the Oracle instances are using the shared memory segment, then you must add that shared memory usage to the project.max-shm-memory
resource control value.
Ensure that memory_target
(or max_sga_size
) does not exceed process.max-address-space
and project.max-shm-memory
. For more information, see My Oracle Support Note 1370537.1 at:
The resource control project.max-shm-memory
enables you to set the maximum shared memory for a project.
The following table shows the installation minimum settings for project.max-shm-memory
:
Use the prctl
command to make runtime interrogations of and modifications to the resource controls associated with an active process, task, or project on the system.
To view the current value of project.max-shm-memory
set for a project and system-wide, enter the following command:
# prctl -n project.max-shm-memory -i project default
Where default
is the project ID obtained by running the id -p
command.
For example, to change the setting for project.max-shm-memory
to 6 GB for the project default without a system reboot, enter the following command:
prctl -n project.max-shm-memory -v 6gb -r -i project default
Use the following procedure to display the current value specified for resource controls, and to change them if necessary:
To display the current values of the resource control, enter the following commands:
$ id -p // to verify the project id uid=100(oracle) gid=100(dba) projid=1 (group.dba) $ prctl -n project.max-shm-memory -i project group.dba $ prctl -n project.max-sem-ids -i project group.dba
If you must change any of the current values, then:
To modify the value of max-shm-memory
to 6 GB:
# prctl -n project.max-shm-memory -v 6gb -r -i project group.dba
To modify the value of max-sem-ids
to 256:
# prctl -n project.max-sem-ids -v 256 -r -i project group.dba
Note:
When you use theprctl
command (Resource Control) to change system parameters, you do not have to restart the system for these parameter changes to take effect. However, the changed parameters do not persist after a system restart.Use the following procedure to modify the resource control project settings, so that they persist after a system restart:
By default, Oracle instances are run as the oracle
user of the dba
group. A project with the name group.dba is created to serve as the default project for the oracle user. Run the command id
to verify the default project for the oracle
user:
# su - oracle $ id -p uid=100(oracle) gid=100(dba) projid=100(group.dba) $ exit
To set the maximum shared memory size to 2 GB, run the projmod
command:
# projmod -sK "project.max-shm-memory=(privileged,2G,deny)" group.dba
Alternatively, add the resource control value project.max-shm-memory=(privileged,2147483648,deny)
to the last field of the project entries for the Oracle project.
After these steps are complete, check the values for the /etc/project
file using the following command:
# cat /etc/project
The output should be similar to the following:
system:0:::: user.root:1:::: noproject:2:::: default:3:::: group.staff:10:::: group.dba:100:Oracle default project ::: project.max-shm-memory=(privileged,2147483648,deny)
To verify that the resource control is active, check process ownership, and run the commands id
and prctl
:
# su - oracle $ id -p uid=100(oracle) gid=100(dba) projid=100(group.dba) $ prctl -n project.max-shm-memory -i process $$ process: 5754: -bash NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT project.max-shm-memory privileged 2.00GB - deny
Note:
The value for the maximum shared memory depends on the SGA requierments and should be set to a value greater than the SGA size.For more information, see the Oracle Solaris Tunable Parameters Reference Manual.
Oracle recommends that you set shell limits and system configuration parameters as described in this section.
Note:
The shell limit values in this section are minimum values only. For production database systems, Oracle recommends that you tune these values to optimize the performance of the system. See your operating system documentation for more information about configuring shell limits.The ulimit
settings determine process memory related resource limits. Verify that the shell limits displayed in the following table are set to the values shown:
Shell Limit | Description | Soft Limit (KB) | Hard Limit (KB) |
---|---|---|---|
STACK |
Size of the stack segment of the process | at most 10240 | at most 32768 |
NOFILES |
Open file descriptors | at least 1024 | at least 65536 |
MAXUPRC or MAXPROC |
Maximum user processes | at least 2047 | at least 16384 |
To display the current value specified for these shell limits enter the following commands:
ulimit -s ulimit -n
If you do not use a Fixup script or CVU to set ephemeral ports, then use NDD to ensure that the kernel TCP/IP ephemeral port range is broad enough to provide enough ephemeral ports for the anticipated server workload. Ensure that the lower range is set to at least 9000 or higher, to avoid Well Known ports, and to avoid ports in the Registered Ports range commonly used by Oracle and other server ports. Set the port range high enough to avoid reserved ports for any applications you may intend to use. If the lower value of the range you have is greater than 9000, and the range is large enough for your anticipated workload, then you can ignore OUI warnings regarding the ephemeral port range.
Use the following commands to check your current range for ephemeral ports:
On Oracle Solaris 10, use the following ndd
command:
# /usr/sbin/ndd /dev/tcp tcp_smallest_anon_port tcp_largest_anon_port 32768 65535
On Oracle Solaris 11, use the following ipadm
command:
# ipadm show-prop -p smallest_anon_port,largest_anon_port tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp smallest_anon_port rw 32768 -- 32768 1024-65535 tcp largest_anon_port rw 65500 -- 65535 32768-65535
In the preceding examples, the ephemeral ports are set to the default range (32768-65535).
If necessary for your anticipated workload or number of servers , update the UDP and TCP ephemeral port range to a broader range. For example:
On Oracle Solaris 10
# /usr/sbin/ndd -set /dev/tcp tcp_smallest_anon_port 9000 # /usr/sbin/ndd -set /dev/tcp tcp_largest_anon_port 65500 # /usr/sbin/ndd -set /dev/udp udp_smallest_anon_port 9000 # /usr/sbin/ndd -set /dev/udp udp_largest_anon_port 65500
On Oracle Solaris 11
# ipadm set-prop -p smallest_anon_port=9000 tcp # ipadm set-prop -p largest_anon_port=65500 tcp # ipadm set-prop -p smallest_anon_port=9000 udp # ipadm set-prop -p largest_anon_port=65500 udp
Oracle recommends that you make these settings permanent. Refer to your system administration documentation for information about how to automate this ephemeral port range alteration on system restarts.
See Also:
"Setting TCP Network Protocol Buffer for Direct NFS Client" if you use Direct NFS Client