12 Adding and Deleting Oracle RAC from Nodes on Windows Systems

Use these procedures to extend an existing Oracle Real Application Clusters (Oracle RAC) home on Microsoft Windows to other nodes and instances in the cluster, or delete Oracle RAC from nodes and instances in the cluster.

In these topics, the entries for Grid_home refer to the full path name for the Oracle Grid Infrastructure home, and the entries for Oracle_home refer to substitutes for environment variables for the Oracle home with Oracle RAC.

If your goal is to clone an existing Oracle RAC home to create multiple new Oracle RAC installations across the cluster, then use the cloning procedures that are described in "Cloning Oracle RAC to Nodes in a New Cluster".

Note:

  • Ensure that you have a current backup of Oracle Cluster Registry (OCR) before adding or deleting Oracle RAC by running the ocrconfig -showbackup command.

  • For all of the add node and delete node procedures, temporary directories such as %TEMP% or C:\Temp should not be shared directories. If your temporary directories are shared, then set your temporary environment variable, such as %TEMP%, to a location on a local node. In addition, use a directory path that exists on all of the nodes.

Adding Oracle RAC to Nodes with Oracle Grid Infrastructure Installed

To add Oracle Real Application Clusters to Microsoft Windows nodes that are Oracle Clusterware cluster nodes, review these procedures.

Before beginning these procedures, ensure that your existing nodes have the correct path to the Grid_home and that the Oracle_home environment variables are set correctly.

Extending the Oracle RAC Home On an Existing Node

To add Oracle RAC database instances to nodes that already have Oracle Grid Infrastructure installed, you must extend the Oracle RAC home that is on an existing node (node1 in this procedure) of the cluster to the target nodes.

  1. Navigate to the Oracle_home\addnode directory on node1 and run the addnode.bat script using the following syntax, where node2 is the name of the node you are adding:

    addnode.bat "CLUSTER_NEW_NODES={node2}"

    To run this command in silent mode:

    addNode.bat -silent "CLUSTER_NEW_NODES={node2}"

    For the Oracle home directory you use, if an Oracle home user was specified when the Oracle Database software was installed, then OUI requires the password for the Oracle home user. OUI checks the wallet (stored in the OCR) for the user and extracts the password from there. If the user information is not contained in the wallet, then the addnode.bat script generates an error unless you specify the -promptPasswd flag on the command line.

Creating a Mount Point for the Oracle Home On a Shared File System

If you have a shared Oracle home on a shared file system that is not Oracle ACFS, then you must first create a mount point for the Oracle RAC database home on the target node, mount and attach the Oracle RAC database home, and update the Oracle Inventory, as follows:

  1. Run the srvctl config database -db db_name command on an existing node in the cluster to obtain the mount point information.

  2. Mount the file system that hosts the Oracle RAC database home.

  3. Run the following command as the user who installed Oracle RAC from the Oracle_home\oui\bin directory on the node you are adding to add the Oracle RAC database home:

    setup.exe -attachHome ORACLE_HOME="ORACLE_HOME" "CLUSTER_NODES=
      local_node_name}" LOCAL_NODE="node_name" ORACLE_HOME_NAME="home_name"
  4. Update the Oracle Inventory as the user who installed Oracle RAC, as follows:

    setup.exe -updateNodeList ORACLE_HOME=mount_point_path "CLUSTER_NODES={node_list}"

    In the preceding command, node_list refers to a list of all nodes where the Oracle RAC database home is installed, including the node you are adding.

Note:

Oracle recommends that you back up your voting disk and Oracle Cluster Registry (OCR) files after you complete the node addition process.

Adding Administrator-Managed Oracle RAC Database Instances to Target Nodes

Learn about how to use Oracle DBCA to add Oracle RAC database instances.

To add Oracle RAC database instances to the target nodes. you can use either Oracle Enterprise Manager or Oracle Database Configuration Assistant (Oracle DBCA) . These topics describe using Oracle DBCA

About Using Oracle DBCA to Add Oracle RAC Instances

When you use Oracle Database Configuration Assistant (Oracle DBCA) to add Oracle Real Application Clusters instances to Oracle Clusterware, it helps you to complete more than only a database deployment.

Oracle DBCA guides you through the following tasks:

  • Creating a new database instance on each target node

  • Creating and configuring high availability components

  • Creating the Oracle Net configuration for a non-default listener from the Oracle home

  • Starting the new instance

  • Creating and starting services if you entered services information on the Services Configuration page

After adding the instances to the target nodes, you should perform any necessary service configuration procedures.

Using Oracle DBCA in Interactive Mode to Add Database Instances to Target Nodes

In these procedures, you first use Oracle DBCA to add a database instance to a target node, and then create a service for Oracle Services for Microsoft Transaction Server (OraMTS).

Adding a Database Instance To Target Nodes

To add a database instance to a target node using Oracle DBCA in interactive mode, perform the following steps:

  1. Ensure that your existing nodes have the Oracle home environment variable set correctly.

  2. Start Oracle DBCA by entering dbca at the system prompt from the Oracle_home\bin directory on an existing node.

    Oracle DBCA performs certain CVU checks while running. However, you can also run CVU from the command line to perform various verifications.

  3. On the Database Operations page, select Instance Management, click Next, and Oracle DBCA displays the Instance Management page.

  4. Select Add Instance and click Next. Oracle DBCA displays the List of Cluster Databases page that shows the databases and their current status, such as ACTIVE or INACTIVE.

  5. From the List of Cluster Databases page, select the active Oracle RAC database to which you want to add an instance. Click Next and Oracle DBCA displays the List of Cluster Database Instances page showing the names of the existing instances for the Oracle RAC database that you selected.

  6. Click Next to add a new instance and Oracle DBCA displays the Adding an Instance page.

  7. On the Adding an Instance page, enter the instance name in the field at the top of this page if the instance name that Oracle DBCA provides does not match your existing instance naming scheme. Then select the new node name from the list.

    Note:

    If you installed the Oracle home with the Oracle Home User option, then Oracle DBCA prompts you for that password on this page.

  8. Review the information on the Summary Page and click Finish to initiate instance addition operation. Oracle DBCA displays a progress dialog showing Oracle DBCA performing the instance addition operation.

Creating the OraMTS Service for Microsoft Transaction Server

Oracle Services for Microsoft Transaction Server (OraMTS) permits Oracle Database to be used as a resource manager in Microsoft application-coordinated transactions. OraMTS acts as a proxy for Oracle Database to the Microsoft Distributed Transaction Coordinator (MSDTC). As a result, OraMTS provides client-side connection pooling and allows client components that leverage Oracle to participate in promotable and distributed transactions. In addition, OraMTS can operate with Oracle databases running on any operating system, given that the services themselves are run on Windows.

On releases earlier than Oracle Database 12c, the OraMTS service was created as part of a software-only installation. With releases after Oracle Database 12c, you must use a configuration tool to create this service.

To create the OraMTS service after adding a node or performing a software-only installation for Oracle RAC, complete this procedure:

  1. Open a command window.

  2. Change directories to %ORACLE_HOME%\bin.

  3. Run the OraMTSCtl utility to create the OraMTS Service, where host_name is a list of nodes on which the service should be created:

    C:\..bin> oramtsctl.exe -new -host host_name

Using Oracle DBCA in Silent Mode to Add Database Instances to Target Nodes

Add instances to nodes on which you have extended an Oracle Clusterware home and an Oracle Database home.

Use Oracle DBCA in silent mode with the following syntax:

dbca -silent -addInstance -nodeName node_name -gdbName gdb_name
[-instanceName instance_name -sysDBAUserName sysdba -sysDBAPassword password]

Perform any necessary service configuration procedures.

Deleting Oracle RAC from a Cluster Node

To remove Oracle Real Application Clusters (Oracle RAC) from a cluster node, you must delete the database instance and the Oracle RAC software before removing the node from the cluster.

Note:

If there are no database instances on the node that you want to delete, then remove Oracle RAC.

Deleting Instances from Administrator-Managed Databases

Deleting an administrator-managed database instance involves using Oracle Database Configuration Assistant (Oracle DBCA) to delete the database instance.

Note:

Before deleting an instance from an Oracle RAC database using SRVCTL, do the following:

  • If you have services configured, then relocate the services

  • Modify the services so that each service can run on one of the remaining instances

  • Ensure that the instance to be removed from an administrator-managed database is neither a preferred nor an available instance of any service

Using Oracle DBCA in Silent Mode to Delete Instances from Nodes

You can use Oracle DBCA in silent mode to delete a database instance from a node.

To remove an instance, use the following command syntax. Provide a node name only if you are deleting an instance from a node other than the one on where Oracle DBCA is running as shown in the following example where password is the SYSDBA password:

dbca -silent -deleteInstance [-nodeName node_name] -gdbName gdb_name
-instanceName instance_name [-sysDBAUserName sysdba] [-sysDBAPassword password]
The following table describes the values that you need to supply for each variable.

Table 12-1 Variables in the Oracle DBCA Silent Mode Syntax

Variable Description
node_name

The node on which you want to add (or delete) the instance.

gdb_name

Global database name.

instance_name

Name of the instance. Provide an instance name only if you want to override the Oracle naming convention for Oracle RAC instance names.

sysdba

Name of the Oracle user with SYSDBA privileges.

password

Password for the SYSDBA user.

At this point, you have accomplished the following:

  • Deregistered the selected instance from its associated Oracle Net Services listeners

  • Deleted the selected database instance from the instance's configured node

  • Removed the Oracle Net configuration

  • Deleted the Oracle Flexible Architecture directory structure from the instance's configured node.

Using Oracle DBCA in Interactive Mode to Delete Instances from Nodes

To delete an Oracle Real Application Clusters (Oracle RAC) instance using Oracle Database Configuration Assistasnt (Oracle DBCA) in interactive mode, complete this procedure. /

  1. Verify there is a current backup of OCR.

    Run the ocrconfig -showbackup command to ensure there is a valid backup.

  2. Start Oracle DBCA.

    Start Oracle DBCA on a node other than the node that hosts the instance that you want to delete. The database and the instance that you plan to delete should continue to be started and running during this step.

  3. On the Oracle DBCA Operations page, select Instance Management, click Next, and Oracle DBCA displays the Instance Management page.

  4. On the Instance Management page, select Delete Instance, click Next, and Oracle DBCA displays the List of Cluster Databases page.

  5. Select an Oracle RAC database from which to delete an instance. Click Next and Oracle DBCA displays the List of Cluster Database Instances page. The List of Cluster Database Instances page shows the instances that are associated with the Oracle RAC database that you selected and the status of each instance.

  6. On the List of Cluster Databases page, select the Oracle RAC database from which to delete the instance, as follows:

    1. On the List of Cluster Database Instances page, Oracle DBCA displays the instances that are associated with the Oracle RAC database that you selected and the status of each instance. Select the cluster database from which you will delete the instance. Click Finish.

    2. Click OK on the Confirmation dialog to proceed to delete the instance.

    3. Click OK on the next Confirmation dialog to delete the instance and related Optimal Flexible Architecture (OFA) directory structure.

      Oracle DBCA displays a progress dialog showing that Oracle DBCA is deleting the instance. During this operation, Oracle DBCA removes the instance and the instance's Oracle Net configuration.

      Click No and exit Oracle DBCA or click Yes to perform another operation. If you click Yes, then Oracle DBCA displays the Operations page.

  7. Verify that the dropped instance's redo thread has been removed using SQL*Plus to query the V$LOG view from an existing instance. If the redo thread is not disabled, then disable the thread. For example:

    SQL> ALTER DATABASE DISABLE THREAD 2;
    
  8. Verify that the instance has been removed from OCR by running the following command, where db_unique_name is the name of the database:

    srvctl config database -db db_unique_name
    
  9. If you are deleting more than one node, then repeat these steps to delete the instances from all the nodes that you are going to delete.

Removing Oracle RAC

This procedure removes the Oracle RAC software from the node you are deleting from the cluster and updates inventories on the remaining nodes.

  1. If there is a listener in the Oracle RAC home on the node you are deleting, then you must disable and stop it before deleting the Oracle RAC software. Run the following commands on any node in the cluster, specifying the name of the listener and the name of the node you are deleting:

    C:\srvctl disable listener -listener listener_name -node name_of_node_to_delete
    C:\srvctl stop listener -listener listener_name -node name_of_node_to_delete
  2. Deinstall the Oracle home from the node that you are deleting by running the following command from the Oracle_home\deinstall directory:

    deinstall -local

If you have a shared Oracle RAC home, then append the -cfs option to the command example in this step and provide a complete path location for the cluster file system.

Deleting Nodes from the Cluster

After you delete the instance, you can begin the process of deleting the node from the cluster.

To delete a node from the cluster, you run scripts on the node that you want to delete to remove the Oracle Grid Infrastructure installation. You then run scripts on the remaining nodes to update the node list.