Wednesday, March 31, 2010

SEVERE:OUI-67073: Apply Session failed: ApplySession::processLocal() failed in system

Problem Description
OPatch apply Patch failed with the following error.
SEVERE:OUI-67073: Apply Session failed: ApplySession::processLocal() failed in system, inventory

From the OPatch logfile I get the following entries,

INFO:Finish backing up system for rollback at Thu Apr 01 12:12:13 EST 2010
INFO:Start the Apply preScript at Thu Apr 01 12:12:13 EST 2010
SEVERE:OUI-67021:SEVERE:OUI-67073: Apply Session failed: ApplySession::processLocal() failed in system, Return Code = 1
INFO:Finish the Apply preScript at Thu Apr 01 12:12:13 EST 2010
INFO:Execution of PRE script failed, with return value = 1

Cause of the Problem
The problem occurred due to oracle bug 6880880. This bug fire if the OPatch version in the $ORACLE_HOME isn't up to date.

Solution of the Problem
Look at the post http://arjudba.blogspot.com/2010/03/severe-oui-67073-applysession-failed.html where the similar error is described.

To solve above bug you have to use the latest released OPatch 10.2, which is available for download from My Oracle Support patch 6880880 by selecting the 10.2.0.0.0 release. After you download that OPatch, install it and then try to apply the patch set again.

Related Documents
UtilSession failed: Prerequisite check "CheckActiveFilesAndExecutables" failed
OPatch failed with error code 74 - CheckActiveFilesAndExecutables failed
How to Download Patchset or Opatch from metalink
List of Patchset number in metalink

SEVERE: OUI-67073: ApplySession failed: Patch ID is null.

Problem Description
While applying Patch 9119284 - 10.2.0.4.3 Patch Set Update it fails with error message "SEVERE: OUI-67073: ApplySession failed: Patch ID is null" like below.
oracle:/nas/sysadm/oracle/psu/HP/9119284>opatch apply
Invoking OPatch 10.2.0.4.3

Oracle Interim Patch Installer version 10.2.0.4.3
Copyright (c) 2007, Oracle Corporation. All rights reserved.


Oracle Home : /oracledba/app/oracle/product/10.2.0/db
Central Inventory : /oracledba/app/oracle/oraInventory
from : /var/opt/oracle/oraInst.loc
OPatch version : 10.2.0.4.3
OUI version : 10.2.0.4.0
OUI location : /oracledba/app/oracle/product/10.2.0/db/oui
Log file location : /oracledba/app/oracle/product/10.2.0/db/cfgtoollogs/opatch/opatch2010-03-31_01-33-24AM.log

ApplySession failed: Patch ID is null.
System intact, OPatch will not attempt to restore the system

OPatch failed with error code 73
Here goes the contents of /oracledba/app/oracle/product/10.2.0/db/cfgtoollogs/opatch/opatch2010-03-31_01-33-24AM.log
SEVERE:OPatch invoked as follows: 'apply '
INFO:
Oracle Home : /oracledba/app/oracle/product/10.2.0/db
Central Inventory : /oracledba/app/oracle/oraInventory
from : /var/opt/oracle/oraInst.loc
OPatch version : 10.2.0.4.3
OUI version : 10.2.0.4.0
OUI location : /oracledba/app/oracle/product/10.2.0/db/oui
Log file location : /oracledba/app/oracle/product/10.2.0/db/cfgtoollogs/opatch/opatch2010-03-31_01-21-26AM.log

INFO:Starting ApplySession at Wed Mar 31 01:21:28 EDT 2010
INFO:Starting Apply Session at Wed Mar 31 01:21:28 EDT 2010
SEVERE:OUI-67073:ApplySession failed: Patch ID is null.
INFO:System intact, OPatch will not attempt to restore the system
INFO:Finishing ApplySession at Wed Mar 31 01:21:29 EDT 2010
INFO:Total time spent waiting for user-input is 0 seconds. Finish at Wed Mar 31 01:21:29 EDT 2010
INFO:Stack Description: java.lang.RuntimeException: Patch ID is null.
INFO:StackTrace: oracle.opatch.PatchObject.getPatchID(PatchObject.java:543)
INFO:StackTrace: oracle.opatch.ApplySession.loadAndInitPatchObject(ApplySession.java:1488)
INFO:StackTrace: oracle.opatch.ApplySession.process(ApplySession.java:5236)
INFO:StackTrace: oracle.opatch.OPatchSession.main(OPatchSession.java:1588)
INFO:StackTrace: oracle.opatch.OPatch.main(OPatch.java:619)

Cause of the Problem
The problem occured because OPatch version in the $ORACLE_HOME isn't up to date. But this Oracle error message seemed bogus to me. According to me at least it show throw message like
" The version of OPatch is too old to support for this patchset ".

Solution of the Problem
In order to apply "Patch 9119284 - 10.2.0.4.3 Patch Set Update" you must use the OPatch 10.2 version 10.2.0.4.7 or later. Oracle recommends to use the latest released OPatch 10.2, which is available for download from My Oracle Support patch 6880880 by selecting the 10.2.0.0.0 release. After you download that OPatch and install it
try to apply the patch set again.

Related Documents
UtilSession failed: Prerequisite check "CheckActiveFilesAndExecutables" failed
OPatch failed with error code 74 - CheckActiveFilesAndExecutables failed
How to Download Patchset or Opatch from metalink
List of Patchset number in metalink

UtilSession failed: Prerequisite check "CheckActiveFilesAndExecutables" failed

Problem Description
When applying a Opatch to a 10.2.0.x installation, applying OPatch failed with the following error:

Running prerequisite checks...
Prerequisite check "CheckActiveFilesAndExecutables" failed.
The details are:

Following executables are active :
/u01/app/oracle/product/10.2.0/lib/libnmemso.so
UtilSession failed: Prerequisite check "CheckActiveFilesAndExecutables" failed.

OPatch failed with error code 73

Cause of the Problem
The problem happened because a process is still using the libnmemso.so library which violates prerequisite check of installing one-off patches or patchsets. To install Opatch or patchsets all processes that use the $ORACLE_HOME being patched MUST be shutdown cleanly, this would include databases, listeners, intelligent agents, database control etc.

Solution of the Problem
A similar type of error and solution is discussed in http://arjudba.blogspot.com/2010/03/opatch-failed-with-error-code-74.html.

To implement the solution, please execute the following steps:

Step 01: Identify the process that is using the library libnmemso.so

$ fuser /u01/app/oracle/product/10.2.0/lib/libnmemso.so

Step 02: Stop that process. libnmemso.so library is used by EM and so often it is necessary to stop the enterprise manager control process.

$ emctl stop

Step 03: After it is stopped apply the patch

Step 04: Restart any processes that were previously stopped.

Related Documents
OPatch failed with error code 74 - CheckActiveFilesAndExecutables failed
How to Download Patchset or Opatch from metalink
List of Patchset number in metalink

OPatch failed with error code 74 - CheckActiveFilesAndExecutables failed

Problem Description
When applying opatch it fails with OPatch failed with error code 74. Further error investigation shows that Prerequisite check "CheckActiveFilesAndExecutables" failed which is displayed below.
oracle:/nas/sysadm/oracle/psu/HP/9119284>opatch apply
Invoking OPatch 10.2.0.4.9

Oracle Interim Patch Installer version 10.2.0.4.9
Copyright (c) 2009, Oracle Corporation. All rights reserved.


Oracle Home : /oracledba/app/oracle/product/10.2.0/db
Central Inventory : /oracledba/app/oracle/oraInventory
from : /var/opt/oracle/oraInst.loc
OPatch version : 10.2.0.4.9
OUI version : 10.2.0.4.0
OUI location : /oracledba/app/oracle/product/10.2.0/db/oui
Log file location : /oracledba/app/oracle/product/10.2.0/db/cfgtoollogs/opatch/opatch2010-03-31_02-17-24AM.log

Patch history file: /oracledba/app/oracle/product/10.2.0/db/cfgtoollogs/opatch/opatch_history.txt

ApplySession applying interim patch '9119284' to OH '/oracledba/app/oracle/product/10.2.0/db'
Interim patch 9119284 is a superset of the patch(es) [ 7609058 7609057 7592346 7375617 7375613 7375611 7197583 715 5252 7155251 7155250 7155249 7155248 ] in the Oracle Home
OPatch will rollback the subset patches and apply the given patch.
Execution of 'sh /nas/sysadm/oracle/psu/HP/9119284/custom/scripts/init -apply 9119284 ':

Return Code = 0

Running prerequisite checks...
Prerequisite check "CheckActiveFilesAndExecutables" failed.
The details are:


Following executables are active :
/oracledba/app/oracle/product/10.2.0/db/bin/oracle
ApplySession failed during prerequisite checks: Prerequisite check "CheckActiveFilesAndExecutables" failed.
System intact, OPatch will not attempt to restore the system
--------------------------------------------------------------------------------
The following warnings have occurred during OPatch execution:
1) OUI-67620:Interim patch 9119284 is a superset of the patch(es) [ 7609058 7609057 7592346 7375617 7375613 737561 1 7197583 7155252 7155251 7155250 7155249 7155248 ] in the Oracle Home
--------------------------------------------------------------------------------

OPatch failed with error code 74

Cause of the Problem
The Prerequisite check failed because one/more oracle files are active, which violates the requirement of opatch apply.

If there is a RAC environment, then before applying patch shutdown all instances and listeners in the RAC environment.

If this is not a RAC environment, shut down all instances and listeners associated with the Oracle home that you are updating.

As you see in the error message
"Following executables are active :
/oracledba/app/oracle/product/10.2.0/db/bin/oracle"
the problem happened because in one instance oracle binary is still active.

There is also another possible reason of Prerequisite check fail due to oracle bug.

Solution of the problem
Ensure that all database instances/services, processes, listeners are shutdown currently those are being patched. You can check whether any process running or not by issuing query,
$ ps -ef | grep oracle
$ ps -ef | grep tns

If any process running you may want to kill that using kill -9 command.
Note that you might also need to exit from sql*plus client tool if you are connected as sysdba.

sql> exit;

If you see there is no oracle database process then possibly you might hit oracle Bug 6006980.
Workaround to solve this bug
1. Copy fuser executable from /bin to /sbin as root user.
2. Re-run the opatch command as "oracle" user.

Related Documents
How to Download Patchset or Opatch from metalink
List of Patchset number in metalink

Monday, March 29, 2010

TNS-01169: The listener has not recognized the password

Problem Description
oracle:/databridge/db DBGEP> $ lsnrctl status LISTENER

LSNRCTL for HPUX: Version 9.2.0.8.0 - Production on 28-MAR-2010 21:19:33

Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ravel.gov)(PORT=1521)))
TNS-01169: The listener has not recognized the password

Cause of the Problem
The TNS-01169 error occurred because security feature is enabled for listener i.e password is set in listener.ora file but lsnrctl command is issued without proper authentication.

Solution of the Problem
After you enable listener password in Oracle 9i, you will now require a password whenever you wish to stop the listener or any other listener actions. However in Oracle database 10g, if you are not logged into the operating system with a privileged account i.e OS user is a member of dba group, you will have to enter a password while doing any operation to listener.

As we see from the message our listener version is 9.2.0.8.0 so follow the following steps to solve the problem.

A) If you remember listener password:
Step 01: Invoke lsnrctl command.
$lsnrctl

Step 02: Set the current_listener to the appropriate listener to which you want to do operation.
LSNRCTL> set current_listener {listener_name_here}

Note that you have to issue "set current_listener {listener_name_here}" if your listener name is not default name that is LISTENER.

Step03: Set password to the password that you previously set for listener.
LSNRCTL> set password {password_here}
or simply you can do it interactively as,

LSNRCTL> set password
Password: {enter_your_password_here}

Step 04: Issue your appropriate command.
LSNRCTL> status
or,
LSNRCTL> stop

B) If you forget listener password:
If password is set in plain text within listener.ora file
If you forget listener password then look for listener.ora and see if password is set in plain text. If it is in plain text then you can retrieve it easily and use that in "set password" command and then do operation as you wanted.

If password is encrypted within listener.ora file
Step 01:
If password is set in encrypted format, check the listener process by issuing,
$ps -ef |grep tns
and note down the process id.

Step 02:
Kill the listener process by,
$kill -9 {process_id}

Step 03:
Remove the line PASSWORDS_{listener_name} from the listener.ora file.

Step 04:
Start the listener
$lsnrctl start {listener_name}
and set the password if you want to set the password again. In order to set the password have a look at, How to set listener password

Related Documents
ORA-12518: TNS:listener could not hand off client connection
The listener supports no services
lsnrctl start fails with TNS-12541, TNS-12560,TNS-00511, Linux Error: 111:
Listener Hangs, Child listener process remains persistence
EM Daemon is not running
ORA-12541: TNS:no listener
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
Login to Dbconsole, Authentication failed!null Returned
How to Enable Listener Logging and Tracing

TNS-01150: The address of the specified listener name is incorrect

Problem Description
While start Oracle listener it fails with error "TNS-01150: The address of the specified listener name is incorrect" like below.
E:\Arju>lsnrctl start LISTENER12

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 29-MAR-2010 10:38:21

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Starting tnslsnr: please wait...

TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
System parameter file is E:\oracle\product\10.2.0\db_2\network\admin\listener.ora
Log messages written to E:\oracle\product\10.2.0\db_2\network\log\listener12.log
TNS-01150: The address of the specified listener name is incorrect

Listener failed to start. See the error message(s) above...
Problem Investigation
If you open the logfile "Log messages written to E:\oracle\product\10.2.0\db_2\network\log\listener12.log" as suggest in the error message above you will see an entry like,
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production on 29-MAR-2010 15:51:16

Copyright (c) 1991, 2005, Oracle. All rights reserved.

System parameter file is E:\oracle\product\10.2.0\db_2\network\admin\listener.ora
Log messages written to E:\oracle\product\10.2.0\db_2\network\log\listener12.log
Trace information written to E:\oracle\product\10.2.0\db_2\network\trace\listener12.trc
Trace level is currently 0

Started with pid=4644
TNS-01150: The address of the specified listener name is incorrect
But unfortunately you no longer will see trace file information in the file "E:\oracle\product\10.2.0\db_2\network\trace\listener12.trc" as written in listener log file unless you have enable listener tracing.

Cause of the Problem
The problem happened because the address on which the listener attempted to listen contains a syntax error or have indention problem.

Solution of the Problem
My listener entry within listener.ora file was like below which cause TNS-01150 error.
LISTENER12 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1524))
)
I changed the indentation as,
LISTENER12 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1524))
)
Now starting the listener is working perfect.
E:\Arju>lsnrctl start LISTENER12

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 29-MAR-2010 18:48:28

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Starting tnslsnr: please wait...

TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
System parameter file is E:\oracle\product\10.2.0\db_2\network\admin\listener.ora
Log messages written to E:\oracle\product\10.2.0\db_2\network\log\listener12.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1524)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER12
Version TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
Start Date 29-MAR-2010 18:48:29
Uptime 0 days 0 hr. 0 min. 1 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File E:\oracle\product\10.2.0\db_2\network\admin\listener.ora
Listener Log File E:\oracle\product\10.2.0\db_2\network\log\listener12.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1524)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "a" has 1 instance(s).
Instance "a", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
Note that, a variant of above problem throws following TNS-01150:, NL-00303: if the indention/syntax is not ok.
E:\Arju>lsnrctl stop LISTENER12

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 29-MAR-2010 18:50:58

Copyright (c) 1991, 2005, Oracle. All rights reserved.

TNS-01150: The address of the specified listener name is incorrect
NL-00303: syntax error in NV string

So as soon as you hit TNS-01150 look for your Oracle version listener.ora syntax and make sure you have tab starting from second lines in listener entry.

Related Documents
ORA-12518: TNS:listener could not hand off client connection
The listener supports no services
lsnrctl start fails with TNS-12541, TNS-12560,TNS-00511, Linux Error: 111:
Listener Hangs, Child listener process remains persistence
EM Daemon is not running
ORA-12541: TNS:no listener
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
Login to Dbconsole, Authentication failed!null Returned
How to Enable Listener Logging and Tracing
How to set oracle listener password

Friday, March 26, 2010

How to set oracle listener password

In general there are three ways by which you can set Oracle database listener password.
A. Editing the listener.ora file directly and setting the password within it.
B. Using lsnrctl utility.
C. Using GUI such as Oracle Net Manager or Enterprise Manager.

A. Editing the listener.ora file directly and setting the password within it:
Through this method password is stored in a plain text format inside listener.ora file without any encryption. Note that, through this way it is possible to set more than one listener password. Following steps demonstrate the procedure.

Step 01: Locate the listener.ora file. Based on the operating system and environmental settings the location varies. The default location is $ORACLE_HOME/network/admin or if you set TNS_ADMIN environmental variable then it overrides default location. Alternatively, if your listener is up you can issue "lsnrctl status" command to check the location of listener.ora file.
E:\>lsnrctl status

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 27-MAR-2010 09:40:38

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
Start Date 27-MAR-2010 09:36:06
Uptime 0 days 0 hr. 4 min. 32 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File E:\oracle\product\10.2.0\db_2\network\admin\listener.ora
Listener Log File E:\oracle\product\10.2.0\db_2\network\log\listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "a" has 1 instance(s).
Instance "a", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

Step 02: After you locate listener.ora file check its contents.
For example, following is my listener.ora file contents.
# listener.ora Network Configuration File: E:\oracle\product\10.2.0\db_2\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC=
(GLOBAL_DBNAME=a)
(ORACLE_HOME=E:\oracle\product\10.2.0\db_1)
(SID_NAME=a)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)

Step 03: Add a password line corresponding to the listener.
From above contents you see my listener has the default name LISTENER from lines,
LISTENER =
(DESCRIPTION_LIST =
It is the line starting LISTENER= . Within listener.ora file we need to add a line to this file with the following format:
   PASSWORDS_{LISTENER_NAME}=listener_password
Here the listener is called LISTENER then we need a add following lines within the listener.ora file.
 PASSWORDS_LISTENER=listener_password
You can also set multiple passwords as follows:
   PASSWORDS_LISTENER=(password1,password2)
For example I want to have my "LISTENER" listener password as "arjudba" so my listener.ora file will look like,
# listener.ora Network Configuration File: E:\oracle\product\10.2.0\db_2\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC=
(GLOBAL_DBNAME=a)
(ORACLE_HOME=E:\oracle\product\10.2.0\db_1)
(SID_NAME=a)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
PASSWORDS_LISTENER=arjudba
Note that, After you set password in 9i, you will now require a password whenever you wish to stop the listener or any other "destructive" listener actions. However in Oracle database 10g, if you are not logged into the operating system with a privileged account, you will have to enter a password while doing any destructive operation to listener. Like,
$ lsnrctl
LSNRCTL> set password

B. Using lsnrctl utility.
With the lsnrctl utility you can secure your password by making password encrypted. Setting password through lsnrctl utility is a recommended option. Step by step it is demonstrated.

Step 01: Invoke lsnrctl utility.
E:\>lsnrctl

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 27-MAR-2010 11:24:26

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Welcome to LSNRCTL, type "help" for information.
Step 02: Set the current listener to which you want to set password.
LSNRCTL> set current_listener listener
Current Listener is listener
Step 03: Invoke change_password command:
After invoking change_password it will prompt you for old password, if you have any old password set then type that. But if you don't have any old password then simply press Enter.
Then it will prompt you for the new password which you want to set and then press enter.
Then it will again prompt you to reenter the new password for confirmation and then press enter.
After this password will be changes for running instance or session of the listener.
LSNRCTL> change_password
Old password:
New password:
Reenter new password:
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
Password changed for listener
The command completed successfully
Step 04: Set up password for the all future instance or session:
Issue "set password" and "save_config" command if want it applicable for all the future instance or session. Issuing "save_config" command you save the configuration file after setting the password otherwise it will be lost.

LSNRCTL> set password
Password:
The command completed successfully
LSNRCTL> save_config
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
Saved LISTENER configuration parameters.
Listener Parameter File E:\oracle\product\10.2.0\db_2\network\admin\listener.ora
Old Parameter File E:\oracle\product\10.2.0\db_2\network\admin\listener.bak
The command completed successfully

After you set password using lsnrctl utility if you open listener.ora file you will see a new entry like below which is an encrypt one.
#----ADDED BY TNSLSNR 27-MAR-2010 11:37:15---
PASSWORDS_LISTENER = 44A81038BB249678
#--------------------------------------------

C. Using GUI such as Oracle Net Manager or Enterprise Manager.
Invoke netca or using Eneterprise Manager you can add listener password as directed by graphical window.

Related Documents
ORA-12518: TNS:listener could not hand off client connection
The listener supports no services
lsnrctl start fails with TNS-12541, TNS-12560,TNS-00511, Linux Error: 111:
Listener Hangs, Child listener process remains persistence
EM Daemon is not running
ORA-12541: TNS:no listener
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
Login to Dbconsole, Authentication failed!null Returned
How to Enable Listener Logging and Tracing

Thursday, March 25, 2010

NTP and csstd time synchronization option to install Oracle Clusterware 11gR2

In Oracle 11gR2 and later version, while installing Oracle clusterware it is required time synchronization across all nodes within a cluster. We can use two different options to setup time synchronization.

1)Operating system configured Network Time Protocol (NTP).
2)Oracle Cluster Time Synchronization Service (ctssd).

If you don't have NTP services started then Oracle Cluster Time Synchronization Service is used. However if you want to use ctssd (Cluster Time Synchronization Service Daemon) service in the cluster, then deconfigure and deinstall the Network Time Protocol (NTP).

In order to deactivate NTP service, you need to follow the following procedures.

i)Stop the existing ntpd service.
# /sbin/service ntpd stop

ii)Disable the service from the initialization sequences so that it does not start during startup.
# chkconfig ntpd off

iii)Remove the ntp.conf file.
# rm /etc/ntp.conf
or,
# mv /etc/ntp.conf to /etc/ntp.conf.bak

Also remove the file /var/run/ntpd.pid which maintains the pid for the NTP daemon.
# rm /var/run/ntpd.pid

When the installer finds that the NTP protocol service is inactive, the Cluster Time Synchronization Service is installed in active mode and synchronizes the time across the nodes.

IF NTP is active on the server, then the Cluster Time Synchronization Service is started in observer mode, and no active time synchronization is performed by Oracle Clusterware within the cluster.

To check whether ctssd is active or not as grid installation owner just issue,
$ crsctl check ctss

If you want to continue using NTP time synchronization service, then you need to modify the NTP initialization file to set the -x flag, which prevents time from being adjusted backward. After you modify it restart ntpd. Following steps demonstrate the procedure on Oracle Enterprise Linux, Red Hat Linux.

i)Edit /etc/sysconfig/ntpd file and add -x flag.
# vi /etc/sysconfig/ntpd
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
SYNC_HWCLOCK=no

ii)Restart NTP service.
# /sbin/service ntp restart

On SUSE systems, modify the configuration file /etc/sysconfig/ntp with the following settings.
NTPD_OPTIONS="-x -u ntp"

Related Documents
http://arjudba.blogspot.com/2010/03/cluvfy-fails-with-prvf-5436-prvf-9652.html
http://arjudba.blogspot.com/2010/03/in-11gr2-grid-rootsh-fails-with-crs.html
http://arjudba.blogspot.com/2010/03/what-to-do-after-failure-of-oracle.html
http://arjudba.blogspot.com/2009/12/enable-archive-log-mode-for-rac.html
http://arjudba.blogspot.com/2008/09/list-of-parameters-that-must-have.html
http://arjudba.blogspot.com/2008/08/oracle-rac-software-components.html
http://arjudba.blogspot.com/2008/08/oracle-clusterware-processes-on-unix.html
http://arjudba.blogspot.com/2008/08/configure-raw-devices-for-asm-in-rac.html
http://arjudba.blogspot.com/2008/08/crs-stack-fails-to-start-after-reboot.html
http://arjudba.blogspot.com/2008/08/configure-network-for-oracle-rac.html
http://arjudba.blogspot.com/2008/08/pre-installation-rac-environement-setup.html
http://arjudba.blogspot.com/2008/08/configure-server-to-install-oracle-rac.html

Monday, March 22, 2010

cluvfy fails with PRVF-5436 PRVF-9652 Cluster Time Synchronization Services check failed

Problem Description
"cluvfy comp clocksync" check fails with PRVF-5436 and PRVF-9652 error like below.

$GRID_HOME/bin/cluvfy comp clocksync
..
..
..
Checking daemon liveness...
Liveness check passed for "xntpd"
PRVF-5436 : The NTP daemon running on one or more nodes lacks the slewing option "slewalways yes"
Clock synchronization check using Network Time Protocol(NTP) failed
PRVF-9652 : Cluster Time Synchronization Services check failed

From $ORACLE_BASE/oraInventory/logs/installActions{$TIMESTAMP}.log installation logs it shows similar entries like following:

..
INFO: Checking daemon liveness...
INFO: Liveness check passed for "xntpd"
INFO: PRVF-5436 : The NTP daemon running on one or more nodes lacks the slewing option "slewalways yes"
INFO: Clock synchronization check using Network Time Protocol(NTP) failed
INFO: PRVF-9652 : Cluster Time Synchronization Services check failed
INFO: Post-check for cluster services setup was unsuccessful on all the nodes.

Cause of the Problem
The problem happened because the time service (such as NTP) is not running or doesn't have slew option set.

Solution of the Problem
The problem happened because time service NTP is not running or doesn't have slew option set.
So, ensure that NTP service is up and running.
Based on the operating system solutions are given below.

1) Linux:
To verify service as root user issue,
# /sbin/service ntpd status
ntpd (pid 4423) is running...

Check process is running or not by.
# ps -ef|grep ntp
ntp 4209 1 0 Mar10 ? 00:00:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -x

# grep OPTIONS /etc/sysconfig/ntpd
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -x"

If NTP service is not started then to start the service issue,
To start the service issue,

# /sbin/service ntpd start

2) Solaris:
To verify the service issue,

# /usr/bin/svcs ntp
STATE STIME FMRI
online 3:29:11 svc:/network/ntp:default

# ps -ef|grep ntp
root 21223 1 0 Mar 10 ? 0:21 /usr/lib/inet/xntpd

# grep slewalways /etc/inet/ntp.conf
slewalways yes

To start the NTP service issue,

# /usr/sbin/svcadm enable ntp

3) HP-UX:

To verify the service issue,

# ps -ef|grep ntp
root 6022 1 0 14:23:42 ? 0:01 /usr/sbin/xntpd -x

# grep XNTPD_ARGS /etc/rc.config.d/netdaemons
export XNTPD_ARGS="-x"

To start the service issue,
# /sbin/init.d/xntpd start

4) AIX:

To verify the service issue,

# /usr/bin/lssrc -ls xntpd
xntpd tcpip 368754 active

# ps -ef|grep ntp
root 786614 151686 0 08:02:32 - 0:00 /usr/sbin/xntpd -x

# grep xntpd /etc/rc.tcpip
start /usr/sbin/xntpd "$src_running" -a "-x"

To start the service issue,

# /usr/bin/startsrc -s xntpd -a "-x"
Related Documents
http://arjudba.blogspot.com/2010/03/cluvfy-fails-with-prvf-5436-prvf-9652.html
http://arjudba.blogspot.com/2010/03/in-11gr2-grid-rootsh-fails-with-crs.html
http://arjudba.blogspot.com/2010/03/what-to-do-after-failure-of-oracle.html
http://arjudba.blogspot.com/2009/12/enable-archive-log-mode-for-rac.html
http://arjudba.blogspot.com/2008/09/list-of-parameters-that-must-have.html
http://arjudba.blogspot.com/2008/08/oracle-rac-software-components.html
http://arjudba.blogspot.com/2008/08/oracle-clusterware-processes-on-unix.html
http://arjudba.blogspot.com/2008/08/configure-raw-devices-for-asm-in-rac.html
http://arjudba.blogspot.com/2008/08/crs-stack-fails-to-start-after-reboot.html
http://arjudba.blogspot.com/2008/08/configure-network-for-oracle-rac.html
http://arjudba.blogspot.com/2008/08/pre-installation-rac-environement-setup.html
http://arjudba.blogspot.com/2008/08/configure-server-to-install-oracle-rac.html

Sunday, March 21, 2010

In 11gR2 Grid root.sh fails with CRS-2674: Start of 'ora.cssd' failed

Problem Description
In Linux x86-64 system while installing Oracle Grid Infrastructure RAC cluster running $GRID_HOME/root.sh succeeds on the 1st node but fails on the 2nd node while attempting to start 'ora.cssd'.

Following is the log file entry from the cssd log.

CRS-2674: Start of 'ora.cssd' on 'rac2' failed
CRS-2679: Attempting to clean 'ora.cssd' on 'rac2'
CRS-2681: Clean of 'ora.cssd' on 'rac2' succeeded
CRS-2673: Attempting to stop 'ora.diskmon' on 'rac2'
CRS-2677: Stop of 'ora.diskmon' on 'rac2' succeeded
CRS-4000: Command Start failed, or completed with errors.
CRS-2672: Attempting to start 'ora.cssd' on 'rac2'
CRS-2672: Attempting to start 'ora.diskmon' on 'rac2'
CRS-2674: Start of 'ora.diskmon' on 'rac2' failed
CRS-2679: Attempting to clean 'ora.diskmon' on 'rac2'
CRS-5016: Process "/u01/oracle/11.2.0/grid/bin/diskmon" spawned by agent "/u01/oracle/11.2.0/grid/bin/orarootagent.bin" for action "clean" failed: details at "(:CLSN00010:)" in "/u01/oracle/11.2.0/grid/log/rac2/agent/ohasd/orarootagent_root/orarootagent_root.log"
CRS-2681: Clean of 'ora.diskmon' on 'rac2' succeeded
CRS-2674: Start of 'ora.cssd' on 'rac2' failed
CRS-2679: Attempting to clean 'ora.cssd' on 'rac2'
CRS-2681: Clean of 'ora.cssd' on 'rac2' succeeded
CRS-4000: Command Start failed, or completed with errors.
Command return code of 1 (256) from command: /u01/oracle/11.2.0/grid/bin/crsctl start resource ora.ctssd -init -env USR_ORA_ENV=CTSS_REBOOT=TRUE
Start of resource "ora.ctssd -init -env USR_ORA_ENV=CTSS_REBOOT=TRUE" failed
Failed to start CTSS
Failed to start Oracle Clusterware stack

Cause of the Problem
The startup of the CSS daemon on RAC node 2 failed because either it could not establish a network connection to the first node or it could not synchronize time with the first node. You can be sure by reviewing the messages seen in the CSS daemon log ($GRID_HOME/log/{nodename}/cssd/ocssd.log) on the 2nd node. If your 2nd node hostname is rac2 then review at location $GRID_HOME/log/rac2/cssd/ocssd.log.

From is the part of ocssd.log entry.

2010-03-13 10:59:36.581: [ CSSD][1246480704]clssnmLocalJoinEvent: Node rac1, number 1, is in an existing cluster with disk state 3
2010-03-13 10:59:36.582: [ CSSD][1246480704]clssnmLocalJoinEvent: takeover aborted due to cluster member node found on disk
2010-03-13 10:59:36.685: [ CSSD][1162561856]clssnmvDHBValidateNCopy: node 1, rac1, has a disk HB, but no network HB, DHB has rcfg 157026738, wrtcnt, 1507, LATS 66284084, lastSeqNo 1507, uniqueness 1261524838, timestamp 1261526376/66279084
2010-03-13 10:59:37.110: [ CSSD][1215011136]clssgmWaitOnEventValue: after CmInfo State val 3, eval 1 waited 0
2010-03-13 10:59:37.513: [ CSSD][1235990848]clssnmSendingThread: sending join msg to all nodes
2010-03-13 10:59:37.513: [ CSSD][1235990848]clssnmSendingThread: sent 5 join msgs to all nodes

While the connectivity on the cluster interconnect appeared to be functioning (nodes can be pinged via their private nodenames/IP addresses), a firewall blocked traffic on certain ports thus impacting the communication between the CRS daemon processes. It may also be reason that due to time synchronization problem running script root.sh on 2nd node fails.

Solution of the Problem
1) Disable Firewall:
Disable firewalls in all nodes. In Linux log in as root and run the following commands,
$ su
# service iptables stop
# service ip6tables stop


To disable firewall permanently issue,
# chkconfig iptables off
# chkconfig ip6tables off


If you want to enable firewall then exclude all traffic on the private network from the firewall configuration.

2) Synchronize Time between the nodes:
Setup NTP server to ensure that you have time synchronized between all nodes. In the post How to setup NTP Server it is discussed how to setup NTP server. So after synchronize timing deconfigure and reconfigure your grid infrastructure installation by following http://arjudba.blogspot.com/2010/03/what-to-do-after-failure-of-oracle.html.
Related Documents
http://arjudba.blogspot.com/2010/03/cluvfy-fails-with-prvf-5436-prvf-9652.html
http://arjudba.blogspot.com/2010/03/in-11gr2-grid-rootsh-fails-with-crs.html
http://arjudba.blogspot.com/2010/03/what-to-do-after-failure-of-oracle.html
http://arjudba.blogspot.com/2009/12/enable-archive-log-mode-for-rac.html
http://arjudba.blogspot.com/2008/09/list-of-parameters-that-must-have.html
http://arjudba.blogspot.com/2008/08/oracle-rac-software-components.html
http://arjudba.blogspot.com/2008/08/oracle-clusterware-processes-on-unix.html
http://arjudba.blogspot.com/2008/08/configure-raw-devices-for-asm-in-rac.html
http://arjudba.blogspot.com/2008/08/crs-stack-fails-to-start-after-reboot.html
http://arjudba.blogspot.com/2008/08/configure-network-for-oracle-rac.html
http://arjudba.blogspot.com/2008/08/pre-installation-rac-environement-setup.html
http://arjudba.blogspot.com/2008/08/configure-server-to-install-oracle-rac.html

Saturday, March 20, 2010

What to do after failure of Oracle 11gR2 Grid Infrastructure (CRS) Installation

In this post I will discuss about how to proceed from failure of running root.sh script as well as failure before running of root.sh in Oracle 11gR2 Grid Infrastructure (CRS) Installation. Note that, the steps described in this post is only applicable for Oracle 11gR2 Grid Infrastructure installation.

I have discussed the things into four individual sections.
1) Deconfigure and Reconfigure of 11gR2 Grid Infrastructure installation in Standalone Server
2) Deinstall of 11gR2 Grid Infrastructure installation in Standalone Server
3) Deconfigure and Reconfigure of Grid Infrastructure Cluster
4) Deinstall of Grid Infrastructure Cluster

1) Deconfigure and Reconfigure of 11gR2 Grid Infrastructure installation in Standalone Server
To deconfigure,

i) Login as root and execute "$GRID_HOME/crs/install/roothas.pl -delete -force -verbose"
$ su
#$GRID_HOME/crs/install/roothas.pl -delete -force -verbose

ii) If it fails, please disable CRS, then reboot the node.

As root, execute "$GRID_HOME/bin/crsctl disable "
$su
# crsctl disable crs
# reboot
Once the node comes backup, execute above deconfigure command again.
# $GRID_HOME/crs/install/roothas.pl -delete -force -verbose

To reconfigure,
As root, execute "$GRID_HOME/root.sh"
$ su
# $GRID_HOME/root.sh

2) Deinstall of 11gR2 Grid Infrastructure installation in Standalone Server
As Grid user, execute $GRID_HOME/deinstall/deinstall
$ $GRID_HOME/deinstall/deinstall

3) Deconfigure and Reconfigure of Grid Infrastructure Cluster
Identify of root cause of failure of root.sh by reviewing the log files. Examine the logfiles from the location $GRID_HOME/cfgtoollogs/crsconfig and $GRID_HOME/log. Once cause is identified, follow the following steps one by one.

Step 01: As root, run "$GRID_HOME/crs/install/rootcrs.pl -verbose -deconfig -force" on all nodes, except the last one. If you have two nodes cluster then only run at first node.

$su
# $GRID_HOME/crs/install/rootcrs.pl -verbose -deconfig -force

Step 02: As root, run "$GRID_HOME/crs/install/rootcrs.pl -verbose -deconfig -force -lastnode" on last node. This command will zero out OCR and VD disk also. If you have two nodes cluster then run on second node.

# $GRID_HOME/crs/install/rootcrs.pl -verbose -deconfig -force -lastnode

Step 03: Fix the problem by identified cause in the log files.

Step 04: As root, run $GRID_HOME/root.sh on first node
# $GRID_HOME/root.sh

After completion run on all other nodes except last one. At last run at last node as root user.


4) Deinstall of Grid Infrastructure Cluster

Case 1: If "root.sh" is never run on the cluster, then as grid user, execute
$ $GRID_HOME/deinstall/deinstall

Case 2: If "root.sh" already ran, then follow the step below - please keep in mind that you will need wait till each step finishes successfully before move to next one.

Step 01: As root, run "$GRID_HOME/crs/install/rootcrs.pl -verbose -deconfig -force" on all nodes, except the last one.
$ su
# $GRID_HOME/crs/install/rootcrs.pl -verbose -deconfig -force

Step 02: As root, run "$GRID_HOME/crs/install/rootcrs.pl -verbose -deconfig -force -lastnode" on last node. This command will zero out OCR and VD disk also.
# $GRID_HOME/crs/install/rootcrs.pl -verbose -deconfig -force -lastnode

Step 03: As grid user, run $GRID_HOME/deinstall/deinstall
$ $GRID_HOME/deinstall/deinstall
Related Documents
http://arjudba.blogspot.com/2010/03/cluvfy-fails-with-prvf-5436-prvf-9652.html
http://arjudba.blogspot.com/2010/03/in-11gr2-grid-rootsh-fails-with-crs.html
http://arjudba.blogspot.com/2010/03/what-to-do-after-failure-of-oracle.html
http://arjudba.blogspot.com/2009/12/enable-archive-log-mode-for-rac.html
http://arjudba.blogspot.com/2008/09/list-of-parameters-that-must-have.html
http://arjudba.blogspot.com/2008/08/oracle-rac-software-components.html
http://arjudba.blogspot.com/2008/08/oracle-clusterware-processes-on-unix.html
http://arjudba.blogspot.com/2008/08/configure-raw-devices-for-asm-in-rac.html
http://arjudba.blogspot.com/2008/08/crs-stack-fails-to-start-after-reboot.html
http://arjudba.blogspot.com/2008/08/configure-network-for-oracle-rac.html
http://arjudba.blogspot.com/2008/08/pre-installation-rac-environement-setup.html
http://arjudba.blogspot.com/2008/08/configure-server-to-install-oracle-rac.html

Saturday, March 13, 2010

How to auto redirect a page to another web page

Auto redirection is a technique to direct a visitor to another webpage after the visitor lands to a web page. The another webpage can be in the same website or to a different website. It can be within same page.

There are several methods by which we can achive auto-redirection.

1) The "Meta Refresh Tag" method:
It is believed that redirection using Meta Refresh Tag keeps the search engine happy as long as there is a reasonable delay between landing page and the page to which it is being redirected. In general at least 5 seconds is recommended. The Meta Refresh Code must be within <head> section.

The syntax for the "refresh" meta command is
<meta http-equiv="refresh" content="N; URL=other-web-address">

The "content" parameter contains two parts, seperated by a semi-colon.
The first part is the delay measured in seconds, before the redirection occurs.
And the second part is the URL to which it will redirect. Just like any hyperlink. It can be a relative URL or an absolute URL.
Note that for search engine optimization a delay of 0 (zero) seconds is not recommended.

Suppose if I want to redirect this page to http://arjudba.blogspot.com after 5 seconds then my meta tag refresh method will look like,
<meta http-equiv="refresh" content="5; URL=http://arjudba.blogspot.com">
2) The "Javascript" method:
A small JavaScript code can be used to use redirect to another page. This Javascript code can be placed to anywhere in the page but it is better to use it in head section so that it runs as soon as the page begins to load. A simple example is below.
<html>
<head>
<script language="javascript" type="text/javascript">
window.setTimeout('window.location="http://arjudba.blogspot.com/";',5000);
</script>
</head>
<body>
<a href="http://arjudba.blogspot.com">Arju</a>
</body>
</html>
With above Javascript After 5000 milliseconds (5 seconds) the page will be automatically redirected to http://arjudba.blogspot.com in the same window if JavaScript is enabled in the browser.

If we want new site will be displayed in a new window then JavaScript code will be,
<html>
<head>
<script language="javascript" type="text/javascript">
window.setTimeout('window.open("http://arjudba.blogspot.com/")',5000);
</script>
</head>
<body>
<a href="http://arjudba.blogspot.com">Arju</a>
</body>
</html>
We can also write JavaScript code and then may want to load it from a HTML section. For example following JavaScript code and then onLoad from <body> section will do the work.
<HTML>
<script>
function autoChange()
{
var timeID = setTimeout("location.href= 'http://arjudba.blogspot.com'", 5000)
}
</script>
<BODY onLoad="autoChange()">
Arju
</body>
</HTML>
Related Documents
http://arjudba.blogspot.com/2009/12/scrolling-text-effect-html-code-with.html
http://arjudba.blogspot.com/2009/12/open-link-in-new-window-or-in-new-tab.html
http://arjudba.blogspot.com/2009/09/html-special-character-reference.html
http://arjudba.blogspot.com/2009/07/css-margin-with-example.html

Thursday, March 4, 2010

How to Check Your IP Address

Well, you are using Internet and wish to know your Public IP Address that currently used for you Internet connection. This is specially if you are using dial up connection or using a proxy server to connection to the Internet then ipconfig on windows or ifconfig on linux machine does not show your Public IP Address rather they show your Private IP address like below.
E:\>ipconfig

Windows IP Configuration


Ethernet adapter Local Area Connection:

Media State . . . . . . . . . . . : Media disconnected

Ethernet adapter Wireless Network Connection:

Media State . . . . . . . . . . . : Media disconnected

PPP adapter GP-INTERNET:

Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 10.130.20.120
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : 10.130.20.120

If you are not aware about Private and Public IP address then a little discussion about IP Address will help you to understand the thins.

Internet Protocol (IP) Address is a numerical label that is assigned to a device in order to uniquely identify in a network/Internet. In the Internet Protocol Version 4 (IPV4) the designers of TCP/IP defined an IP address as a 32-bit number which limits the address space to 4,294,967,296 (2 to the power 32) possible unique addresses. Out of 4,294,967,296 IP Addresses some addresses are reserved such as private networks (~18 million addresses) or multicast addresses (~270 million addresses).

The addresses which are reserved for private networks are called Private IP Address and rest addresses are called Public IP Address. Following is the range of all IP Address exists in IPV4.

Class First octet in binary Range of first octet Network ID Host ID Number of networks Number of addresses
A 0XXXXXXX 0 - 127 a b.c.d 27-2 = 126 224-2 = 16,777,214
B 10XXXXXX 128 - 191 a.b c.d 214 = 16,384 216-2 = 65,534
C 110XXXXX 192 - 223 a.b.c d 221-1 = 2,097,151 28-2 = 254


From the above list following is the range of Private IP Address,

Class Start End No. of addresses
24-bit Block (/8 prefix, 1 x A) 10.0.0.0 10.255.255.255 16,777,216
20-bit Block (/12 prefix, 16 x B) 172.16.0.0 172.31.255.255 1,048,576
16-bit Block (/16 prefix, 256 x C) 192.168.0.0 192.168.255.255 65,536


So, 10.130.20.120 is my private IP Address and as Private IP addresses are not routed on the Internet and thus their use need not be coordinated with an IP address registry so to communicate with Internet there must have a Public IP address. There are many websites through which you can check your IP Address along with many features. From them, I see AnalyzeMy really helps me which much more information.

Tuesday, March 2, 2010

About RMAN Compatibility Matrix

About RMAN Environment
If you say about RMAN Environment, then there comes the following components.
1) RMAN executable
2) Recovery catalog database
3) Recovery catalog schema in the recovery catalog database
4) Target database
5) Auxiliary database (used for duplicate, duplicate for standby or tablespace point-in-time recovery)

Each component has a release number. Oracle uses up to 5 digits to indicate a version of the release, but only up to 4 are significant for RMAN compatibility purposes. For example, to check the release number of RMAN executable just issue, rman on command prompt like below.
E:\Documents and Settings\Arju>rman

Recovery Manager: Release 10.2.0.1.0 - Production on Tue Mar 2 16:16:59 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.


Here we see the version is 10.2.0.1.0

Determine the Recovery Catalog Schema Version

Use SQL*Plus to connect to the recovery catalog database as the catalog owner. For example, enter:

$ sqlplus rman@catdb
Query the rcver catalog table. For example, run this query:

SQL> SELECT * FROM rcver;

VERSION
------------
09.00.01.00
10.02.01.00
11.01.00.03
Note that, if multiple versions are listed, then the last row is the current version, and the rows before it are prior versions. In the preceding example, the current recovery catalog schema version is 11.1 and the previous version was 10.2.

Note that for releases 10.2 and later, the last two digits in the rcver output indicate patch level. For earlier releases, they are always zeros.

RMAN Compatibility Matrix
In general, the rules of RMAN compatibility are as follows:

1) You can create an 8.x or 9.x recovery catalog schema in any Oracle database release 8.1.x (or higher), and a 10.0.1 (or higher) recovery catalog schema in any Oracle database release 9.0.1 (or higher).

2) The version of an auxiliary database instance must be equal to the version of the RMAN client.

3) Any release of Oracle database can restore backup sets and copies created by any prior release back to Oracle8i.

4) The RMAN executable version should be the same as the target database. There are some exceptions regarding this rule.

5) The RMAN catalog schema version must be greater than or equal to the RMAN executable.

6) The RMAN catalog is backwards compatible with target databases from earlier releases.

7) While backing up an Oracle Database 10g or later database with the Oracle9i RMAN client, you cannot include a control file that was created using COMPATIBLE=10.0.0 in a datafile backup set. The workaround is to turn control file autobackup ON.

RMAN Compatibility table is shown below.








Target/Auxiliary
Database
RMAN Executable Catalog Database Catalog Schema
8.0.68.0.6>=8.1.7>=8.0.6
8.1.78.0.6.1>=8.1.7>=8.1.7
8.1.78.1.7>=8.1.7>=RMAN executable
8.1.7.4 8.1.7.4 >=8.1.7 8.1.7.4
8.1.7.4 8.1.7.4 >=8.1.7 >=9.0.1.4
9.0.1 9.0.1>=8.1.7 >= RMAN executable
9.2.0>=9.0.1.3 and <= Target database>=8.1.7>= RMAN executable
10.1.0>=9.0.1.3 and <= Target database>=9.0.1>= RMAN executable
10.2.0>=9.0.1.3 and <= target database executable>=9.0.1>= RMAN executable
11.1.0>=9.0.1.3 and <= target database executable>=9.0.1>= RMAN executable
11.2.0>=9.0.1.3 and <= target database executable>=9.0.1>= RMAN executable


From above table you can easily conclude about the compatibility about different components of RMAN.

Note that when compatibility matrix is broken the following error message may be generated.
- RMAN-06186: PL/SQL package string.string version string in string database is too old
- RMAN-06429: string database is not compatible with this version of RMAN

Related Documents
RMAN-06091 no channel allocated for maintenance (of an appropriate type)
RMAN-06429: TARGET database is not compatible with this version of RMAN
How to take RMAN backup on a remote disk/ location
RMAN-00554,RMAN-04005,ORA-0103 when remote connection by rman
Set Date format inside RMAN environment
How to skip a tablespace for restore operation
How to debug Backup, Restore Session in RMAN
Restore operation fails with RMAN-11003 ORA-01511 ORA-01516
Recover database after only lose of all controlfiles
RMAN-04014: startup failed: ORA-07446: sdnfy: bad value
How to restore an Spfile from autobackup older than 7 days
RMAN-06172: no autobackup found
Creating a Duplicate Database on a Remote Host -Part1
Database Duplication Fails Missing Log RMAN-06053 RMAN-06025
How to perform Database Point in time Recovery DBPITR