Saturday Apr 25, 2009

Oracle Database 10gR2 (10.2.0.3 and higher patches) Single Instance (not RAC) is certified with Solaris 10 ZFS on SPARC 64-bit. Please read Solaris ZFS_Best_Practices_Guide. You may need to limit ARC cache.


del.icio.us digg technorati

Tuesday Mar 03, 2009

We have learned how to configure Oracle in ASM in Solaris Container. For this we setup our container with raw device access. While this works good it is not good idea to expose device names into container. Virtualized OS administrator should not know about devices in global container. And being attached to special device is not giving flexibility. In this exercise we will migrate from raw device onto SMV metadevice.[Read More]
del.icio.us digg technorati

Thursday Feb 26, 2009

Configuration example of Oracle ASM in Solaris Container.


In this post I will give you a tip on how to setup Oracle ASM in Solaris Container. The main point of container's configuration is to set proper privileges. Your container should have proc_priocntl (must) and proc_lock_memory (highly recommended) privileges in order to function properly with ASM in it. Use the following as an configuration example when creating container and adjust it for your needs. Please read comments inlined:


create

# container will be named zone1

# make sure that directory /zones exist and have permissions 700

set zonepath=/zones/zone1

set autoboot=true

set limitpriv=default,proc_priocntl,proc_lock_memory

set scheduling-class="FSS"

set max-shm-memory=16G


# use ip-type exclusive at your wish, non-exclusive is also possible

set ip-type=exclusive

add net

set physical=e1000g1

end

add fs

set dir=/usr/local

# make sure /opt/zone1/local exist

set special=/opt/zone1/local

set type=lofs

end

add fs

# mount /distro from global zone into container.

# I have Oracle distribution files there

set dir=/distro

set special=/distro

set type=lofs

add options [ro]

end


# this device will be used for ASM inside container

add device

set match=/dev/rdsk/c4t600A0B8000562790000005D04998C446d0s0

end


# permit to use 16 cpu within container

add dedicated-cpu

set ncpus=16-16

end

verify

commit


Put this confing into zone1.txt and edit this file to adjust your configuration. Then create, install and boot container.

# zonecfg -z zone1 -f zone1.txt

# zoneadm -z zone1 install

# zoneadm -z zone1 boot


When you are done login to newly created container and proceed with installing Oracle and configuring ASM.


Tips:

  1. Since I have dual-FC connected 6140 array I have it configured with Solaris I/O multipathing feature enabled

# stmsboot -D fp -e

  1. I really like to use VNC to access my lab remotely


del.icio.us digg technorati

Monday Feb 16, 2009

When you are creating Oracle Database using templates/examples from the Oracle Database distribution you may fail with ORA-00018: maximum number of sessions exceeded. This can happen on a systems with Niagara chip. It seems that it have too many CPUs (virtual ones). Quick workaround is to turn off most of them at this time:

# psradm -f 16-255

Then create database and turn them back.

# psradm -n 16-255

Your system may have not so many (256) vCPUs. I faced the same problem with 64 vCPU and solution works for me.

The same trick works for Oracle Application Server reporting ORA-00371: not enough shared pool memory. Confirmed by Alexey, such trick is working.

Update: Glenn Fawcett offers another solution, suggesting to set CPU_COUNT on systems that have large number of vcpu's.

del.icio.us digg technorati
In this example you will see how to configure Oracle ASM on Solaris.


The following system will be used in this example: Sun T5220 with attached 6140 array, Solaris 10 (10/08) and Oracle 11.


Briefly, Oracle Database installation steps can be performed as five separate steps:

  1. Install Oracle binaries only

  2. Install Oracle patchset

  3. Configuring ASM

  4. Configuring Listener

  5. Database Creation

[Read More]
del.icio.us digg technorati

Friday Jan 23, 2009

Best Practices for Running Oracle Databases in Solaris Containers” now available on Sun/BluePrints site. This document describes Solaris Containers features for using with Oracle databases. You will learn how to setup Container and assign resources to it (scheduler, CPU and memory capping). It tells you which privilege gives you ability to use Dynamic Intimate Shared Memory (DISM) with Oracle. You may find how to setup Container so it will have it's own IP stack. Mounting UFS and ZFS filesystems, devices in Containers and System V Resource Controls also covered.


Summary

Solaris Containers provide a very flexible and secure method of managing multiple applications on a single Solaris OS instance. Solaris Containers use Solaris Zones software partitioning technology to virtualize the operating system and provide isolated and secure runtime environments for applications. Solaris Resource Manager can be used to control resource usage, such as capping memory and CPU usage,helping to ensure workloads get required system resources. By utilizing Solaris containers, multiple applications, or even multiple instances of the same application, can securely coexist on a single system, providing potential server consolidation savings.

Oracle 9i R2 and 10g R2 databases have been certified to run in a Solaris container. This paper provides step-by-step directions for creating a non-global zone in a Solaris container that is appropriate for running a non-RAC Oracle database. In addition, it describes special considerations that apply when running an Oracle database within a Solaris container.

del.icio.us digg technorati

This blog copyright 2009 by Roman Ivanov