Note: Removing a node from a cluster is supported only in configurations with separate "database-only" and "storage-only" nodes. It is not supported with standard 2-node or 3-node clusters that have data disks attached to database nodes.
Before You Start
- FlashGrid Cluster software must be on version 24.1.108 or newer
- All cluster nodes must be online
- Cluster status reported by flashgrid-cluster command must be Good
- Further in this article, the hostname of the database node being deleted will be referred to as <target hostname>
Steps for Removing a DB Node
1) Reconfigure the database services to exclude the database instance that is to be deleted.
2) Update the client's connection strings
If the client's connection string is in a long format that includes hostnames of all database nodes, then modify the connection string and remove the target database node's hostname.
3) Remove database instances
- As the oracle user, use DBCA to delete database instances from the target node. Repeat this step for each database.
dbca -silent -deleteInstance [-nodeList <target hostname>] -gdbName <gdb name> -instanceName <target instance name> [-sysDBAUserName sys -sysDBAPassword <password>]
4) On the client-side DNS server, remove the following record(s)
<deleted node's FQDN> <VNet IP of the deleted node>
In case of using SCAN in connection strings, in addition to the above entry, remove:
<SCAN name> <VNet IP of the deleted node>
5) Remove Oracle RAC configuration on the target node
Perform the following steps from the database node being removed.
- Disable and stop local listener(s)
# srvctl disable listener -l LISTENER -n <target hostname> # srvctl stop listener -l LISTENER -n <target hostname>
- Deconfigure GI as root user
# /u01/app/19.3.0/grid/root.sh -deconfig -verbose -force
6) Delete the node from the Clusterware
Run as root on any (e.g. first) remaining database node:
# crsctl delete node -n <target hostname>
7) Delete the target DB node from FlashGrid configuration
Run as root on any (e.g. first) remaining database node:
# flashgrid-remove-node-from-cluster <target hostname>
8) Reset the number of nodes in OCR
If you use crsctl to check the status, you'll notice that OCR still contains information about the deleted node that is no longer part of the cluster.
Run as grid user on any (e.g. first) remaining database node:
$ srvctl modify asm -count <number of db nodes before node deletion> $ srvctl modify asm -count ALL
9) Confirm that the node was removed successfully
- Wait for one minute
- As user fg make sure the cluster status is Good. All diskgroups have zero offline disks and Resync = No
$ flashgrid-cluster
If the removed node still appears in the node list and the status is Inaccessible, wait for some time and retry the command. - As root, use crsctl to verify that the database node was removed:
# crsctl status res -t
10) After all the steps above are complete, you can delete the target VM.
11) Upload diags to FlashGrid support