Removing the Failed Compute Server from the Cluster

You must remove the failed compute server from Oracle Real Application Clusters (Oracle RAC).

In these steps, working_server is a working compute server in the cluster, failed_server is the compute server being replaced, and replacement_server is the new server.

To remove a failed compute server from the Oracle RAC cluster:

  1. Log in to working_server as the oracle user.

  2. Disable the listener that runs on the failed server:

    $ srvctl disable listener -n failed_server
    $ srvctl stop listener -n failed_server
    
  3. Delete the Oracle home directory from the inventory:

    $ cd $ORACLE_HOME/oui/bin
    $ ./runInstaller -updateNodeList ORACLE_HOME= \
    /u01/app/oracle/product/12.1.0/dbhome_1 "CLUSTER_NODES=list_of_working_servers"
    

    In the preceding command, list_of_working_servers is a list of the compute servers that are still working in the cluster, such as ra01db02, ra01db03, and so on.

  4. Verify that the failed server was deleted—that is, unpinned—from the cluster:

    $ olsnodes -s -t
    
    ra01db01     Inactive        Unpinned
    ra01db02        Active          Unpinned
    
  5. Stop and delete the virtual IP (VIP) resources for the failed compute server:

    # srvctl stop vip -i failed_server-vip
    PRCC-1016 : failed_server-vip.example.com was already stopped
    
    # srvctl remove vip -i failed_server-vip
    Please confirm that you intend to remove the VIPs failed_server-vip (y/[n]) y
    
  6. Delete the compute server from the cluster:

    # crsctl delete node -n failed_server
    CRS-4661: Node failed_server successfully deleted.
    

    If you receive an error message similar to the following, then relocate the voting disks.

    CRS-4662: Error while trying to delete node ra01db01.
    CRS-4000: Command Delete failed, or completed with errors.
    

    To relocate the voting disks:

    1. Determine the current location of the voting disks. The sample output shows that the current location is DBFS_DG.

      # crsctl query css votedisk
      
      ##  STATE    File Universal Id          File Name                Disk group
      --  -----    -----------------          ---------                ----------
      1. ONLINE   123456789abab (o/192.168.73.102/DATA_CD_00_ra01cel07) [DBFS_DG]
      2. ONLINE   123456789cdcd (o/192.168.73.103/DATA_CD_00_ra01cel08) [DBFS_DG]
      3. ONLINE   123456789efef (o/192.168.73.100/DATA_CD_00_ra01cel05) [DBFS_DG]
      Located 3 voting disk(s).
      
    2. Move the voting disks to another disk group:

      # ./crsctl replace votedisk +DATA
      
      Successful addition of voting disk 2345667aabbdd.
      ...
      CRS-4266: Voting file(s) successfully replaced
      
    3. Return the voting disks to the original location. This example returns them to DBFS_DG:

      # ./crsctl replace votedisk +DBFS_DG
      
    4. Repeat the crsctl command to delete the server from the cluster.

  7. Update the Oracle inventory:

    $ cd $ORACLE_HOME/oui/bin
    $ ./runInstaller -updateNodeList ORACLE_HOME=/u01/app/12.1.0/grid \
      "CLUSTER_NODES=list_of_working_servers" CRS=TRUE
    
  8. Verify that the server was deleted successfully:

    $ cluvfy stage -post nodedel -n failed_server -verbose
    
    Performing post-checks for node removal
    Checking CRS integrity...
    The Oracle clusterware is healthy on node "ra01db02"
    CRS integrity check passed
    Result:
    Node removal check passed
    Post-check for node removal was successful.
    

See Also:

Oracle Real Application Clusters Administration and Deployment Guide for information about deleting a compute server from a cluster