Stopping a node in Oracle RAC - 12c


In an emergency situation where you have very little time to shut down a RAC cluster.
“crsctl stop has” would bring the node down but this does a shutdown abort and can cause issues – especially on a production environment, although oracle does not give any warnings, so best avoided.

So for each node on RAC that needs to be closed - stop Oracle applications like Enterprise Manager and Golden Gate (outside scope of this doc). Note on a multi node RAC env, for example, there maybe GG processes on two nodes but not on the other nodes.

Please check for acfs file systems - outside of scope of this doc.

+++++++++++++++++++++

Run crsctl stat res -t  – copy output, make sure at the end the same command outputs the same.

You will need to set the environment depending on the step.

After each step check status.

++++++++++++++++++++

emctl stop agent

++++++++++++++++++++

Oracle user – RDBMS env.

srvctl stop listener -n node1

++++++++++++++++++++

The instance shutdown depends on how the instance is managed – we are automatic.


[oracle@server01 ~]$ srvctl config database -db oradb -all

Database unique name: abp

…..

Management policy: AUTOMATIC


So – we are using policy managed so :

$ srvctl stop instance -db oradb -node node1 (replace db and node name as approp.)

Stop ALL instances on node you want to stop.

++++++++++++++++++

ASM env. i.e. Grid

When instances are down you can then stop ASM

srvctl stop asm -n node1

++++++++++++++++++

srvctl stop nodeapps -node1 -f

++++++++++++++++++

In this command all CRS related process will be stopped. This is the only command which needs to be executed by "root" user on all database nodes.

crsctl stop crs

+++++++++++++++++

Check cluster down :

crsctl stat res -t

+++++++++++++++++

Startup – this in reverse but using start.

++++++++++++++++++++

More here :




**NB**

Disable autostart of CRS in order to be able to perform server-maintenance and CRS is NOT to be restarted after a reboot of the server (as user root)

Root] # . oraenv

ORACLE_SID = [+ASM] ? +ASM1
The Oracle base has been set to /u01/app/oracle

# crsctl disable crs
CRS-4621: Oracle High Availability Services autostart is disabled.


Further notes  --

Create blackout on OEM and stop relevant apps – outside scope of doc.

Run a ‘ps -ef | grep smon’ to check what instances are running.

Take output from ‘crsctl stat res -t’

Set environment to appropriate oracle home and begin shutdown of node.

[oracle@server01 ~]$ srvctl stop listener -n server01

[oracle@server01 ~]$ srvctl stop service -db oradb -node server01

[oracle@server01 ~]$ srvctl stop instance -db oradb -node server01

[oracle@server01 ~]$ srvctl stop service -db ods -node server01

[oracle@server01 ~]$ srvctl stop instance -db ods -node server01

[oracle@server01 ~]$ srvctl stop asm -n server01 -f

[oracle@server01 ~]$ srvctl stop listener -listener ASMNET1LSNR_ASM -node server01

[oracle@server01 ~]$ srvctl stop nodeapps -node server01 -f

PRCR-1014 : Failed to stop resource ora.net1.network

PRCR-1065 : Failed to stop resource ora.net1.network

CRS-2670: Unable to start/relocate 'ora.net1.network' because 'ora.qosmserver' has a stop-time 'hard' dependency on it

CRS-0245:  User doesn't have enough privilege to perform the operation

--will run further investigation on this.

Logout

So up the priv to root for this node – need to be root to stop crs anyway.

[root@server01 ~]# . oraenv

ORACLE_SID = [root] ? +ASM1

The Oracle base has been set to /u01/app/grid

[root@server01 ~]# srvctl stop nodeapps -node server01 -f

PRCC-1017 : ons was already stopped on server01

PRCR-1005 : Resource ora.ons is already stopped

[root@server01 ~]# crsctl stat res -t | more

--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr
               ONLINE  ONLINE       usnympmtaora03b          STABLE
               OFFLINE OFFLINE      server01          STABLE
……etc

ora.oradb.ec.svc
      1        ONLINE  ONLINE       usnympmtaora03b          STABLE
      3        OFFLINE OFFLINE                               STABLE
      4        ONLINE  ONLINE       usnyspmtaora02b          STABLE
ora.oradb.frm.svc

      1        ONLINE  ONLINE       usnyspmtaora02b          STABLE


[root@server01 ~]# crsctl stop crs

CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'server01'
CRS-2673: Attempting to stop 'ora.crsd' on 'server01'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on server 'server01'
CRS-2673: Attempting to stop 'ora.chad' on 'server01'
CRS-2673: Attempting to stop 'ora.ods_gg_data.odsggdata.acfs' on 'server01'
CRS-2673: Attempting to stop 'ora.umb_gg_data.umbggdata.acfs' on 'server01'
CRS-2677: Stop of 'ora.ods_gg_data.odsggdata.acfs' on 'server01' succeeded
CRS-2673: Attempting to stop 'ora.ODS_GG_DATA.ODSGGDATA.advm' on 'server01'
CRS-2677: Stop of 'ora.ODS_GG_DATA.ODSGGDATA.advm' on 'server01' succeeded
CRS-2677: Stop of 'ora.umb_gg_data.umbggdata.acfs' on 'server01' succeeded
CRS-2673: Attempting to stop 'ora.UMB_GG_DATA.GGDATA.advm' on 'server01'
CRS-2677: Stop of 'ora.UMB_GG_DATA.GGDATA.advm' on 'server01' succeeded
CRS-2673: Attempting to stop 'ora.proxy_advm' on 'server01'
CRS-2677: Stop of 'ora.chad' on 'server01' succeeded
CRS-2677: Stop of 'ora.proxy_advm' on 'server01' succeeded
CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'server01' has completed
CRS-2677: Stop of 'ora.crsd' on 'server01' succeeded
CRS-2673: Attempting to stop 'ora.storage' on 'server01'
CRS-2673: Attempting to stop 'ora.crf' on 'server01'
CRS-2673: Attempting to stop 'ora.drivers.acfs' on 'server01'
CRS-2673: Attempting to stop 'ora.gpnpd' on 'server01'
CRS-2673: Attempting to stop 'ora.mdnsd' on 'server01'
CRS-2677: Stop of 'ora.drivers.acfs' on 'server01' succeeded
CRS-2677: Stop of 'ora.crf' on 'server01' succeeded
CRS-2677: Stop of 'ora.gpnpd' on 'server01' succeeded
CRS-2677: Stop of 'ora.storage' on 'server01' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'server01'
CRS-2677: Stop of 'ora.asm' on 'server01' succeeded
CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'server01'
CRS-2677: Stop of 'ora.mdnsd' on 'server01' succeeded
CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'server01' succeeded
CRS-2673: Attempting to stop 'ora.ctssd' on 'server01'
CRS-2673: Attempting to stop 'ora.evmd' on 'server01'
CRS-2677: Stop of 'ora.ctssd' on 'server01' succeeded
CRS-2677: Stop of 'ora.evmd' on 'server01' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'server01'
CRS-2677: Stop of 'ora.cssd' on 'server01' succeeded
CRS-2673: Attempting to stop 'ora.gipcd' on 'server01'
CRS-2677: Stop of 'ora.gipcd' on 'server01' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'server01' has completed

CRS-4133: Oracle High Availability Services has been stopped.

[root@server01 ~]# crsctl stat res -t

CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4000: Command Status failed, or completed with errors.

Down as expected.

STARTUP…

Some of the startup is ran when we start nodeapps but for completeness.

[root@server01 ~]# crsctl start crs

. oraenv to one of the databases…

[oracle@server01 ~]$ srvctl start nodeapps -node server01

[oracle@server01 ~]$ crsctl stat res -t

[oracle@server01 ~]$ srvctl start asm -n server01

[oracle@server01 ~]$ srvctl start listener -listener ASMNET1LSNR_ASM -node server01

[oracle@server01 ~]$ srvctl start instance -db oradb -node server01

[oracle@server01 ~]$ srvctl status database -db oradb -v

[oracle@server01 ~]$ srvctl start instance -db ods -node server01

[oracle@server01 ~]$ srvctl status database -db ods -v

[oracle@server01 ~]$ srvctl start listener -n server01

[oracle@server01 ~]$ emctl status agent

[oracle@server01 ~]$ emctl start agent

[oracle@server01 ~]$ crsctl stat res -t (check everything running)

[oracle@server01 ~]$ crsctl stat res -t | grep 04x | wc -l (compare with start)



No comments:

Post a Comment