Remember the old days. You had just a few processes to watch. Something has changed along the way.  A lot of processes should be running on your database system (with infrastructure), but how are they connected to eachother and what is the startup sequence ? Or.. what processes I can kill without any other proces starting it up… 🙂

First a few important processes (from note 1050693.1 , about troubleshooting node evictions 11.2):

OCSSD (aka CSS daemon) – This process is spawned by the cssdagent process. It runs in both
vendor clusterware and non-vendor clusterware environments. CSSD’s primary job is internode health monitoring and RDBMS instance endpoint discovery. The health monitoring includes a network heartbeat and a disk heartbeat (to the voting files). CSSD can also evict a node after escalation of a member kill from a client (such as a database LMON process). This is a multi-threaded process that runs at an elevated priority and runs as the Oracle user.

Startup sequence: INIT –> init.ohasd –> ohasd –> ohasd.bin –> cssdagent –> ocssd –> ocssd.bin

CSSDAGENT – This process is spawned by OHASD and is responsible for spawning the CSSD process, monitoring for node hangs (via oprocd functionality), and monitoring to the CSSD process for hangs (via oclsomon functionality), and monitoring vendor clusterware (via vmon functionality). This is a multi-threaded process that runs at an elevated priority and runs as the root user.

Startup sequence: INIT –> init.ohasd –> ohasd –> ohasd.bin –> cssdagent

CSSDMONITOR – This proccess also monitors for node hangs (via oprocd functionality), monitors the CSSD process for hangs (via oclsomon functionality), and monitors vendor clusterware (via vmon functionality). This is a multi-threaded process that runs at an elevated priority and runs as the root user.

Startup sequence: INIT –> init.ohasd –> ohasd –> ohasd.bin –> cssdmonitor

Startup sequences overview:

->ohasd -> orarootagent -> ora.cssdmonitor : Monitors CSSD and node health (along with the cssdagent). Try to restart the node if the node is unhealthy.
                                                      -> 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.ctssd : Cluster Time Synchronization Services Daemon
                                           -> ora.evmd
                                                           -> ora.asmd
                                                           -> ora.gpnpd : Grid Plug and Play
And someone tried to put this in a nice picture…: