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 MEMORY_TARGET (SGA_TARGET) or HugePages – which to choose?

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:

 case $1 in
 /u01/app/oracle/product/11.2.0/db_1/bin/emctl start dbconsole
 /u01/app/oracle/product/11.2.0/db_1/bin/emctl stop dbconsole
 /u01/app/oracle/product/11.2.0/db_1/bin/emctl status dbconsole
 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/' ,
PLACEMENT= 'restricted' , HOSTING_MEMBERS= 'node1' , CHECK_INTERVAL='30' , 
START_DEPENDENICES= 'hard(appsvip)' ,STOP_DEPENDENCIES= 'hard(appsvip)' , RESTART_ATTEMPTS='2' "

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 or or 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 Creating a Oracle 10g Release 2 or 11g Release 1 database on a 11g Release 2 Cluster

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
-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] 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] Returning FALSE
[main] [14:59:31:108] [OCRTree.init:202]  calling OCRTree.init
[main] [14:59:31:108] [Version.isPre10i:189] 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 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