SUN/Oracle best practices

Title:

SUN/Oracle best practices

Author:

Douglas O’Leary <dkoleary@olearycomputers.com>

Description:

SUN/Oracle best practices

Date created:

08/2001

Date updated:

09/2001

Disclaimer:

Standard: Use the information that follows at your own risk. If you screw up a system, don’t blame it on me…

In an article in the 18th edition of Blueprints Online, Sun/Oracle best practices, Bob Sneed outlines some of the things that he and his cohorts think are the best implementation practices for large Oracle implementations on Sun systems.

The article is very good and should be read. In the interest of brevity, the suggestions are as follows:

  1. Discipline: A disciplined approach to system management makes everything else possible

  2. Virtual Memory Management: set priority_paging=1 in the /etc/system file to prevent excessive paging due to filesystem buffer cache.

  3. Intimate Shared Memory: Enabled by default, ISM improves the performance of shared memory. Most of the downsides to this type of shared memory have been on the E10K under Solaris 2.6. Suggestion is not to disable it.

  4. Interprocess communcation: Suggests really cranking the IPC related kernel parameters - especially shmem_max (set shmsys:shminfo_shmmax=0xffffffff in the /etc/system file) to prevent tuning exercises later on.

  5. Asynchronous I/O: Suggests using AIO. There’s the potential for an ORA-27062 error message indicating that there should have been some I/Os but weren’t probably due to timeouts. Most of these are caused by h/w or lack of sufficient patches.

  6. VxFS Patch level: Suggests nothing older than VxFS 3.3.2, patch #2

  7. VxFS Block size: Suggests setting the filesystem blocksize to 8K (mkfs -F vxfs -o bsize=8192,largfiles ${plex_name}) as that’s what Oracle will typically use and that’s what the Sun memory page size is.

  8. Oracle SQL*net TCP/IP vs IPC: Using TCP/IP comms for sql connections on local systems is inefficient. Should use the IPC. Configure SQL*net appropriately.

  9. Oracle Trace: Apparently, Oracle 7.X came with Oracle tracing on by default. This causes lots of unneeded I/O. Turn it off.

  10. Oracle online redo logs: Probably the only suggestion that I disagree with, the author suggests using Oracle’s online redo log multiplexing feature in addition to any O/S, H/W based mirroring/protection

  11. Filesystem buffering options: No firm suggestions other than taking a look at all options for the given environment. It does talk about the religious wars over double buffering, etc.

  12. Panic dumps: Configure your system to save crash dumps (savecore and dumpadm). Telling your boss that you have to wait for the next system crash because the crash facility wasn’t configured correctly is going to be a difficult conversation.

  13. /tmp and tmpfs: Suggests avoiding potential DoS attacks by moving /tmp to a disk slice instead of using swap.