Translate

Friday, 16 November 2012

What is Oracle RAC One Node ?

Oracle introduced a new option called RAC One Node with the release of 11gR2 in late 2009. This option is available with Enterprise edition only. Basically, it provides a cold failover solution for Oracle databases. It’s a single instance of Oracle RAC running on one node of the cluster while the 2nd node is in a cold standby mode. If the instance fails for some reason, then RAC One Node detects it and first tries to restart the instance on the same node. The instance is relocated to the 2nd node in case there is a failure or fault in 1st node and the instance cannot be restarted on the same node. The benefit of this feature is that it automates the instance relocation without any downtime and does not need a manual intervention. It uses a technology called Omotion, which facilitates the instance migration/relocation. RAC One is Oracle’s answer or solution to OS clustering solution like Veritas Storage Foundation, Sun Solaris cluster, IBM HACMP, and HP Service guard etc.

Purpose

Its Oracle’s attempt to tie customers to a single vendor by eliminating the need to buy 3rd party OS cluster solutions. First, it introduced Oracle Clusterware with 10g and stopped the need to rely on 3rd party cluster software and now it intends to conquer the rest who are still using HACMP, Sun Solaris cluster etc. for cold failover.

Benefits

  1. The Oracle RAC One node provides the following benefits:
  2. Built-in cluster failover for high availability
  3. Rolling patches for single instance database
  4. Proactive migration / failover of the instance
  5. Live migration of instances across servers
  6. Online upgrade to RAC
 
The rolling upgrade is really useful. Upgrade to the OS, and Database can be done without any downtime unless upgrade requires some scripts to be run against the database. With RAC One Node, the DBA’s and Sys admins can be proactive and migrate/failover the instance to another node to perform any critical maintenance activity.

What it's not suited for

According to me the RAC one node is not a viable or recommended solution in the following scenarios:

  1. To load balance unlike regular RAC
  2. A true high availability solution
  3. As a DR solution; Data guard best suits the bill
  4. For mission critical applications

Cost

It is definitely not FREE. Oracle has priced RAC one at par with Active Data Guard. The RAC One node is priced separately and costs $10,000 per processor as against $23,000 for regular RAC. The licensing cost is required for ONE node only (in a 2-node setup). RAC one node is eligible for 10-day rule, allowing a customer to migrate to another without the need to buy additional license up to 10-days in a calendar year. People arguing against paying a license fee for resources they are not using will still lament.

Conclusion

I am still not very convinced on the usefulness of RAC one node. I think customers invest in RAC for their mission critical applications and achieving high availability and load balancing at the same time. Those who don’t go for RAC rely on Data Guard and now with 11g, on Active Data Guard. So don’t see a huge requirement for RAC One except seamless failover within a data center. The licensing is a bit disappointing; they are making clients pay $10 K. Moreover RAC is free with Standard edition though one doesn’t get enterprise features and limited to 4 CPU sockets only. So, thinking RAC One will be popular among customers who are currently using standard edition and want to switch to enterprise will be wrong.

Monday, 5 November 2012

How to reclaiming Unused LOB Space ??


SELECT table_name, column_name, segment_name, a.bytes
FROM dba_segments a JOIN dba_lobs b
USING (owner, segment_name)
WHERE b.table_name = 'NITI_TEST_LOB';

TABLE_NAME             COLUMN_NAME    SEGMENT_NAME                      BYTES
------------                    -------------- ---------------------------- ----------
NITI_TEST_LOB             IMAGE          SYS_LOB0000148988C00003$$    50,331,648


SELECT NVL((SUM(DBMS_LOB.GETLENGTH(image))),0) AS BYTES
FROM niti_test_lob;

     BYTES
----------
16,706,000

Use following command to manually shrink the LOB segment to free up the space immediately:


ALTER TABLE niti_test_lob MODIFY LOB (image) (SHRINK SPACE);

Table altered.


SELECT table_name, column_name, segment_name, a.bytes
FROM dba_segments a JOIN dba_lobs b
USING (owner, segment_name)
WHERE b.table_name = 'NITI_TEST_LOB';

TABLE_NAME     COLUMN_NAME             SEGMENT_NAME                      BYTES
------------             --------------                    ----------------------------           ----------
NITI_TEST_LOB     IMAGE                  SYS_LOB0000148988C00003$$        65,536


SELECT NVL((SUM(DBMS_LOB.GETLENGTH(image))),0) AS BYTES
FROM niti_test_lob;

    BYTES
----------
         0

The alter table <table_name> shrink space statement was introduced in Oracle 10g R1.
The ability to extend the SHRINK SPACE command to LOBs was introduced in Oracle 10g R2

Tuesday, 30 October 2012

How to run APList.sql ?

This test displays ALL of the Data for ALL of the tables used to process an invoice in AP.

FILE NAME:   APList.sql
PRODUCT:    501 -Oracle Payables
SUBCOMPONENT:  PAYMENT
PRODUCT VERSIONS:  11.5, 11.0, 10.7
PLATFORM:    All Platforms
PARAMETERS:   Invoice/Check Number
                             Supplier Name
                             Invoice ID
                             Print Null Columns Y or N - Default N
                             Details Layout Portrait (P) or Landscape (L) - Default P
                            GL Details Y or N - Default N

Included Files:

 CoreApiHtml.sql
 APListh.sql (HTML version)
 CoreApiTxt.sql
 APListt.sql (Text version)

Execution Environment:

 SQL*Plus

Access Privileges:

 Requires APPS user access

Usage:
 sqlplus apps/password @APListh.sql (HTML version)
 sqlplus apps/password @APListt.sql (Text version)

Instructions:
The files should be unzipped to a common directory.
For HTML output (recommended), run the file APListh.sql in SQL*Plus in the APPS schema. 
Follow the prompts and enter the requested information. The test will create an output file in html
format named APListh_<invoice_ID>_diag.html. Open the file in your browser and review the output.

Note:  The HTML version of this test is incompatible NLS Character Set UTF8 for RDBMS version 8.1.7.3 or lower.

Please run the Text version of this test, if you have UTF8 and RDMBS version 8.1.7.3 or lower.
For Text output, run the file APListh.sql in SQL*Plus in the APPS schema. 
Follow the prompts and enter the requested information. The test will create an output file in Text
format named APListt_<invoice_id>_<mmddhhmm>_diag.lst. Open the file in a Text editor and review the output.



The test has 3 parameters that allow some control of the appearance of the data and what data is returned.

Parameter 1:  Print Null Columns (Y or N) - Default N
This parameter is defaulted to No (N).  That is the recommended setting for this parameter.
If set to Y, the test would display all columns in each table, including columns with NULL values.

Parameter 2: Details Layout Portrait (P) or Landscape (L) - Default P (HTML Only)
This parameter is defaulted to P.  That is the recommended setting for this parameter.
Setting this option to P, will display all table details in a portrait format.
Setting this option to L, will display all table details in a Landscape format.

Parameter 3: GL Details Y or N - Default N
This parameter is defaulted to N.  That is the recommended setting for this parameter.
Setting this option to Y, will display any transaction data transferred to the GL.
WARNING:  SETTING THIS OPTION TO Y WILL RESULT IN LONGER RUN TIME FOR THE TEST

Errors in running APList : unable to open file "CoreApiHtmlx.sql"

Error:
unable to open file "CoreApiHtmlx.sql"
unable to open file "AddOnApiHtml.sql"
begin -- begin1
*
ERROR at line 1:
ORA-06550: line 13, column 1:
PLS-00201: identifier 'SHOW_HEADER' must be declared
ORA-06550: line 13, column 1:
PL/SQL: Statement ignored
ORA-06550: line 29, column 14:
PLS-00201: identifier 'V2T' must be declared
ORA-06550: line 29, column 14:
PL/SQL: Item ignored
ORA-06550: line 30, column 14:
PLS-00201: identifier 'V2T' must be declared
ORA-06550: line 30, column 14:
PL/SQL: Item ignored
ORA-06550: line 54, column 3:
PLS-00201: identifier 'INSERT_HTML' must be declared
ORA-06550: line 54, column 3:
PL/SQL: Statement ignored
ORA-06550: line 58, column 3:
PLS-00201: identifier 'INSERT_HTML' must be declared
ORA-06550: line 58, column 3:
PL/SQL: Statement ignored
ORA-06550: line 61, column 45:
PLS-00201: identifier 'V2T' must be declared
ORA-06550: line 61, column 1:
PL/SQL: Item ignored
ORA-06550: line 86, column 6:
PL/SQL: ORA-00942: table or view does not exist
ORA-06550: line 84, column 1:
PL/SQL: SQL Statement ignored
ORA-06550: line 107, column 3:
PLS-00201: identifier 'ERRORPRINT' must be declared


Solution:


APlist.sql calls another file - CoreApiHtml.sql that comes with APlist script. Make sure that this file is in the same directory as APList.sql, it contains all the procedures that APList calls.
 
 
 

Tuesday, 23 October 2012

Oracle RAC 11g Training with ASM


Oracle RAC Training with ASM

For Oracle RAC Training with ASM Check the following URL:

http://www.youtube.com/watch?v=y9Wgo0XpuUs&feature=colike

Friday, 19 October 2012

FRM-92101: There was a failure in the Forms Server during stratup.


While trying to run forms forms for the first time hitting error “FRM-92101: There was a failure in the Forms Server during stratup.”
Solution :
1 )    Download openmotif21-2.1.30-11.EL5.i386.rpm from http://oss.oracle.com/projects/compat-oracle/files/Enterprise_Linux/

2 )      Install the rpm in server.
$ rpm -ivh openmotif21-2.1.30-11.EL5.i386.rpm
3 ) Run forms again now it will work fine.

Wednesday, 10 October 2012

R12 : httpd: error while loading shared libraries: libdb.so.2

Problem :

After the installation faced issues bringing up the HTTP server.


Processes in Instance: r12test_myhost.myhost.mydomain.com-------------------+--------------------+---------+---------ias-component | process-type | pid | status-------------------+--------------------+---------+---------OC4J | oafm | 11510 | AliveOC4J | forms | 11508 | AliveOC4J | oacore | 11509 | AliveHTTP_Server | HTTP_Server | 0 | NONEASG | ASG | N/A | Down

06/10/12-00:11:48 :: adopmnctl.sh: exiting with status 0

adapcctl.txt showed the error message
06/10/12-00:04:03 :: adapcctl.sh: starting OPMN managed OHS instance
opmnctl: starting opmn managed processes...================================================================================opmn id=myhost.mydomain.com:6205no processes or applications matched this request
06/10/09-00:04:06 :: adapcctl.sh: exiting with status 150
================================================================================

$LOG_HOME/ora/10.1.3/opmn/HTTP_Server~1 was giving the error

--------12/06/10 00:25:49 Start process--------/app/inst/apps/r12test_myhost/ora/10.1.3/Apache/Apache/bin/apachectl startssl: execing httpd/app/apps/tech_st/10.1.3/Apache/Apache/bin/httpd: error while loading shared libraries: libdb.so.2: cannot open shared object file: No such file or directory




Solution:


Download and Install patch "6078836" from MOS:



[root 6078836]# pwd
/u01/sw_home/6078836

[root 6078836]# ls
libdb.so.2  README.txt

[root 6078836]# ls -l /usr/lib/libdb.so.2
ls: /usr/lib/libdb.so.2: No such file or directory

[root 6078836]# cp libdb.so.2 /usr/lib/

[root 6078836]# ls -l /usr/lib/libdb.so.2
-rw-r--r-- 1 root root 5825 Nov 27 11:38 /usr/lib/libdb.so.2

[root 6078836]# 

R12 MultiNode Installation with VMWare


Setup Requirement : Node with atleast 1 GB of Ram and 80GB of HardDisk , OS Dump , R12 Dump and VMWare Software

Download a Copy of VMWare WorkStation from http://www.vmware.com/download/ws/ for Linux
You will need an evaluation key
http://www.vmware.com/vmwarestore/newstore/wkst_eval_login.jsp , make sure you have the key before you start the Installation.

I downloaded an Image of Redhat Linux RHEL4-U4-i386-ES


Linux Node Setup Information:
1. Install OS Image on to the Box
2. Name the host , say r12lab01.r12.com and assign a static IP
3. Make sure you have all the latest RPM's in place. For more info refer R12 OS Pre-requisite Notes.
4. Open a VNC Server as Root
5. Download the VMWare RPM Package "VMware-workstation-5.5.3-34685.i386.rpm"
6. Install the RPM Package
7. Configure VMWare using "http://www.vmware.com/support/ws5/doc/ws_install_linux.html"
8. Start VMware Workstation ( /usr/bin/vmware )
9. Enter your serial number.
10. Create a virtual machine using the New Virtual Machine Wizard.
( ref : http://www.vmware.com/support/ws5/doc/newguest_ws.html )
11. Install a guest operating system in the new virtual machine.
You need the installation media CD-ROM for your guest operating system
12. Name the New Virtual Host as r12lab02.r12.com and assign a static IP
13. Make sure that you can communicate between first and the second node.
14. Power Off the Node and Start Fresh , make sure you have no OS Issues.
15. Keep the VNC Session Active. ( If you loose it , your will not have the new node )

R12 Setup Information:
1. Download Dump of R12 from http://edelivery.oracle.com
2. Stage them on the Hard Disk( I did not include the space requirement of the Dump above)
3. Run a Single Node Installation
4. Make sure that the Installation Completed Normal and all the Service are Up and Running.
5. Perform a Complete Health Check.

Adding a Node to the Existing Setup:
1. Power on the Second Node
2. Mount the R12 Mount Points on the Second Node.
3. cd /home1/aptest/test/apps/apps_st/comn/clone/bin/
4. perl adclonectx.pl addnode contextfile=TEST_r12lab01.xml
Target hostname (virtual or normal) [r12lab02]:
5. Make sure that the above process generate the Secondary Node's Context File
6. Make the Service Enabled that you want to run on the Second Node.
Initially have web service configured and later modify according to your need.
7. Move into AD_TOP/bin and run adconfig.sh , context_file=TEST_r12lab01.xml
8. Make sure that Autoconfig Complete's Normal.
9. Source the Environment File
10. Start the Service on the Seconday Node
11. Navigate to OAM and verify that you have the Second Node.

Sunday, 2 September 2012

SYSAUX tablespace is growing like anything



SYSAUX tablespace is growing like anything
##################################

AWR is identified to be consuming more space.

SQL> select * from v$sysaux_occupants ;

SQL> SELECT occupant_name, occupant_desc, space_usage_kbytes FROM v$sysaux_occupants ORDER BY space_usage_kbytes DESC ;


OCCUPANT_NAME                   OCCUPANT_DESC                                          SPACE_USAGE_KBYTES

SM/AWR                  Server Manageability - Automatic Workload Repository               19906624
SM/OPTSTAT              Server Manageability - Optimizer Statistics History                  191808
EM                      Enterprise Manager Repository                                         59648


Solution
#########

1.) See the snapshots interval and retention period time

SQL> select * from DBA_HIST_WR_CONTROL;

Check whether the retention period is set too high. In such case we need to modify  the retention period.

If it is set to high value, then consider reducing the retention period to avoid growing of space.

By default, it is set to 7 days.

The new retention time is specified in minutes.

SQL> execute DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(retention => 4320);

Here 4320 is 3*24*60 ( Convert the days to minutes). For 3 days, it 4320 minutes.



2). Next thing is to check the amount of snapshots have been generated and available.


If this is too high, then try to drop the unwanted snapshots to reclaim the space.


SQL> exec dbms_workload_repository.drop_snapshot_range(low_snap_id,high_snap_id);

low_snap_id : The low snapshot id of snapshots to drop.

high_snap_id : The high snapshot id of snapshots to drop.



3) Then check whether the statistics_level parameter is set to typical.


SQL> show parameter statistics


NAME                                         TYPE                        VALUE

statistics_level string ALL   ----->  Should be set TYPICAL


If it is set to ALL, please change it to TYPICAL. Because statistics_level=ALL will gather lot of additional information in AWR repository which would consume more space. Most of the cases, if the statistics_level is set to TYPICAL then the growth would be stopped.

SQL> alter system set statistics_level=typical;

Monday, 13 August 2012

What is Split Brain and Node Eviction in RAC ???


What is Voting Disk ??


Oracle Clusterware uses the voting disk to determine which instances are members of a cluster. The voting disk must reside on a shared disk. Basically all nodes in the RAC cluster register their heart-beat information on thes voting disks. The number decides the number of active nodes in the RAC cluster. These are also used for checking the availability of instances in RAC and remove the unavailable nodes out of the cluster. It helps in preventing split-brain condition and keeps database information intact. The split brain syndrome and its affects and how it has been managed in oracle is mentioned below.
For high availability, Oracle recommends that you have a minimum of three voting disks. If you configure a single voting disk, then you should use external mirroring to provide redundancy. You can have up to 32 voting disks in your cluster. What I could understand about the odd value of the number of voting disks is that a noe should see maximun number of voting disk to continue to function, so with 2, if it can see only 1, its not the maximum value but a half value of voting disk. I am still trying to search more on this concept.

Split Brain  in RAC


In a Oracle RAC environment all the instances/servers communicate with each other using high-speed interconnects on the private network. This private network interface or interconnect are redundant and are only used for inter-instance oracle data block transfers. Now talking about split-brain concept with respect to oracle rac systems, it occurs when the instance members in a RAC fail to ping/connect to each other via this private interconnect, but the servers are all pysically up and running and the database instance on each of these servers is also running. These individual nodes are running fine and can conceptually accept user connections and work independently. So basically due to lack of commincation the instance thinks that the other instance that it is not able to connect is down and it needs to do something about the situation. The problem is if we leave these instance running, the sane block might get read, updated in these individual instances and there would be data integrity issue, as the blocks changed in one instance, will not be locked and could be over-written by another instance. Oracle has efficiently implemented check for the split brain syndrome.


Node Eviction in RAC


In RAC if any node becomes inactive, or if other nodes are unable to ping/connect to a node in the RAC, then the node which first detects that one of the node is not accessible, it will evict that node from the RAC group. e.g. there are 4 nodes in a rac instance, and node 3 becomes unavailable, and node 1 tries to connect to node 3 and finds it not responding, then node 1 will evict node 3 out of the RAC groups and will leave only Node1, Node2 & Node4 in the RAC group to continue functioning.
The split brain concepts can become more complicated in large RAC setups. For example there are 10 RAC nodes in a cluster. And say 4 nodes are not able to communicate with the other 6. So there are 2 groups formed in this 10 node RAC cluster ( one group of 4 nodes and other of 6 nodes). Now the nodes will quickly try to affirm their membership by locking controlfile, then the node that lock the controlfile will try to check the votes of the other nodes. The group with the most number of active nodes gets the preference and the others are evicted. Moreover, I have seen this node eviction issue with only 1 node getting evicted and the rest function fine, so I cannot really testify that if thats how it work by experience, but this is the theory behind it.

When we see that the node is evicted, usually oracle rac will reboot that node and try to do a cluster reconfiguration to include back the evicted node.

You will see oracle error: ORA-29740, when there is a node eviction in RAC. There are many reasons for a node eviction like heart beat not received by the controlfile, unable to communicate with the clusterware etc.

Sunday, 12 August 2012

Using find Command in ASM


Purpose

Displays the absolute paths of all occurrences of the specified name pattern (with wildcards) in a specified directory and its subdirectories.

Syntax and Description


find [-t type] dir_name name_pattern


This command searches the specified directory and all subdirectories under it in the directory tree for the supplied name_pattern. The value that you use forname_pattern can be a directory name or a filename, and can include wildcard characters. See "Wildcard Characters".


In the output of the command, directory names are suffixed with the slash character (/) to distinguish them from filenames.


You use the -t flag to find all the files of a particular type (specified as type). For example, you can search for control files by specifying type asCONTROLFILE. Valid values for type are the following:


CONTROLFILE

DATAFILE

ONLINELOG

ARCHIVELOG

TEMPFILE

BACKUPSET

DATAFILE

PARAMETERFILE

DATAGUARDCONFIG

FLASHBACK

CHANGETRACKING

DUMPSET

AUTOBACKUP

XTRANSPORT


These are the type values from the type column of the V$ASM_FILE view.


Examples


The following example searches the dgroup1 disk group for files that begin with 'UNDO'.


ASMCMD> find +dgroup1 undo*

+dgroup1/sample/DATAFILE/UNDOTBS1.258.555341963

+dgroup1/sample/DATAFILE/UNDOTBS1.272.557429239

The following example returns the absolute path of all the control files in the +dgroup1/sample directory.

ASMCMD> find -t CONTROLFILE +dgroup1/sample *

+dgroup1/sample/CONTROLFILE/Current.260.555342185

+dgroup1/sample/CONTROLFILE/Current.261.555342183

Monday, 6 August 2012

FRM-92101: There was a Failure in the Forms Server During Startup

Symptoms
Intermittently E-Business suite forms sessions are failing with the error

Error

FRM-92101 : There was a failure in the Forms Server during startup. This could happen due to invalid configuration.

Steps to Reproduce

The issue can be reproduced at will with the following steps:

1:- Log into the E-Business suite.
2:- Choose a responsibility and click a function which loads forms (any form)

Business Impact

The issue has the following business impact:
Due to this issue, forms sessions are being disconnected for up to 100 users.
Changes
Implemented a shared application tier file system (shared APPL_TOP)
Cause
The OPMN process pings the HTTP server process to check that it is still alive. If OPMN does not get a response from the HTTP server in the timeframe configured by the E-Business suite, it presumes that the HTTP server is down and restarts it, affecting all users connected to that application server.

In the $LOG_HOME/ora/10.1.3/opmn/opmn.log we can see that OPMN is restarting the HTTP server because it has become unresponsive.

10/02/16 12:08:22 [libopmnohs] Process Ping Failed:
HTTP_Server~HTTP_Server~HTTP_Server~1 (241450421:15863) [The connection
receive timed out]
10/02/16 12:09:13 [libopmnohs] Process Ping Failed:
HTTP_Server~HTTP_Server~HTTP_Server~1 (241450421:15863) [The connection
receive timed out]
10/02/16 12:09:13 [libopmnohs] Process Unreachable:
HTTP_Server~HTTP_Server~HTTP_Server~1 (241450421:15863)
10/02/16 12:09:15 [pm-process] Stopping Process:
HTTP_Server~HTTP_Server~HTTP_Server~1 (241450421:15863)
10/02/16 12:09:23 [pm-process] Starting Process:
HTTP_Server~HTTP_Server~HTTP_Server~1 (241450421:0)

The reason that OPMN is restarting the HTTP server is that a shared APPL_TOP is being used, but the recommended settings for the Network-attached storage (NAS) file system have not been implemented.

As the NAS mount gets busier, the HTTP server process becomes swamped and does not respond to OPMN. OPMN then restarts the process, causing all forms users connected to that Application server to fail with the FRM-92100 error.

Self service session users are much less likely to notice the issue as most self service application screens are stateless HTML, so no context is lost when the HTTP server is bounced.
Solution
To implement the solution, please execute the following steps:

1:- Stop ALL middle tier services
2:- Update the $CONTEXT_FILE and change "s_lock_pid_dir" to a directory on a local disk.

For example

/d01

3:- Run autoconfig

4:- Ensure that the NAS device is configured with the correct mount options.

On Linux, it should be using "nolock" option.
On Solaris, it should be using "llock" option.

5:- Start ALL middle tier services
6:- Retest the issue.
7:- Migrate the solution as appropriate to other environments.


References

BUG:5407140 - [LIBOPMNOHS] PROCESS PING FAILED: HTTP_SERVER~HTTP_SERVER~HTTP_SERVER~1
BUG:9279182 - USER SESSION CRASHES WITH FRM-92102 AND SEGMENTATION FAULT
NOTE:384248.1 - Sharing The Application Tier File System in Oracle E-Business Suite Release 12
NOTE:802704.1 - Poor Performance of APPS 11i or 12 When Using Shared APPL_TOP with NAS

Sunday, 29 July 2012

Oracle RAC Training with ASM

For Oracle RAC Training with ASM Check the following URL:

http://www.youtube.com/watch?v=y9Wgo0XpuUs&feature=colike

Oracle RAC clusterware startup sequence (11gR2) - 2

ohasd = Oracle High Availability Services Daemon  
Link to Oracle Clusterware components


Here is the Oracle 11gR2 clusterware startup sequence:

ohasd -> orarootagent -> ora.cssdmonitor : Monitors CSSD and node health (along with the cssdagent). Try to restart the node if the node is unhealthy.

-> ora.ctssd : Cluster Time Synchronization Services Daemon ->
                                                    ora.crsd   -> oraagent  -> ora.LISTENER.lsnr
                                                                             -> ora.LISTENER_SCAN.lsnr
                                                                             -> ora.ons
                                                                             -> ora.eons
                                                                             -> ora.asm
                                                                             -> ora.DB.db

                                                         ->orarootagent -> ora.nodename.vip
                                                                                 -> ora.net1.network
                                                                                 -> ora.gns.vip
                                                                                 -> ora.gnsd
                                                                                 -> ora.SCANn.vip

         -> cssdagent -> ora.cssd : Cluster Synchronization Services

 -> oraagent -> ora.mdnsd : Used for DNS lookup
                            -> ora.evmd
                            -> ora.asmd
                            -> ora.gpnpd : Grid Plug and Play = adding a node to the cluster is easier (we need less configuration for the new node)


If a resource is written using blue & bold font => resource owned by root. The other resources are owner by oracle. (all this on UNIX environment)
When a resource is managed by root, we need to run the command crsctl as root or oracle.








Clusterware Resource Status Check

$ crsctl status resource -t
 
--------------------------------------------------------------------------------
NAME                  TARGET  STATE      SERVER            STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr    
                      ONLINE  ONLINE    rac1.nitish.com
                      ONLINE  ONLINE    rac2.nitish.com
ora.asm              
                      OFFLINE OFFLINE   rac1.nitish.com
                      OFFLINE OFFLINE   rac2.nitish.com
ora.eons             
                      ONLINE  ONLINE    rac1.nitish.com
                      ONLINE  ONLINE    rac2.nitish.com
ora.gsd
                      OFFLINE OFFLINE   rac1.nitish.com
                      OFFLINE OFFLINE   rac2.nitish.com
ora.net1.network
                      ONLINE  ONLINE    rac1.nitish.com
                      ONLINE  ONLINE    rac2.nitish.com
ora.ons
                      ONLINE  ONLINE    rac1.nitish.com
                      ONLINE  ONLINE    rac2.nitish.com
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1                     ONLINE  ONLINE    rac1.nitish.com
ora.LISTENER_SCAN2.lsnr
1                     ONLINE  ONLINE    rac2.nitish.com
ora.LISTENER_SCAN3.lsnr
1                     ONLINE  ONLINE    rac2.nitish.com
ora.oc4j
1                     OFFLINE OFFLINE
ora.scan1.vip
1                     ONLINE  ONLINE    rac1.nitish.com
ora.scan2.vip
1                     ONLINE  ONLINE    rac2.nitish.com
ora.scan3.vip
1                     ONLINE  ONLINE    rac2.nitish.com
ora.NITI.db
1                     ONLINE  ONLINE    rac1.nitish.com         Open
2                     ONLINE  ONLINE    rac2.nitish.com
ora.rac1.nitish.com.vip
1                     ONLINE  ONLINE    rac1.nitish.com
ora.rac2.nitish.com.vip
1                     ONLINE  ONLINE    rac2.nitish.com
 

crsctl start has    -> start all the clusterware services/ resources (including the database server and the listener);
crsctl stop has    -> stop all the clusterware services/ resources (including the database server and the listener);

crsctl check has -> to check if ohasd is running/ stopped

crsctl check has
CRS-4638: Oracle High Availability Services is online
>> the ohasd daemon is running => the clusterware is (must be) up and running (if no error occur).

crsctl check has
CRS-4639: Could not contact Oracle High Availability Services
>> the ohasd daemon is NOT running => the clusterware is DOWN (stopped).


crsctl enable has  -> enable Oracle High Availability Services autostart

crsctl disable has -> disable Oracle High Availability Services autostart

crsctl config has -> check if Oracle High Availability Services autostart is enabled/ disabled.

crsctl config has
CRS-4622: Oracle High Availability Services autostart is enabled.