Find Global Solaris Zones from a Local Zone

If your on a local Solaris zone, don't have root access and want to know what the global zone is and the other local zones hosted on this server, use arp

user@local_zone> arp -a | grep `arp -a | sed -n /\`hostname\`'/{s/[^:]*//p;q;}'`

RAC Assurance Support Team: RAC Starter Kit and Best Practices (Linux)

Found this great note on Metalink outlining installation and Best Practises for installing RAC on Linux.
Contains alot of links to other Metalink Notes, complete install guides - a greate starting point for setting up a RAC environment

Subject: RAC Assurance Support Team: RAC Starter Kit and Best Practices (Linux)
Doc ID: 811306.1 Type: BULLETIN

Currently only covers 10.2 - 11.1 but I would suggest 11.2 is not too far behind.

Oracle 11gR2 Released

Oracle has released 11gR2 to some fanfare and there seems to be some major improvements especially in the way Oracle uses storage.

I thought I'd jot down some key points:

Automatic Storage Management (ASM)

11gR2 seems to be all about ASM.
It has moved into the cluster framework.
They have announce ASM Cluster File System (ACFS) which can host all files including Oracle binaries, Voting Disks, OCR, flat files etc.
You can set up disk pools in ASM of different tier disks so that when a table partition ages you can set a policy for ASM to migrate it to a different tier disk.
There are also more tuning options in ASM
There is a full featured ASMCMD

Oracle 11gR2 Data Guard.
If Oracle detects a corrupt block and the database is in a Data Guard configuration, it will check the same block on the standby. If the same block with the same SCN is not corrupted on the standby then it will automatically repair the corrupt block on the primary.

Oracle 11gR2 OLTP compression.
There is a new compression algorithm with regard to table compression. It doesn't actually compress the data in the traditional sense, instead it stores it in the block differently. It puts each distinct value into the header of the block and then records in the record a small size unique value that references it. Using this, there are dramatic improvements in reads and disk usage especially with data of low cardinality.
It was recommended that you do this for the top 10 tables in the database rather than all. Also db_block_size is a big factor in how well compression works.

Oracle 11gR2 RAC
Oracle seem to be pushing RAC as the standard. So much so that they are incorporating Oracle One Node (CRS services on a single node) as standard with the Oracle 11gR2 database allowing you to transition single node databases to another server in a RAC style graceful fail over.
They kept stressing that everything now is built and tested first for RAC.
There is also a concept of RAC server pools. You can guarantee services a particular number of nodes. If servers become available, lower priority services will make way for those with a higher priority.

New Oracle Installer
Oracle have developed a new Installer replacing the OUI which apparently is more friendly in error handling solution scripts if problems are faced during install.

Global Cache Blocks Lost

Found a great Metalink Doc ID 563566.1 gc lost blocks diagnostics on diagnosing Lost Global Cache Blocks

I won't go into detail here but a definite read if you are administering RAC

OC4J_SECURITY will not start

I'm always a bit nervous when restarting the Oracle Application server. When it works - all is good, but when there is a problem - identifing whats wrong and then resolving seems to take forever.

We have a forms application that runs on 10giAS. Starting up the mid tier gave the following error:

oracle@oraapp> $ORACLE_HOME/opmn/bin/opmnctl startall
opmnctl: starting opmn and all managed processes...
================================================================================
opmn id=oraapp:6201
5 of 8 processes started.

ias-instance id=mid.oraapp
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ias-component/process-type/process-set:
OC4J/home/default_island

Error
--> Process (pid=0)
oid dependency failed
OID
failed to start a managed process because a dependency check failed
Log:
none

--------------------------------------------------------------------------------
ias-component/process-type/process-set:
OC4J/OC4J_BI_Forms/default_island

Error
--> Process (pid=0)
oid dependency failed
OID
failed to start a managed process because a dependency check failed
Log:
none

--------------------------------------------------------------------------------
ias-component/process-type/process-set:
OC4J/OC4J_Portal/default_island

Error
--> Process (pid=0)
oid dependency failed
OID
failed to start a managed process because a dependency check failed
Log:
none
The reason is that the Infrastructure tier was not started and it has a dependencing on OID starting. So I ensure that the database is up and the listener is up and start up the infrastructure layer to receive the following:

oracle@oraapp> $ORACLE_HOME/opmn/bin/opmnctl startall
opmnctl: starting opmn and all managed processes...
================================================================================
opmn id=oraapp:6200
0 of 1 processes started.

ias-instance id=infr.oraapp
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ias-component/process-type/process-set:
OC4J/OC4J_SECURITY/default_island

Error
--> Process (pid=19176)
time out while waiting for a managed process to start
Log:
/u01/oracle/product/10gAS/infr/opmn/logs/OC4J~OC4J_SECURITY~default_island~1


Once again not a lot of info and not much in the logs. I found the solution on Metalink DocId 331969.1

In a nutshell, the infrastructure layer had crashed out, and previous state information was causing problems on restart.

1. Ensure all processes are shut down
2. cd $ORACLE_HOME/opmn/logs
3. mv states states.old
4. mkdir states

Restart the infrastructure layer. It quickly returned a failed state so I issued the start command again and it started up.

Start the mid tier and all is fine.

Server Side Callouts Using FAN

There is a great white paper from Oracle that describes how to use Server Side Callouts using Fast Application Notification in RAC 10gR2. http://www.oracle.com/technology/products/database/clustering/pdf/oowfan.pdf

One nice feature is the ability to put a shell script in the $ORA_CRS_HOME/racg/usrco directory that will be executed every time an event occurs. This is a great way to manipulate your application when something happens to the instance/database/node.

Oracle 11g New Features

I found a good series on Oracle 11g database new features at Oracle Technology Network

All views on this blog are my own. All hints, tips and scripts should be run and tested on your development and test servers before attempting in production.

About this blog

I have been DBA with over 10 years experience in Oracle. This blog aims to note interesting bits and pieces that I come across on a day to day basis.