11g

RAC Oracle Clusterware Startup Sequence 12c

12c Oracle Clusterware Startup Sequence - Oracle clusterware startup automatically when the RAC node starts. Startup sequence process tuns through different levels, in below figure you can find how multiple level startup process to start the full grid infrastructure stack also how the resources that clusterware manage.

This tutorial will describe startup sequence of oracle 12c RAC clusterware which is installed on Unix / Linux platform.

Oracle RAC 12c Clusterware Startup Sequence
Oracle 12c RAC Clusterware Startup Sequence


Once your Operating system finish the boot scrap pocess it reads /etc/init.d file via the initialisation daemon names init or init.d. In the init tab file is the one it triggers oracle high availability service daemon.

$cat /etc/inittab | grep init.d | grep -v grep
h1:35:respawn:/etc/init.d/init.ohasd run  >/dev/null  2>&1 </dev/null
Oracle Linux 6.x and Red Hat Linux 6.x have deprecated inittab.  init.ohasd is configured in startup in /etc/init/oracle-ohasd.conf:

$cat /etc/init/oracle-ohasd.conf

 start on runLevel [35]
start on tunLevel [!35]
respawn
exec /etc/init.d/init.ohasd run > /dev/null  2>&1 <dev/null
this start up " init.ohasd run " , which in turn starts up the ohasd.bin background process :

$ps  -ef  | grep  ohasd  | grep  -v grep
root  4056  1  1  Feb19   ?     01:54:34 /u01/app/12.1.0/grid/bin/ohsd.bin  reboot
root  2715  1   0 Feb19  ?     00:00:00  /bin/sh   /etc/init.d/init.ohsd  run

OHASD ( Oracle High Availability Service Daemon )  - we also call it as oracle restart

First /etc/init triggers OHASD, once ohasd is started on Level 0, it is responsible for starting the rest of clusterware and the resources that clusterware manages directly or indirectly through Levels 1- 4.

Level 1 - Ohasd on it own triggers four agent process

  • cssdmonitor : CSS Monitor
  • OHASD orarootagent : High Availability Service stack Oracle root agent
  • OHASD oraagent : High Availability Service stack Oracle Agent
  • cssdagent : CSS Agent


Level 2 - On this level, OHASD ora agent trigger five processes

  • mDNSD : mDNS daemon process
  • GIPCD : Grid Interprocess Comunication
  • GPnPD : GPnP Profile daemon
  • EVMD : Even Monitor Daemon
  • ASM : Resources for monitoring ASM Instances
Then, OHASD oraclerootagent trigger following processes 

  • CRSD : CRS daemon
  • CTSSD : Cluster Time Synchronisation Service Daemon 
  • Diskmon : Disk Monitor Daemon ( Exadata Server Storage )
  • ACFS : ( ASM Cluster File System ) Drivers
Next, the cssdagent starts the CSSD ( CSS daemon ) process.

Level 3 - The CRSD spawns two CRSD agents : CRSD orarootagent and CRSD oracleagent.

Level 4 - On this levael, the CRSD orarootagent is responsible for starting he following resources :

  • Network resource : for the public network
  • SCAN VIPs
  • Node VIPs : VIPs for each node
  • ACFS Registry
  • GNS VIP : VIP for GNS if you use the GNS option
Then, the CRSD orarootagent is responsible for starting the rest of the resources as follow 
  • ASM Resources : ASM instances(s) resource
  • Diskgroup : Used for managing / monitoring ASM diskgroups
  • Disk Resource : Used for managing and monitoring the DB and instances
  • SCAN Listener : Listener for SCAN listening on SCAN VIP
  • Listener : Node Listener listening on the Node VIP
  • Services : Database Services
  • ONS
  • eONS : Enhanced ONS
  • GSD : For 9i backword compatibility
  • GNS : performs name resolution ( Optional )





Ora 12154 tns error in oracle 12c 11g and 10g

Error ( Ora 12154 ) Message is : TNS:could not resolve the connect identifier specified.

One of my client has faced ora 12154 error while he configuring the database connectivity network using tnsnames.ora file with the provided details ( Service Name, Hostname, Port Number ) but he is facing issue, when we verified all the details which provided seems to be fine but customer still facing the issue, we did lot of digging to resolve the issue while i was searching in google i found most of the people are facing the same issue what i am looking, so that's why i decided to share the my tns error resolving log with you.

we have faced many ora 12154 tns error issues, i have copied all the logs and sharing one by one, i believe your situation suits any one of them, also i have mentioned in detailed description how to give tnsnames.ora configuration. In case if i miss anything please comment below i will paste on same page that will help to others.  

Below is one scenario where customer had done the mistake, instead of giving oradb1 he has mentioned wrong service name oradb11 due to connectivity failed  

---------------------------------------------------------------------------------------------------------
[oracle@rsrvt134 admin]$ tnsping oradb1

TNS Ping Utility for Linux: Version 12.1.0.2.0 - Production on 20-AUG-2017 00:01:49

Copyright (c) 1997, 2014, Oracle.  All rights reserved.

Used parameter files:


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = rsrvt134.oraclenet.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = oradb11)))
OK (10 msec)

[oracle@rsrvt134 admin]$ sqlplus kkasari/password@oradb1

SQL*Plus: Release 12.1.0.2.0 Production on Sun Aug 20 00:01:52 2017

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

ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor


Enter user-name:

( Answer is corrected the service name to oradb11 to oradb1 )

SQL>  show parameter service_name

Name                        Type                                 Value
-----------                   ------------                         -----------------


service_name            string                                ORADB1
------------------------------------------------------------------------------------------------------------------


To configure oracle database remote connectivity we need four details...


  • Tns Service Name
  • Host Name
  • Port Number
  • Database Service Name
Tns Service name -  you can choose any name, it would be good if the name is related and meaning full to related with database name.

Hostname -  Specify server ( IP Address / Hostname ) name where the database exists.

Port Number - Port number must match with the server side listener port number, be careful when you have multiple listener entries in a single file.

Service Name - Maximum database name is the service name in case if you have any doubt please check with using below parameter.

SQL>  show parameter service_name

Name                        Type                                 Value
-----------                   ------------                         -----------------
service_name            string                                ORADB1


TNS File ( tnsnames.ora )
---------------------------------

oradb1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = rsrvt134.oraclenet.com)(PORT = 1521))
    )
    (CONNECT_DATA =
    (SERVER = DEDICATED ) - Optional 
      (SERVICE_NAME = oradb1)
    )
  )

Older Posts