This chapter describes how to extend an existing Oracle Real Application Clusters (Oracle RAC) home to other nodes and instances in the cluster, and delete Oracle RAC from nodes and instances in the cluster. This chapter provides instructions for Windows systems.
Notes:
In this chapter, the entries forGrid_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 Chapter 8, "Cloning Oracle RAC to Nodes in a New Cluster".
This chapter includes the following topics:
Notes:
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.
See Also:
Oracle Database 2 Day + Real Application Clusters Guide for additional information about configuring a new Oracle RAC cluster or adding to and deleting nodes from an existing Oracle RAC cluster.Before beginning this procedure, ensure that your existing nodes have the correct path to the Grid_home
and that the Oracle_home
environment variables are set correctly.
See Also:
Oracle Clusterware Administration and Deployment Guide for information about adding nodes to a clusterTo add Oracle RAC database instances to nodes that already have Oracle Clusterware 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.
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.
If you store your policy-managed database on Oracle Automatic Storage Management (Oracle ASM), Oracle Managed Files is enabled, and if there is space in a server pool for node2
, then crsd
adds the Oracle RAC database instance to node2
and no further action is necessary. If Oracle Managed Files is not enabled, then you must manually add undo and redo logs.
If there is no space in a server pool, then node2
moves into the Free server pool. Use the srvctl modify srvpool
command to increase the cardinality of the server pool to accommodate node2
, after which time node2
moves out of the Free server pool and into the modified server pool, and crsd
adds the Oracle RAC database instance to node2
.
If you have an administrator-managed database, then add a new instance on node2
as described in "Adding Administrator-Managed Oracle RAC Database Instances to Target Nodes".
If you have a shared Oracle home that is shared using Oracle Automatic Storage Management Cluster File System (Oracle ACFS), then do the following to extend the Oracle database home to node2
:
Start the Oracle ACFS resource on the new node by running the following command as root
from the Grid_home
\bin
directory:
srvctl start filesystem -d volume_device_name [-n node_name]
Note:
Make sure the Oracle ACFS resources, including Oracle ACFS registry resource and Oracle ACFS file system resource where the Oracle home is located, are online on the newly added node.Run the following command as the user that 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" LOCAL_NODE="node2"
ORACLE_HOME_NAME="home_name" -cfs
Navigate to the Oracle_home
\addnode
directory on node1
and run the addnode.bat
script as the user that installed Oracle RAC using the following syntax:
addnode.bat -noCopy "CLUSTER_NEW_NODES={node2}"
Note:
Use the-noCopy
option because the Oracle home on the destination node is already fully populated with software.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:
Run the srvctl config database -db
db_name
command on an existing node in the cluster to obtain the mount point information.
Mount the file system that hosts the Oracle RAC database home.
Run the following command as the user that 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"
Update the Oracle Inventory as the user that 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.You can use either Oracle Enterprise Manager or DBCA to add Oracle RAC database instances to the target nodes. To add a database instance to a target node with Oracle Enterprise Manager, see the Oracle Database 2 Day + Real Application Clusters Guide for complete information.
This section describes using DBCA to add Oracle RAC database instances.
These tools guide 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, as described in Chapter 5, "Workload Management with Dynamic Database Services".
To add a database instance to a target node using DBCA in interactive mode, perform the following steps:
Ensure that your existing nodes have the Oracle home environment variable set correctly.
Start DBCA by entering dbca
at the system prompt from the Oracle_home
\bin
directory on an existing node.
DBCA performs certain CVU checks while running. However, you can also run CVU from the command line to perform various verifications.
See Also:
Oracle Clusterware Administration and Deployment Guide for more information about CVUOn the Database Operations page, select Instance Management, click Next, and DBCA displays the Instance Management page.
Select Add Instance and click Next. DBCA displays the List of Cluster Databases page that shows the databases and their current status, such as ACTIVE
or INACTIVE
.
From the List of Cluster Databases page, select the active Oracle RAC database to which you want to add an instance. Click Next and DBCA displays the List of Cluster Database Instances page showing the names of the existing instances for the Oracle RAC database that you selected.
Click Next to add a new instance and DBCA displays the Adding an Instance page.
On the Adding an Instance page, enter the instance name in the field at the top of this page if the instance name that 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 DBCA prompts you for that password on this page.Review the information on the Summary Page and click Finish to initiate instance addition operation. DBCA displays a progress dialog showing DBCA performing the instance addition operation.
Creating the OraMTS Service for Microsoft Transaction Server
Oracle Services for Microsoft Transaction Server (OraMTS) permit Oracle databases to be used as resource managers in Microsoft application-coordinated transactions. OraMTS acts as a proxy for the 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. Starting with Oracle Database 12c, you must use a configuration tool to create this service.
Create the OraMTS service after adding a node or performing a software-only installation for Oracle RAC, as follows:
Open a command window.
Change directories to %ORACLE_HOME%\bin
.
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
See Also:
Oracle Services for Microsoft Transaction Server Developer's Guide for Microsoft Windows for more information about OraMTS, which allows Oracle databases to be used as resource managers in distributed transactionsTo remove 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 you want to delete, then proceed to "Removing Oracle RAC".This section includes the following procedures to delete nodes from clusters in an Oracle RAC environment:
The procedures for deleting instances are different for policy-managed and administrator-managed databases. Deleting a policy-managed database instance involves reducing the size of the server pool in which the database instance resides. Deleting an administrator-managed database instance involves using DBCA to delete the database instance.
Deleting Policy-Managed Databases
To delete a policy-managed database, decrease the size of the server pool in which a database instance resides. This effectively removes the instance without having to remove the Oracle RAC software from the node or the node from the cluster.
For example, you can delete a policy-managed database by running the following commands on any node in the cluster:
srvctl stop instance -db db_unique_name -node node_name srvctl relocate server -servers "server_name_list" -serverpool Free
The first command stops on the instance on a particular node and the second command moves the list of servers out of their current server pool and into the Free server pool.
See Also:
"Removing Oracle RAC" for information about removing the Oracle RAC software from a nodeDeleting Instances from Administrator-Managed Databases
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
See Also:
"Administering Services with SRVCTL"The procedure in this section explains how to use DBCA in interactive mode to delete an instance from an Oracle RAC database.
See Also:
Oracle Database 2 Day + Real Application Clusters Guide for information about how to delete a database instance from a target node with Oracle Enterprise ManagerTo delete an instance using DBCA in interactive mode, perform the following steps:
Verify there is a current backup of OCR.
Run the ocrconfig -showbackup
command to ensure there is a valid backup.
Start DBCA.
Start 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.
On the DBCA Operations page, select Instance Management, click Next, and DBCA displays the Instance Management page.
On the Instance Management page, select Delete Instance, click Next, and DBCA displays the List of Cluster Databases page.
Select an Oracle RAC database from which to delete an instance. Click Next and 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.
On the List of Cluster Databases page, select the Oracle RAC database from which to delete the instance, as follows:
On the List of Cluster Database Instances page, 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.
Click OK on the Confirmation dialog to proceed to delete the instance.
Click OK on the next Confirmation dialog to delete the instance and related Optimal Flexible Architecture (OFA) directory structure.
DBCA displays a progress dialog showing that DBCA is deleting the instance. During this operation, DBCA removes the instance and the instance's Oracle Net configuration.
Click No and exit DBCA or click Yes to perform another operation. If you click Yes, then DBCA displays the Operations page.
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;
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
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.
This procedure removes the Oracle RAC software from the node you are deleting from the cluster and updates inventories on the remaining nodes.
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:
srvctl disable listener -listener listener_name -node name_of_node_to_delete srvctl stop listener -listener listener_name -node name_of_node_to_delete
Run the following command from %ORACLE_HOME%\oui\bin
on the node that you are deleting to update the inventory on that node:
setup.exe -updateNodeList ORACLE_HOME=Oracle_home_location "CLUSTER_NODES={name_of_node_to_delete}" -local
Deinstall the Oracle home from the node that you are deleting by running the following command from the Oracle_home
\deinstall
directory:
deinstall -local
Run the following command from the Oracle_home
\oui\bin
directory on any one of the remaining nodes in the cluster to update the inventories of those nodes, specifying a comma-delimited list of remaining node names:
setup.exe -updateNodeList ORACLE_HOME=Oracle_home_location "CLUSTER_NODES={remaining_node_list}"
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.
After you delete the instance, you can begin the process of deleting the node from the cluster. You accomplish this by running scripts on the node you want to delete to remove the Oracle Clusterware installation and you run scripts on the remaining nodes to update the node list.
See Also:
Oracle Clusterware Administration and Deployment Guide for information about deleting nodes from the cluster
Oracle Grid Infrastructure Installation Guide for Microsoft Windows x64 (64-Bit) for more information about removing Oracle Clusterware and Oracle ASM