When installing ORACLE12c on solaris10, the following error occurs: Softlimit: maxmumopenfiledescriptors.
-- Configure the maximum number of opened oracle files
The Solaris operating system has a limit on the number of opened files. The db_files parameter settings of the database are limited by the operating system parameters.
An environment check error occurs during installation of 12c in solaris10:
Soft Limit: maximum open file descriptors - This is a prerequisite condition to test whether the soft limit for "maximum open file descriptors" is set correctly.Expected Value : 1024Actual Value : 256
-- View parameter restrictions:
bash-3.2# ulimit -acore file size (blocks, -c) unlimiteddata seg size (kbytes, -d) unlimitedfile size (blocks, -f) unlimitedopen files (-n) 256pipe size (512 bytes, -p) 10stack size (kbytes, -s) 10240cpu time (seconds, -t) unlimitedmax user processes (-u) 28565virtual memory (kbytes, -v) unlimitedbash-3.2#
# The third method is recommended:
(1) modify the/etc/system parameter
On Solaris10, this method is not recommended, but it is still valid. Parameters set in/etc/system are globally valid, that is, all users are affected. After the configuration, the system must be restarted to take effect.
You can add the following two parameters to the/etc/system file and then restart the system.
set rlim_fd_cur=1024set rlim_fd_max=65535
(2) Use the ulimit command to modify the modification (effective immediately. Once the current SHELL exit setting is invalid)
The ulimit command can only modify the settings of the current SHELL and its sub-processes. The setting takes effect immediately. 'once the current SHELL exits, the setting becomes invalid. The-S parameter is used to set the soft limit, and the-H parameter is used to set the hard limit '.
ulimit -S -n 65536ulimit -H -n 65536
-- In the ulimit command, open files displays Soft Limits. You can use the prctl command to display Hard limits, that is, the privileged value.
bash-3.2# prctl -i process $$process: 13110: bashNAME PRIVILEGE VALUE FLAG ACTION RECIPIENTprocess.max-address-spaceprivileged 16.0EB max deny -system 16.0EB max deny -process.max-file-descriptorbasic 256 - deny 13110privileged 65.5K - deny -system 2.15G max deny -process.max-core-sizeprivileged 8.00EB max deny -system 8.00EB max deny -process.max-stack-sizebasic 10.0MB - deny 13110privileged 125TB max deny -system 125TB max deny -..........
(3) Use the project (effective immediately, permanent)
Project is a new feature of Solaris10. You can set the project parameter to a user or a group of users. The setting takes effect immediately.
'However, the result of the root user is only affected by parameters in/etc/system, but not by project user. oracle. the root user does not belong to this project .'
The following is a configuration example:
Bash-3.2 #: // #> projadd user. oracle (create a project user. oracle) bash-3.2 #:/#> id-p oracleuid = 100 (oracle) gid = 1 (other) projid = 100 (user. oracle) (the oracle user belongs to the project user. oracle) bash-3.2 #:/#> projmod-a-K "process. max-file-descriptor = (basic, 65534, deny) "user. oraclebash-3.2 #:/#> projmod-a-K "process. max-file-descriptor = (priv, 65535, deny) "user. oraclebash-3.2 #:/#> grep 'user. oracle '/etc/projectuser. oracle: 100: process. max-file-descriptor = (basic, 65534, deny), (priv, 65535, deny)
Set the values of basic and privilege to 65534 and 65535 respectively. The maximum hard limit of 65535 cannot be exceeded in/etc/system;
bash-3.2# :/ #>tail -2 /etc/systemset rlim_fd_cur=1024set rlim_fd_max=65535bash-3.2# plimit $$13110: bashresource current maximumtime(seconds) unlimited unlimitedfile(blocks) unlimited unlimiteddata(kbytes) unlimited unlimitedstack(kbytes) 10240 unlimitedcoredump(blocks) unlimited unlimitednofiles(descriptors) 256 65536vmemory(kbytes) unlimited unlimitedbash-3.2#
Root user results are only affected by parameters in/etc/system, but not by project user. oracle. root user does not belong to this project.
bash-3.2# su - oracleOracle Corporation SunOS 5.10 Generic Patch January 2005-sh: TEMP=/tmp: is not an identifier$ bashbash-3.2$ plimit $$14704: bashresource current maximumtime(seconds) unlimited unlimitedfile(blocks) unlimited unlimiteddata(kbytes) unlimited unlimitedstack(kbytes) 10240 unlimitedcoredump(blocks) unlimited unlimitednofiles(descriptors) 65534 65535vmemory(kbytes) unlimited unlimitedbash-3.2$
Add other resource restrictions as follows:
-- Modify other parameters as shown above:
noexec_user_stack=1semsys:seminfo_semmni=100semsys:seminfo_semmns=1024semsys:seminfo_semmsl=256semsys:seminfo_semvmx=32767shmsys:shminfo_shmmax=4294967295shmsys:shminfo_shmmni=100rlim_fd_max=65536rlim_fd_cur=4096maxuprc=16384max_nprocs=3000projmod -a -K "project.max-sem-ids=(priv,100,deny)" user.oracleprojmod -a -K "process.max-sem-nsems=(priv,256,deny)" user.oracleprojmod -a -K "project.max-shm-memory=(priv,4294967295,deny)" user.oracleprojmod -a -K "project.max-shm-ids=(priv,100,deny)" user.oracle