I received email from oracle to change the limit on solaris 10 server to make oracle application work,

unfortunately i have no experience in Solaris, so need assistance

Values will be like below

A00110 This rule verifies that the ulimit settings are adequate Oracle Database 11g R2. The recommended values are not less than: 
ulimit(TIME) = unlimited
ulimit(FILE) = unlimited
ulimit(DATA) = 1048576
Soft ulimit(NOFILES) = 1024
Hard ulimit(NOFILES) = 65536
ulimit(VMEMORY) = 4194304
and not more than 
Soft ulimit(STACK) = 10240
Hard ulimit(STACK) = 32768
StackHardUnlimited Review the ulimit settings: 
Set the hard ulimit(STACK) to a maximum of 32768 
ulimit(VMEMORY) is not defined

Raising the global file descriptor limit is not recommended as this could make 32 bit programs fail unless they have knowledge about how to use file descriptors > 255, see: enable_extended_FILE_stdio(3C).

So it may be better to just call the oracle data base via a shell script that first does the needed ulimit calls to set up the limits and then call the database.

Let me show a typical Solaris limit set that could be retrieved with the Bourne Shell (as in my example). Note that using ksh93 is not helpful here as ksh93 includes information from other resources that are not settable. This is the default on Solaris:

LC_ALL=C ulimit -aSH
-t: time(seconds) unlimited:unlimited
-f: file(blocks) unlimited:unlimited
-d: data(kbytes) unlimited:unlimited
-s: stack(kbytes) 10240:unlimited
-c: coredump(blocks) unlimited:unlimited
-n: nofiles(descriptors) 256:65536
-v: memory(kbytes) unlimited:unlimited

As you see, all default values are higher than the required values except for the open file descriptors. I am not sure whether the stack hard limit should be reduced.

If you like to modify the values, write a shell script and enter this:

ulimit -nS 1024

This raises the soft file descriptor limit to 1024 and results in a new limit:

-n: nofiles(descriptors) 1024:65536

If you need to reduce the hard stack limit, also enter:

ulimit -sH 32768

This reduced the hard stack limit to 32 MB and results in:

-s: stack(kbytes) 10240:32768

After that, enter the command to start the oracle data base to the script and then run this script.

  • 3
    Or set the limits for a dedicated oracle (or oracle app) user. – Jeff Schaller Jul 29 '18 at 15:18
  • That's what i want but i have no idea how to do that on Solaris. Any reference to document will be helpful – OmiPenguin Aug 2 '18 at 8:19
  • I enhanced the answer, is this sufficient? – schily Aug 2 '18 at 9:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.