Host Name
RDA Rule A00320: /etc/hosts Format (Missing host.domain)
This rule checks that the host name is configured the way that Oracle wants to see it. To fix this, edit /etc/hosts to append the domain name to the existing host name. Also include the tab-separated bare host name or the server may not boot:
123.45.678.90 myhost.domain.local myhost
Kernel Parameters
Rule A00330: Kernel Parameters OK? (NOEXEC_USER_STACKUndef)
There is a lot of confusion about how to set kernel parameters since things have changed with Solaris 10. This particular parameter can be set in /etc/system under the "set" section:
set noexec_user_stack=1
There is an additional problem with Solaris when you are doing a preinstallation check with RDA. Some modules are only loaded into memory the first time they are accessed by an application. Therefore, when you run the RDA check before Oracle is installed they will not show correctly, even if they are set correctly. To force the modules to load at boot time you can add these lines to /etc/system under the "forceload" section:
forceload: sys/shmsys forceload: sys/semsys
Reboot after making these changes.
Anonymous Port Ranges
Rule A00402: anon port range OK? (tcp_smallest_anon_port, tcp_largest_anon_port, udp_smallest_anon_port, udp_largest_anon_port)
These parameters can be set from the command line but they are lost on reboot. To set them so they take effect on each reboot, add the following to /etc/inittab:
# Add these lines before the line with svc.startd tm::sysinit:/usr/sbin/ndd -set /dev/tcp tcp_smallest_anon_port 9000 > /dev/console tm::sysinit:/usr/sbin/ndd -set /dev/tcp tcp_largest_anon_port 65500 > /dev/console tm::sysinit:/usr/sbin/ndd -set /dev/udp udp_smallest_anon_port 9000 > /dev/console tm::sysinit:/usr/sbin/ndd -set /dev/udp udp_largest_anon_port 65500 > /dev/console
Ulimits
Rule A00110: ulimits OK? (StackTooSmall, NoFilesTooSmall)
Stack Size must be set using Solaris Project files like so (as root):
projadd -U oracle -K "process.max-stack-size=(priv,32MB,deny)" user.oracle projadd -U grid -K "process.max-stack-size=(priv,32MB,deny)" user.grid
Check that they were set correctly with this (as root):
#projects -l user.oracle user.oracle projid : 102 comment: "" users : oracle groups : (none) attribs: process.max-stack-size=(priv,33554432,deny) #projects -l user.grid user.grid projid : 103 comment: "" users : oracle groups : (none) attribs: process.max-stack-size=(priv,33554432,deny)
You can also check the values logged in as the oracle or grid user like so:
# ulimit -s 32768
To set ulimit for the number of open files you need to set the "hard" and "soft" limits in /etc/system under the "set" section:
* Soft limit for max-file-descriptors (ulimit -Sn) set rlim_fd_cur=4096 * Hard limit for max-file-descriptors (ulimit -Hn) set rlim_fd_max=65536
A reboot is required for this to take effect.
Maximum User Processes
During Grid Infrastructure installation Oracle may also complain about the hard limit for maximum user processes being too low. You can set this in /etc/system under the "set" section:
* Hard limit for maximum user processes (ulimit -Hu) set maxuprc=16384 * This also must be set to allow the above parameter to be set this high set max_nprocs=30000 A reboot is required for this to take effect.
Shared Memory
The database installation will fail if Oracle is unable to create a shared memory segment large enough for your database instance. To create a shared memory segment large enough you will need to add to (or create) your user.oracle project file like this:
projmod -U oracle -sK "project.max-shm-memory=(priv,25GB,deny)" user.oracle projmod -U oracle -sK "process.max-stack-size=(priv,33554432,deny)" user.oracle
You should log out the Oracle user and log back in for this to take effect.
If you get errors when trying to start the database using srvctl, (which may happen during the installation) this is because the grid infrastructure (crsd.bin) runs as root, which uses the system project. Make the following changes to match the shared memory settings above:
projmod -s -K "project.max-shm-memory=(privileged,25GB,deny)" system projmod -s -K "process.max-sem-nsems=(privileged,2048,deny)" system
Also edit /etc/user_attr and append the following to the entry for root:
;project=system
You should reboot the node so the grid infrastructure restarts and gets the new values.