Happy Easter: Oracle 11g Release 2 for Windows released

As of April 5th Oracle released Oracle 11g Release 2 for Windows 32-bit and 64-bit. The software can be donwloaded from OTN.

Update: I just noticed neither Clusterware (aka “RAC”) nor ASM are available for 32-bit Windows.

Posted in Oracle in general | Leave a comment

MEMORY_TARGET (SGA_TARGET) or HugePages – which to choose?

Oracle 10g introduced the SGA_TARGET and SGA_MAX_SIZE parameter which dynamically resized many SGA components on demand. With 11g Oracle developed this feature further to include the PGA as well – the feature is now called “Automatic Memory Management” (AMM) which is enabled by setting the parameter MEMORY_TARGET.

Automatic Memory Management makes use of the SHMFS – a pseudo file system just like /proc. Every file created in the SHMFS is created in memory.

Unfortunately using MEMORY_TARGET or MEMORY_MAX_SIZE together with Huge Pages is not supported. You have to choose either Automatic Memory Management or HugePages. In this post i´d like to discuss AMM and Huge Pages.

Continue reading

Posted in Oracle 11g Release 2, Oracle in general | 20 Comments

Integrate EM Console Startup/Shutdown into Clusterware Control

When installing a RAC clusterware is responsible for starting and stopping required resources automatically and in required order. Under normal circumstances every resource is integrated with one exception: EM Control.

So this is a short guide on how to integrate EM Console startup/shutdown into Clusterware resource control.

First of all you need a startup/shutdown script:

#!/bin/sh
 case $1 in
 'start')
 /u01/app/oracle/product/11.2.0/db_1/bin/emctl start dbconsole
 RET=$?
 ;;
 'stop')
 /u01/app/oracle/product/11.2.0/db_1/bin/emctl stop dbconsole
 RET=$?
 ;;
 'check')
 /u01/app/oracle/product/11.2.0/db_1/bin/emctl status dbconsole
 RET=$?
 ;;
 esac
 exit $RET

After creating the script and placing is under /scripts you need to add the resource:

#crsctl add resource crs_dbconsole type cluster_resource -attr " ACTION SCRIPT= '/scripts/crs_dbconsole.sh' ,
PLACEMENT= 'restricted' , HOSTING_MEMBERS= 'node1' , CHECK_INTERVAL='30' , 
START_DEPENDENICES= 'hard(appsvip)' ,STOP_DEPENDENCIES= 'hard(appsvip)' , RESTART_ATTEMPTS='2' "
Posted in Oracle in general | 5 Comments

Creating a Oracle 10g Release 2 or 11g Release 1 database on a 11g Release 2 Cluster

Today i installed a Oracle 11g Release 2 cluster on Solaris SPARC. Installation went smooth – except installation was not able to set up SSH equivalency automatically so i had to configure it myself.

After installing Oracle 11g R2 grid infrastructure i installed a Oracle 10g Release 2 database binary. Went perfectly fine.

After that i tried to create a database but dbca was unable to recognize the RAC cluster; instead dbca wanted to create a single node database.

This issue can be observed when running a 10.2.0.4.0 or 11.1.0.6.0 or 11.1.0.7.0 database with 11g R2 clusterware. The configuration itself IS supported; but it does not work “out-of-the-box”. This post is about how to fix this error.

Continue reading

Posted in Oracle in general | 6 Comments

How to trace DBCA (>= 10g)

Tracing DBCA can be useful. Starting with 10g onwards this can be achieved by:

1. Copy dbca to dbca_debug

cp dbca dbca_debug

2. Edit dbca_debug file, fine the last line and add “-DDEBUG” before the “-classpath” argument. The edited line looks like:

# Run DBCA
$JRE_DIR/bin/java -Dsun.java2d.font.DisableAlgorithmicStyles=true -DORACLE_HOME=$OH
-DDISPLAY=$DISPLAY -DJDBC_PROTOCOL=thin -mx128m -DDEBUG
-classpath $CLASSPATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS

Starting dbca_debug now will produce debug messages on console:

-bash-3.00$ ./dbca_debug
Warning: Cannot convert string "-monotype-arial-regular-r-normal--*-140-*-*-p-*-iso8859-1" to type FontStruct
[main] [14:59:30:465] [CommandLineArguments.process:563]  CommandLineArguments->process: number of arguments = 0
[main] [14:59:31:49] [Host.checkOPS:2055]  Inside checkOPS
[main] [14:59:31:49] [Host.checkOPS:2067]  Trying to check cluster existence
[main] [14:59:31:99] [Library.getInstance:97]  Created instance of Library.
[main] [14:59:31:99] [Version.isPre10i:189]  isPre10i.java: Returning FALSE
[main] [14:59:31:99] [UnixSystem.getCSSConfigType:2080]  configFile=/var/opt/oracle/ocr.loc
[main] [14:59:31:101] [Utils.getPropertyValue:292]  propName=local_only propValue=FALSE
[main] [14:59:31:101] [UnixSystem.getCSSConfigType:2124]  configType=false
[main] [14:59:31:101] [Version.isPre10i:189]  isPre10i.java: Returning FALSE
[main] [14:59:31:108] [OCRTree.init:202]  calling OCRTree.init
[main] [14:59:31:108] [Version.isPre10i:189]  isPre10i.java: Returning FALSE
[main] [14:59:31:113] [OCRTree.<init>:158]  calling OCR.init at level 7
[main] [14:59:31:115] [OCR.init:279]  OCR instance is not present
[main] [14:59:31:117] [OCR.<init>:230]  Called into OCR.java Constructor: level =7
[main] [14:59:31:117] [OCR.loadLibrary:301]  
 Inside constructor of OCR
[main] [14:59:31:117] [OCR.loadLibrary:309]  Going to load the ocr library
[...]
[...]
Posted in Oracle in general | 3 Comments

Creating database clones with ZFS really FAST

While working on my most recent project i tested an interesting ZFS feature: writeable snapshots aka “clones”.

While testing i came to the conclusion that with the help of clones oracle databases (and, of course – other databases as well) can be clones extremely fast with almost no disk space required. So i tested it.

Read on for the results…

Continue reading

Posted in Oracle in general | 3 Comments

Building a custom and cheap storage server yourself – Part III

This is part III of my most recent project named “Building a custom and cheap storage server yourself”. Part I can be found here and Part II here.

Part II left with a current status of a crashing machine during high I/O loads.During the previous weeks i tried to solve the stability problems. And finally: we solved them!

This third part is about our problems, what caused them and how we finally solved them….

Continue reading

Posted in Openstorage | 5 Comments

I am Oracle Certified Trainer now

Just a short note from myself:

Last week i successfully completed all requirements to become an

Oracle Certified Trainer

Preparing for the course took all my time so there was little time left to write in my blog. Beside preparing for the trainer tests i worked a lot on my other project: building a cheap custom storage yourself.

Posted in Oracle in general | 6 Comments

Building a custom and cheap storage server yourself – Part II

It´s been a few months since posting the idea of building a custom made storage system in my blog. During this time we convinced people to give our idea a try, did some minor changes to the box layout and ordered the parts. Finally they arrived at 27th December 2009.

So this is part II of the project called “Building a custom and cheap storage server yourself”. For people dont know what i am talking about: part I can be found here and part III here.

Building the box

We had a budget of approx 12.000 euros for building the prototype of the storage box. We decided to build the prototype with 40 disks from the start and fit an SAN-HBA in it to try COMSTAR (this enables us to export the storage via SAN to other servers). As operating system we choose Open Solaris. Two disks are dedicated to the operating system and are attached directly to the mainboard. The remaining 38 disks are attached to either one Adaptec 52445 or one Adaptec 51645 controller.

Below are some pictures of the components and the final assembled box. Click on the image for a larger version:

Continue reading

Posted in Openstorage | 4 Comments

Oracle 11g R2 for UP-UX (Itanium) and AIX (PPC64) released

When checking OTN today i noticed the release of Oracle 11g Release 2 (11.2.0.1.0) for

  • HP-UX (Itanium) and
  • AIX (PPC64)

I am surprised 11g R2 for Itanium was released prior 11g Release 2 for Windows…..

Posted in Oracle in general | Leave a comment