Oracle Clusterware Shutdown and Startup

You can use a crsctl command as follows to stop Oracle Clusterware and its related resources on a specific node:
crsctl stop crs

You can use a crsctl command as follows to start Oracle Clusterware and its related resources on a specific node:
crsctl start crs

Enabling and Disabling Oracle Clusterware Daemons
When the Oracle Clusterware daemons are enabled, they start automatically at the time the node is started. To prevent the daemons from starting during the boot process, you can disable them using crsctl commands. You can use crsctl commands as follows to enable and disable the startup of the Oracle Clusterware daemons. Run the following command to enable startup for all of the Oracle Clusterware daemons:
crsctl enable crs

Run the following command to disable the startup of all of the Oracle Clusterware daemons:
crsctl disable crs

Diagnostics Collection Script
Use the diagcollection.pl script to collect diagnostic information from an Oracle Clusterware installation. The diagnostics provide additional information so that Oracle Support can resolve problems. Run this script from the following location:
CRS_HOME/bin/diagcollection.pl

Checking the Health of the Clusterware
Use the crsctl check command to determine the health of your clusterware as in the following example:
crsctl check crs

This command displays the status of the CSSD, EVMD, and CRSD processes. Run the following command to determine the health of individual daemons where daemon is crsd, cssd or evmd:
crsctl check daemon

The Cluster Ready Services Daemon (crsd) Log Files
Log files for the CRSD process (crsd) can be found in the following directories:
CRS home/log/hostname/crsd

Oracle Cluster Registry (OCR) Log Files
The Oracle Cluster Registry (OCR) records log information in the following location:
CRS Home/log/hostname/client

Cluster Synchronization Services (CSS) Log Files
You can find CSS information that the OCSSD generates in log files in the following locations:
CRS Home/log/hostname/cssd

Event Manager (EVM) Log Files
Event Manager (EVM) information generated by evmd is recorded in log files in the following locations:
CRS Home/log/hostname/evmd

RACG Log Files
The Oracle RAC high availability trace files are located in the following two locations:
CRS home/log/hostname/racg
$ORACLE_HOME/log/hostname/racg

Core files are in the sub-directories of the log directories. Each RACG executable has a sub-directory assigned exclusively for that executable. The name of the RACG executable sub-directory is the same as the name of the executable.
Using the OCRDUMP Utility to View Oracle Cluster Registry Content
This section explains how to use the OCRDUMP utility to view OCR content for troubleshooting. The OCRDUMP utility enables you to view the OCR contents by writing OCR content to a file or stdout in a readable format.
OCRDUMP Utility Examples
The following ocrdump utility examples extract various types of OCR information and write it to various targets:
ocrdump

Writes the OCR content to a file called OCRDUMPFILE in the current directory.
ocrdump MYFILE

Writes the OCR content to a file called MYFILE in the current directory.
ocrdump -stdout -keyname SYSTEM

Writes the OCR content from the subtree of the key SYSTEM to stdout.
ocrdump -stdout -xml

Writes the OCR content to stdout in XML format.
Sample OCRDUMP Utility Output
The following OCRDUMP examples show the KEYNAME, VALUE TYPE, VALUE, permission set (user, group, world) and access rights for two sample runs of the ocrdump command. The following shows the output for the SYSTEM.language key that has a text value of AMERICAN_AMERICA.WE8ASCII37.
[SYSTEM.language]
ORATEXT : AMERICAN_AMERICA.WE8ASCII37
SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_READ, OTHER_PERMISSION : PROCR_READ, USER_NAME : user, GROUP_NAME : group
}

Using the OCRCHECK Utility
The OCRCHECK utility displays the version of the OCR's block format, total space available and used space, OCRID, and the OCR locations that you have configured. OCRCHECK performs a block-by-block checksum operation for all of the blocks in all of the OCRs that you have configured. It also returns an individual status for each file as well as a result for the overall OCR integrity check. The following is a sample of the OCRCHECK output:
Status of Oracle Cluster Registry is as follows :
Version : 2
Total space (kbytes) : 262144
Used space (kbytes) : 16256
Available space (kbytes) : 245888
ID : 1918913332
Device/File Name : /dev/raw/raw1
Device/File integrity check succeeded
Device/File Name : /oradata/mirror.ocr
Device/File integrity check succeeded

Cluster registry integrity check succeeded

OCRCHECK creates a log file in the directory CRS_Home/log/hostname/client. To change amount of logging, edit the file CRS_Home/srvm/admin/ocrlog.ini.
Oracle Cluster Registry Troubleshooting
Problem Solution
Not currently using OCR mirroring and would like to.
Run the ocrconfig command with the -replace option as described.
An OCR failed and you need to replace it. Error messages in Enterprise Manager or OCR log file.
Run the ocrconfig command with the -replace option as described.
An OCR has a mis-configuration.
Run the ocrconfig command with the -repair option as described.
You are experiencing a severe performance effect from OCR processing or you want to remove an OCR for other reasons.
Run the ocrconfig command with the -replace option as described .
The Oracle Clusterware Commands
Command Description
crs_getperm
Inspects the permissions associated with a resource.
crs_profile
Creates, validates, deletes, and updates an Oracle Clusterware application profile
crs_register

Registers configuration information for an application with the OCR.
crs_relocate

Relocates an application profile to another node.
crs_setperm

Sets permissions associated with a resource.
crs_stat

Lists the status of an application profile.
crs_start

Starts applications that have been registered.
crs_stop

Stops an Oracle Clusterware application.
crs_unregister

Removes the configuration information for an application profile from the OCR.
Example of crs_getperm
To list the permissions associated with the postman application, use the following command:
crs_getperm postman

crs_stat
The crs_stat command provides status information for resources on the cluster nodes. To query resources with the crs_stat command, resource files must have read and execute permissions (r and x permissions on UNIX-based systems). An exception is the -g option, that anyone can use to verify whether a resource exists.
Resources are either ONLINE or OFFLINE as shown in the STATE attribute. An application resource in the ONLINE state is running successfully on a cluster node. This cluster node is shown indicating its state.
The TARGET value shows the state to which Oracle Clusterware attempts to set the resource. If the TARGET value is ONLINE and a cluster node fails, then Oracle Clusterware attempts to restart the application on another node if possible. If there is a condition forcing a resource STATE to be OFFLINE, such as a required resource that is OFFLINE, then the TARGET value remains ONLINE and Oracle Clusterware attempts to start the application or application resource once the condition is corrected.
A TARGET value for all non-application resources should be ONLINE unless the resource has a failure count higher than the failure threshold, in which case the TARGET is changed to OFFLINE. The Oracle Clusterware then treats the resource as if its STATE were OFFLINE. If the STATE is ONLINE and the TARGET is OFFLINE, then you can reset the target value to ONLINE using the crs_start command.
The following example displays the status information in a tabular form:
crs_stat -t

Name Type Target State Host
----------------------------------------------------------------
cluster_lockd application ONLINE ONLINE rac2
dhcp application OFFLINE OFFLINE

CRS—Oracle Clusterware Messages
CRS-184: Cannot communicate with the CRS daemon.
Cause: The CRS daemon on the local node is either not running or there was an internal communication error with the CRS daemon.
Action: Check if the CRS daemon process is running on the local node.
CRS-210: Could not find resource '%s'.
Cause: An attempt was made to operate on a resource that is not registered.
Action: Check if the resource is registered using crs_stat.
CRS-211: Resource '%s' has already been registered.
Cause: An attempt was made to register a resource that is already registered.
Action: Check if the resource is registered using crs_stat.
CRS-213: Could not register resource '%s'.
Cause: There was an internal error while registering the resource.
Action: Check the CRS daemon log file.
CRS-214: Could not unregister resource '%s'.
Cause: There was an internal error while unregistering the resource.
Action: Check the CRS daemon log file.
CRS-215: Could not start resource '%s'.
Cause: There was an internal error while starting the resource.
Action: Check the CRS daemon log file.
CRS-216: Could not stop resource '%s'.
Cause: There was an internal error while stopping the resource.
Action: Check the CRS daemon log file.
CRS-217: Could not relocate resource '%s'.
Cause: There was an internal error while relocating the resource.
Action: Check the CRS daemon log file.
CRS-218: Could not restart the resource '%s' on the original node.
Cause: There was an internal error while restarting the resource.
Action: Check the CRS daemon log file.
CRS-219: Could not update resource '%s'.
Cause: There was an internal error while updating the resource.
Action: Check the CRS daemon log file.
CRS-220: Resource '%s' has invalid resource profile.
Cause: Invalid attributes in the resource profile.
Action: Run crs_profile -validate to identify the invalid attributes.
CRS-221: Resource '%s''s action script cannot be found.
Cause: The action script has been deleted from the file system.
Action: Run crs_stat -p to determine the action script location and to check for its existence.
CRS-223: Resource '%s' has placement error.
Cause: There was no host available to on which failover/start the resource based on the Placement Policy for the resource.
Action: Check the target host for the resource and restart the resource using the crs_start command.
CRS-230: Member '%s' is not in the cluster.
Cause: The hostname was not found in the cluster.
Action: Check the hostnames in the cluster.
CRS-232: Cluster member is down. Cannot perform operation.
Cause: The node on which CRS is attempting to start the resource is down.
Action: Start the node and retry the operation.
CRS-233: Resource or relatives are currently involved with another operation.
Cause: Another CRS daemon was operating on the same resource.
Action: Wait for a minute and try the command or operation again.
CRS-253: CRS configuration error, the CRS default directory is not set in OCR.
Cause: The OCR key which contains the user default CRS key is not initialised.
Action: Check the CRS configuration. If necessary reinstall CRS.
CRS-254: Authorization failure.
Cause: The user permissions were insufficient to operate on the resource.
Action: Check the permissions associated with the resource using crs_getperm.
CRS-255: CRSD is not running in privileged mode. Insufficient permissions to run this command.
Cause: The CRS daemon was not running as the privileged user.
Action: Check if the CRS daemon is running as root (Unix) or Administrator (Windows).
CRS-256: Username conflicts with the owner of the resource.
Cause: An attempt was made to give separate user level permissions for the owner of the resource.
Action: Check the owner of the resource and the user being given permissions.
CRS-257: Groupname conflicts with the primary group of the resource.
Cause: An attempt was made to give separate group level permissions for the primary group of the resource.
Action: Check the primary group of the resource and the group being given permissions.
CRS-258: Invalid ACL string format.
Cause: CRS-258: Invalid ACL string format.
Action: Check the syntax of the permission string (ACL).
CRS-259: Owner of the resource does not belong to the group.
Cause: The owner of the resource does not belong to the expected group.
Action: If this resource is owned by the root user, check if the root user belongs to the DBA group.
CRS-402: Could not make safe dir('%s').
Cause: Unable to create safe directory('%s').
Action: Please check if you have proper permissions and sufficient space on the disk to create the directory.
CRS-403: Could not chdir to safe dir('%s').
Cause: Unable to change directory to safe dir('%s').
Action: Please check if safe dir exists and if you have proper permissions.
CRS-413: Could not initialize the CSS context.
Cause: Unable to communicate with the cluster services.
Action: Verify that the CSS Daemon is properly configured and is running.
CRS-414: Could not establish EVM connection.
Cause: Unable to communicate with EVM daemon.
Action: Run the 'crsctl check evmd' command to determine whether EVM daemon is properly configured and is running.
CRS-451: CRS configuration error, unable to initialize OCR.
Cause: The OCR that contains information about the CRS configuration is unavailable.
Action: Check the CRS configuration. If necessary reinstall CRS.
CRS-452: CRS configuration error, unable to find CRSD Connection Information in OCR.
Cause: The OCR key which contains the user default CRSD connection is not initialised.
Action: Check the CRS configuration. If necessary reinstall CRS.
CRS-453: CRS configuration error, unable to find Instance Information in OCR.
Cause: The OCR key which contains the Instance's information is not initialised.
Action: Add the instance using srvctl.
CRS-471: Node number is not found.
Cause: Cluster Services is unable to retrieve the node name.
Action: Verify your cluster installation, including any vendor cluster ware. If necessary reinstall the cluster.
CRS-472: Node name is not found.
Cause: Cluster Services is unable to retrieve the node name.
Action: Verify your cluster installation, including any vendor cluster ware. If necessary reinstall the cluster.
CRS-1005: Failed to get required resources.
Cause: There was an internal error while evaluating the required resources for the subject resource.
Action: Check if the status of any resource is UNKONOWN using crs_stat -t.
CRS-1006: No more members to consider.
Cause: There was no host found on which to start the resource based on the placement policy.
Action: Check the placement policy and the required resources for the subject resource.
CRS-1007: Failed after successful dependency consideration.
Cause: There was no host found on which to start the resource based on the placement policy.
Action: Check the placement policy and the required resources for the subject resource.
CRS-1009: Resource '%s' is already running on member '%s'.
Cause: An attempt was made to start a resource on a host while it is already running on that host.
Action: This is an insignificant error. Check the operation being performed. 1011, 0, Trying to relocate to a dead member.
CRS-2001: User does not have permission to start CRSD.
Cause: Unable to start CRSD due to insufficient permissions.
Action: Start CRSD as a privileged user.
CRS-2007: Could not communicate with EVM.
Cause: Unable to communicate with EVM daemon.
Action: Run the 'crsctl check evmd' command to determine whether EVM daemon is properly configured and is running.
For example, to export the OCR contents to a binary file, use the ocrconfig command with the following syntax where file_name is the file to which you want to export the OCR contents as follows:
ocrconfig -export file_name

Server Control Utility Reference

This chapter describes how to administer Oracle Real Application Clusters (RAC) databases and instances using the Server Control Utility (SRVCTL)
Overview of SRVCTL for Administering Real Application Clusters
The Server Control (SRVCTL) utility is installed on each node by default. You can use SRVCTL to start and stop the database and instances, manage configuration information, and to move or remove instances and services. You can also use SRVCTL to add services. SRVCTL also manages configuration information.
Some SRVCTL operations store configuration information in the Oracle Cluster Registry (OCR). SRVCTL performs other operations, such as starting and stopping instances, by sending requests to the Oracle Clusterware process (CRSD), which then starts or stops the Oracle Clusterware resources.
Guidelines for Using SRVCTL in Real Application Clusters
Guidelines for using SRVCTL are:
● To use SRVCTL to change your RAC database configuration, log in to the database as the oracle user. Members of the DBA group can start and stop the database.
● Only use the version of SRVCTL that is provided with Oracle Database 10g on RAC databases that are created or upgraded for Oracle Database 10g.
● Always use SRVCTL from the Oracle_home of the database that you are administering.
● SRVCTL does not support concurrent executions of commands on the same object. Therefore, only run one SRVCTL command at a time for each database, service, or other object.
Obtaining Command-Line Help for SRVCTL
To see help for all SRVCTL commands, from the command line enter:
srvctl -h

SRVCTL Cluster Database Configuration Tasks
The database configuration tasks are:
● Add, modify, and delete cluster database configuration information.
● Add an instance or a service to, and delete an instance or service from the configuration of a cluster database.
● Move instances and services in a cluster database configuration and modify service configurations.
● Set and unset the environment for an instance or service in a cluster database configuration.
● Set and unset the environment for an entire cluster database in a cluster database configuration.
SRVCTL General Cluster Database Administration Tasks
The general database administration tasks are:
● Start and stop cluster databases
● Start and stop cluster database instances
● Start, stop, and relocate cluster database services
● Obtain statuses of cluster databases, cluster database instances, or cluster database services
SRVCTL Node-Level Tasks
The node-level tasks are:
● Adding and deleting node level applications.
● Setting and unsetting the environment for node-level applications.
● Administering node applications.
● Administering ASM instances.
● Starting and stopping a group of programs that includes virtual IP addresses, Listeners, Oracle Notification Services, and Oracle Enterprise Manager agents (for maintenance purposes).
SRVCTL Command Reference
Command Description
srvctl add

Adds the node applications, database, database instance, ASM instance, or service.
srvctl remove

Removes the node applications, database, database instance, ASM instance, or service.
srvctl config

Lists the configuration for the node applications, database, ASM instance, or service.
srvctl enable

Enables the database, database instance, ASM instance, or service.
srvctl disable

Disables the database, database instance, ASM instance, or service.
srvctl start

Starts the node applications, database, database instance, ASM instance, or service.
srvctl stop

Stops the node applications, database, database instance, ASM instance, or service.
srvctl modify

Modifies the node applications, database, database instance, or service configuration.
srvctl relocate

Relocates the service from one instance to another.
srvctl status

Obtains the status of the node applications, database, database instance, ASM instance, or service.
srvctl getenv

Displays the environment variable in the configuration for the node applications, database, database instance, or service.
srvctl setenv and unsetenv

Sets and unsets the environment variable in the configuration for the node applications, database, database instance, or service.
SRVCTL Objects (Nouns) and Abbreviations

Object Noun Name

Abbreviation

Purpose
asm

asm

To add, configure, enable, start, obtain the status of, stop, disable, and remove ASM instances.
database

db

To add, configure, modify, manage environment variables for, enable, start, obtain the status of, stop, disable, and remove databases.
instance

inst

To add, configure, modify, manage environment variables for, enable, start, obtain the status of, stop, and remove database instances.
nodeapps

no abbreviation

To add, configure, modify, manage environment variables for, start, obtain the status of, stop, and remove node applications.
service

serv

To add, configure, modify, manage environment variables for, enable, start, obtain the status of, relocate, disable, stop, and remove services from your cluster database.

srvctl add
The SRVCTL add command adds the configuration and the Oracle Clusterware applications to the OCR for the cluster database, named instances, named services, or for the named nodes. To perform srvctl add operations, you must be logged in as the database administrator and be the Oracle account owner on UNIX-based systems, or you must be logged on as a user with Administrator privileges on Windows-based systems.
When adding an instance, the name that you specify with -i must match the ORACLE_SID parameter. The database name given with -d db_unique_name must match the DB_UNIQUE_NAME initialization parameter setting. If DB_UNIQUE_NAME is unspecified, then match the DB_NAME initialization parameter setting. The default setting for DB_UNIQUE_NAME uses the setting for DB_NAME. Also, the domain name given with -m db_domain must match the DB_DOMAIN setting.
srvctl add Summary

Command

Description
srvctl add database

Adds a database and configuration.
srvctl add instance

Adds one or more instances and configurations.
srvctl add service

Adds services.
srvctl add nodeapps

Adds node applications.
srvctl add asm

Adds ASM instances.

srvctl add database
Adds a database configuration to your cluster database configuration.
srvctl add database Options

Syntax

Description
-d db_unique_name

Unique name for the database.
-o oracle_home

The Oracle home for the database.
-m domain_name

The Domain for the database.
-p spfile

The server parameter file for the database.
-A addr_str

The database cluster alias (name|ip/netmask[/if1[|if2|...]]).
-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY}

The role of the database (primary, physical standby, or logical standby).
-s start_options

Startup options for the database.
-n db_name

The name of the database, where it is different from the unique name given by the -d option.

Example
An example of this command is:
srvctl add database -d crm -o /ora/ora10
srvctl add instance
Adds a configuration for an instance to your cluster database configuration.
Syntax and Options
Use the srvctl add instance command with the following syntax:
srvctl add instance -d db_unique_name -i inst_name -n node_name
srvctl add instance Options

Option

Description
-d db_unique_name

Unique name for the database.
-i inst_name

The instance name.
-n node_name

The node name.

Examples
Examples of this command are:
srvctl add instance -d crm -i crm01 -n gm01
srvctl add instance -d crm -i crm02 -n gm02
srvctl add instance -d crm -i crm03 -n gm03

srvctl add asm
Adds a record for an ASM instance to the specified node.
Syntax and Options
Use the srvctl add asm command with the following syntax:
srvctl add asm -n node_name -i asm_instance_name -o oracle_home

srvctl add asm Options

Option

Description
-n node_name

Node name.
-i asm_instance_name

The ASM instance name.
-o oracle_home

Oracle home for the cluster database.


Example
An example of this command is:
srvctl add asm -n crmnode1 -i asm1 -o /ora/ora10
srvctl config
The SRVCTL config command displays the configuration stored in the OCR.

srvctl config Summary

Command

Description
srvctl config database

Displays the configuration information of the cluster database.
srvctl config service

Displays the configuration information for the services.
srvctl config nodeapps

Displays the configuration information for the node applications.
srvctl config asm


Displays the configuration for the ASM instances on the node.
srvctl config listener


Displays a list of configured Listeners that are registered with Oracle Clusterware on a given node.

srvctl config database
Displays the configuration for a RAC database or lists all configured databases.
Syntax and Options
Use the srvctl config database command with the following syntax:
srvctl config database [-d db_unique_name [-a] [-t]]

srvctl config database Options

Option

Description
-d db_unique_name

Unique name for the database
-a

Additional attributes
-t

Display sample TNS entries


Examples
An example of this command to list all database is:
srvctl config database

An example of this command to show sample TNS entries for a specific database is:
srvctl config database -d db_erp

srvctl config asm
Displays the configuration for the ASM instances.
Syntax and Options
Use the srvctl config asm command with the following syntax:
srvctl config asm -n node_name

The only option available for this command is -n to specify the node name.
Example
An example of this command is:
srvctl config asm -n mynode1

srvctl config listener
Displays a list of configured Listeners that are registered with Oracle Clusterware on a given node.
Syntax and Options
Use the srvctl config listener command with the following syntax:
srvctl config listener -n node_name

The only option available for this command is -n to specify the node name.
Example
An example of this command is:
srvctl config listener -n mynode1

srvctl enable
The SRVCTL enable command enables the named object so that it can run under Oracle Clusterware for automatic startup, failover, or restart. The Oracle Clusterware application supporting the object may be up or down to use this function. Enable is the default value. If the object is already enabled, then the command is ignored. Enabled objects can be started, and disabled objects cannot be started.
srvctl enable Summary

Command

Description
srvctl enable database

Enables the database.
srvctl enable instance

Enables the instance.
srvctl enable service

Enables a service.
srvctl enable asm

Enables an ASM instance.


srvctl enable database
Enables the Oracle Clusterware resources for a database and enables the database's instances if the database was previously disabled.
Syntax and Options
Use the srvctl enable database command with the following syntax:
srvctl enable database -d db_unique_name

The only option available for this command is -d to specify the database name.
Example
An example of this command is:
srvctl enable database -d crm

srvctl enable instance
Enables an instance for Oracle Clusterware. If all instances are disabled, then enabling an instance also enables the database.
Syntax and Options
Use the srvctl enable instance command with the following syntax:
srvctl enable instance -d db_unique_name -i inst_name_list

srvctl enable instance Option

Option

Description
-d db_unique_name

Unique name for the database
-i inst_name_list

Comma-delimited list of instance names.


Example
An example of this command is:
srvctl enable instance -d crm -i "crm1,crm2"

srvctl enable service
Enables a service for Oracle Clusterware. Enabling an entire service also affects the enabling of the service over all of the instances by enabling the service at each one. When the entire service is already enabled, an srvctl enable service operation does not affect all of the instances and enable them. Instead, this operation returns an error. Therefore, you cannot always use the entire set of service operations to manipulate the service indicators for each instance.
Syntax and Options
Use the srvctl enable service command with the following syntax:
srvctl enable service -d db_unique_name {-s service_name_list | -s service_name -i inst_name}


srvctl enable service Options

Option

Description
-d db_unique_name

Unique name for the database.
-s service_name_list

Comma-delimited list of service names.
-s service_name

Single service name.
-i inst_name

Instance name.


Examples
The following example globally enables a service:
srvctl enable service -d crm -s crm

The following example enables a service to use a preferred instance:
srvctl enable service -d crm -s crm -i crm1

srvctl enable asm
Enables an ASM instance.
Syntax and Options
Use the srvctl enable asm command with the following syntax:
srvctl enable asm -n node_name [-i asm_inst_name]

srvctl enable asm Option

Option

Description
-n node_name

Node name
-i inst_name

ASM instance name.


Example
An example of this command is:
srvctl enable asm -n crmnode1 -i asm1

srvctl disable
Disables a specified object (cluster database, database instance, ASM instance, or service). SRVCTL disable is intended to be used when an object is to be repaired or is down for maintenance to prevent inappropriate automatic restarts. When you issue the disable command, the object is disabled and unavailable to run under Oracle Clusterware for automatic startup, failover, or restart. If you specify -i instance_name, then SRVCTL only disables the service from running on the specified instance.

srvctl disable Summary

Command

Description
srvctl disable database

Disables the cluster database
srvctl disable instance

Disables an instance
srvctl disable service

Disables a service
srvctl disable asm

Disables an ASM instance


srvctl disable database
Disables a cluster database and its instances.
Syntax and Options
Use the srvctl disable database command with the following syntax:
srvctl disable database -d db_unique_name

The only option available for this command is -d to specify the database name.
Example
An example of this command is:
srvctl disable database -d mybd1

srvctl disable instance
Disables an instance. If the instance that you disable with this command is the last enabled instance, then this operation also disables the database.
Syntax and Options
Use the srvctl disable instance command with the following syntax:
srvctl disable instance -d db_unique_name -i inst_name_list

srvctl disable instance Options

Option

Description
-d db_unique_name

Unique name for the database.
-i inst_name_list

Comma-delimited instance names.


Example
An example of this command is:
srvctl disable instance -d crm -i "crm1,crm3"

srvctl disable service
Disables a service. Disabling an entire service affects all of the instances, disabling each one. When the entire service is already disabled, an srvctl disable service operation on the entire service affect all of the instances and disable them; it just returns an error. This means that you cannot always use the entire set of service operations to manipulate the service indicators for each instance.
Syntax and Options
Use the srvctl disable service command with the following syntax:
srvctl disable service -d db_unique_name {-s service_name_list | -s service_name -i inst_name}

srvctl disable service Options

Option

Description
-d db_unique_name

Unique name for the database.
-s service_name_list

Comma-delimited service names.
-s service_name

Single service name.
-i inst_name

Instance name.


Examples
The following example globally disables two services:
srvctl disable service -d crm -s crm,marketing

The following example disables a service running on the preferred named instance and results in running a service on one less instance:
srvctl disable service -d crm -s crm -i crm1

srvctl disable asm
Disables an ASM instance.
Syntax and Options
Use the srvctl disable asm command with the following syntax:
srvctl disable asm -n node_name [-i asm_inst_name]
srvctl disable asm Option

Option

Description
-n node_name

Node name
-i inst_name

ASM instance name.


Example
An example of this command is:
srvctl disable asm -n crmnode1 -i asm1

srvctl start
Starts Oracle Clusterware enabled, non-running applications for the database, all or named instances, all or named service names, or node-level applications. For the start command, and for other operations that use a connect string, if you do not provide a connect string, then SRVCTL uses "/ as sysdba" to perform the operation. To run such operations, the owner of the oracle binary executables must be a member of the OSDBA group, and users running the commands must be in the OSDBA group also.

srvctl start Summary

Command

Description
srvctl start database

Starts the cluster database and its instances
srvctl start instance

Starts the instance
srvctl start service

Starts the service
srvctl start nodeapps

Starts the node applications
srvctl start asm


Starts ASM instances
srvctl start listener


Starts the specified Listener or Listeners.


srvctl start database
Starts a cluster database and its enabled instances.
Syntax and Options
Use the srvctl start database command with the following syntax:
srvctl start database -d db_unique_name [-o start_options] [-c connect_str | -q]

srvctl start database Options

Option

Description
-d db_unique_name

Unique name for the database.
-o start_options

Options for startup command (for example: open, mount, or nomount)
-c connect_str

Connect string (default: / as sysdba)
-q

Prompt for user credentials connect string from standard input.


Example
An example of this command is:
srvctl start database -d crm -o open

srvctl start instance

Starts instances in the cluster database.
Syntax and Options
Use the srvctl start instance command with the following syntax:
srvctl start instance -d db_unique_name -i inst_name_list [-o start_options] [-c connect_str | -q]
srvctl start instance Options

Option

Description
-d db_unique_name

Unique name for the database.
-i inst_name_list

Comma-delimited instance names.
-o start_options

Options for startup command (for example: open, mount, or nomount).
-c connect_str

Connect string (default: / as sysdba).
-q

Prompt for user credentials connect string from standard input.

Example
An example of this command is:
srvctl start instance -d crm -i "crm1,crm4"
srvctl start service
Starts a service or multiple services on the specified instance. The srvctl start service command will fail if you attempt to start a service on an instance if that service is already running on its maximum number of instances, that is, its number of preferred instances. You may move a service or change the status of a service on an instance with the srvctl modify service and srvctl relocate service commands described on and respectively.
Syntax and Options
Use the srvctl start service command with the following syntax:
srvctl start service -d db_unique_name [-s service_name_list [-i inst_name]] [-o start_options] [-c connect_str | -q]


srvctl start service Options

Option

Description
-d db_unique_name

Unique name for the database
-s service_name_list

Comma-delimited service names; the service name list is optional and if not provided, the SRVCTL starts all of the database's services
-i inst_name

Instance name
-o start_options

Options to startup command (for example: open, mount, or nomount)
-c connect_str

Connect string (default: / as sysdba)
-q

Query connect string from standard input


Examples
The following example starts named service names. If the instances that support these services, including available instances that the service uses for failover, are not running but are enabled, then they are started:
srvctl start service -d crm -s crm

The following example starts a named service on a specified instance:
srvctl start service -d crm -s crm -i crm2

srvctl start nodeapps
Starts node-level applications on a particular node.
Syntax and Options
Use the srvctl start nodeapps command with the following syntax:
srvctl start nodeapps -n node_name

The only option available for this command is -n to specify the node name.
Example
An example of this command is:
srvctl start nodeapps -n mynode1
srvctl start asm
Starts an ASM instance.
Syntax and Options
Use the srvctl start asm command with the following syntax:
srvctl start asm -n node_name [-i asm_inst_name] [-o start_options] [-c connect_str | -q]
srvctl start asm Option

Option

Description
-n node_name

Node name
-i inst_name

ASM instance name.
-o start_options

Options to startup command, for example open, mount, or nomount.
-c connect_string

Connect string where the default is forward slash (/).
-q

Query connect string from standard input.
-h

Display help.


Examples
An example of this command to start a single ASM instance is:
srvctl start asm -n crmnode1 -i asm1

An example to start all ASM instances on a node is:
srvctl start asm -n crmnode2

srvctl start listener

Starts the default Listener known as node_name, or the Listeners represented in a given list of Listener names, that are registered with Oracle Clusterware on the given node.
Syntax and Options
Use the srvctl start listener command with the following syntax:
srvctl start listener -n node_name [-l listener_name_list]

Example
An example of this command is:
srvctl start listener -n mynode1

srvctl stop

Stops the Oracle Clusterware applications for the database, all or named instances, all or named service names, or node level applications. Only the Oracle Clusterware applications that are starting or running are stopped. Objects running outside of Oracle Clusterware are not stopped. Stops node-level applications and all dependent Oracle Clusterware applications on the node.
You should disable an object that you intend to remain stopped after you issue a SRVCTL stop command. Refer to the SRVCTL disable command starting with srvctl disable database.

Note:
If the object is stopped and is not disabled, then it can restart as a result of another planned operation. That is, the object will not restart as a result of a failure. Oracle recommends that you disable an object that should remain stopped after you issue a stop command.

srvctl stop Summary

Command

Description
srvctl stop database

Stops the cluster database
srvctl stop instance

Stops the instance
srvctl stop service

Stops the service
srvctl stop nodeapps

Stops the node-level applications
srvctl stop asm

Stops ASM instances
srvctl stop listener


Stops the specified Listener or Listeners.


srvctl stop database
Stops a database, its instances, and its services.
Syntax and Options
Use the srvctl stop database command with the following syntax:
srvctl stop database -d db_unique_name [-o stop_options] [-c connect_str | -q]


srvctl stop database Options


Option

Description
-d db_unique_name

Unique name for the database
-o stop_options

shutdown command options (for example: normal, transactional, immediate, or abort)
-c connect_str

Connect string (default: / as sysdba)
-q

Prompt for user credentials connect string from standard input


Example
An example of this command is:
srvctl stop database -d crm

srvctl stop instance
Stops instances and stops all enabled and non-running services that have these instances as either preferred or available instances.
Syntax and Options
Use the srvctl stop instance command with the following syntax:
srvctl stop instance -d db_unique_name -i inst_name_list [-o stop_options] [-c connect_str | -q]


srvctl stop instance Options

Option

Description
-d db_unique_name

Unique name for the database
-i inst_name_list

Comma-delimited instance names
-o stop_options

Options for shutdown command (for example: normal, transactional, immediate, or abort)
-c connect_str

Connect string (default: / as sysdba)
-q

Query connect string from standard input


Example
An example of this command is:
srvctl stop instance -d crm -i crm1

srvctl stop service
Stops one or more services globally across the cluster database, or on the specified instance.
Syntax and Options
Use the srvctl stop service command with the following syntax:
srvctl stop service -d db_unique_name [-s service_name_list [-i inst_name]] [-c connect_str | -q] [-f]

srvctl stop service Options

Option

Description
-d db_unique_name

Unique name for the database
-s service_name_list

Comma-delimited service names; if you do not provide a service name list, then SRVCTL stops all services on the database
-i inst_name

Instance name
-c connect_str

Connect string (default: / as sysdba)
-q

Query connect string from standard input
-f force

Force SRVCTL to stop the service; this causes SRVCTL to disconnect all of the sessions transactionally, causing the sessions using the service to reconnect to another instance


Examples
The following example stops a service globally across a cluster database:
srvctl stop service -d crm -s crm

The following example stops a service on a specified instance:
srvctl stop service -d crm -s crm -i crm2

srvctl stop nodeapps
Stops node-level applications on a particular node.
Syntax and Options
Use the srvctl stop nodeapps command with the following syntax:
srvctl stop nodeapps -n node_name

The only option for this command is the -n option, which specifies the node name.
Example
An example of this command is:
srvctl stop nodeapps -n mynode1

srvctl stop asm
Stops an ASM instance.
Syntax and Options
Use the srvctl stop asm command with the following syntax:
srvctl stop asm -n node_name [-i inst_name] [-o stop_options] [-c connect_str | -q]


srvctl stop asm Option

Option

Description
-n node_name

Node name.
-i inst_name

ASM instance name.
-o stop_options

Options for shutdown command, for example, normal, transactional, immediate, or abort.
-c connect_string

Connect string where the default is forward slash (/).
-q

Query connect string from standard input.
-h

Display help.


Example
An example of this command is:
srvctl stop asm -n crmnode1 -i asm1

srvctl stop listener
Stops the default Listener known as node_name, or the Listeners represented in a given list of Listener names, that are registered with Oracle Clusterware on the given node.
Syntax and Options
Use the srvctl stop listener command with the following syntax:
srvctl stop listener -n node_name [-l listener_name_list]

Example
An example of this command is:
srvctl stop listener -n mynode1

srvctl modify
Enables you to modify the instance configuration without removing and adding Oracle Clusterware resources. Using modify preserves the environment in the OCR configuration that would otherwise need to be re-entered. The configuration description is modified in the OCR configuration, and a new Oracle Clusterware profile is generated and registered. The change takes effect when the application is next restarted.
srvctl modify Summary

Command

Description
srvctl modify database

Modifies the configuration for a database.
srvctl modify instance

Modifies the configuration for an instance.
srvctl modify service

Modifies the configuration for a service.
srvctl modify nodeapps


Modifies the configuration for a node application.


srvctl modify database
Modifies the configuration for a database.
Syntax and Options
Use the srvctl modify database command with the following syntax:
srvctl modify database -d db_unique_name [-n db_name] [-o oracle_home] [-m domain_name] [-p spfile] [-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY}] [-s start_options] [-y {AUTOMATIC | MANUAL}]

srvctl modify database Options


Option

Description
-d db_unique_name

Unique name for the database.
-n db_name

Name of the database, where it is different from the unique name given by -d option.
-o oracle_home

Oracle home for cluster database.
-m domain_name

Domain for cluster database.
-p spfile

Server parameter file for cluster database.
-r role [PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY]

Role of the database (primary, physical standby, or logical standby)
-s start_options

Startup options for the database.
-y

Management policy for the database, either automatic or manual.
-h

Print usage.


Example
The following example changes the role of a database to a logical standby:
srvctl modify database -d crm -r logical_standby

srvctl modify instance
Modifies the configuration for a database instance from its current node to another node or changes the dependency between and ASM instance and a database instance.
Syntax and Options
Use the srvctl modify instance command with the following syntax:
srvctl modify instance -d db_unique_name -i inst_name {-n node_name | -s asm_instance_name | -r}


srvctl modify instance Options


Option

Description
-d db_unique_name

Unique name for the database.
-i inst_name

Database instance name.
-n node_name

Node name.
-s asm_instance_name

ASM instance dependency to database instance.
-r

Remove ASM instance dependency from database instance.


Examples
An example of this command to relocate a database instance is:
srvctl modify instance -d crm -i crm1 -n my_new_node

The following example of this command establishes a dependency between an ASM instance and a database instance:
srvctl modify instance -d crm -i crm1 -s asm1

srvctl modify service
Moves a service member from one instance to another. Additionally, this command changes which instances are to be the preferred and the available instances for a service. This command supports some online modifications to the service, for example:
● When a service configuration is modified so that a new preferred or available instance is added, the running state of the existing service is not affected. However, the newly added instances will not automatically provide the service, until a srvctl start service command is issued as described.
● When there are available instances for the service, and the service configuration is modified so that a preferred or available instance is removed, the running state of the service may change unpredictably:
● The service is stopped and then removed on some instances according to the new service configuration.
● The service may be running on some instances that are being removed from the service configuration.
● These services will be relocated to the next "free" instance in the new service configuration.
As a result of these considerations, when the online service is being modified, users may experience a brief service outage on some instances even if the instances are not being removed. Or users may experience a brief service outage on instances that are being removed from the service.

Important:
Oracle recommends that you limit configuration changes to the minimum requirement and that you not perform other service operations while the online service modification is in progress.

Syntax and Options
Use the srvctl modify service command with the following syntax:
srvctl modify service -d db_unique_name -s service_name -i old_inst_name -t new_inst_name [-f]





srvctl modify service Options for an Available Instance


Option

Description
-d db_unique_name

Unique name for the database.
-s service_name

Service name.
-i old_inst_name

Old instance name.
-t new_inst_name

New instance name.
-f

Disconnect all sessions during stop or relocate service operations.


You can also use the srvctl modify service command to change an available instance to a preferred instance as follows:
srvctl modify service -d db_unique_name -s service_name -i avail_inst_name -r [-f]

srvctl modify service Options for Changing an Available Instance to Preferred

Option

Description
-d db_unique_name

Unique name for the database.
-s service_name

Service name.
-i avail_inst_name

Instance name.
-r

Upgrade instance to preferred.
-f

Disconnect all sessions during stop or relocate service operations.


Examples
An example of moving a service member from one instance to another is:
srvctl modify service -d crm -s crm -i crm1 -t crm2

An example of changing an available instance to a preferred instance is:
srvctl modify service -d crm -s crm -i crm1 -r

To change the status of multiple instances, you can use the srvctl modify service command to list which instances are to be the preferred and which are to be the available instances for a service as follows:
srvctl modify service -d db_unique_name -s service_name -n -i pref_inst_list [-a avail_inst_list] [-f]

srvctl modify service Options for Changing Instances between Preferred and Available status

Option

Description
-d db_unique_name

Unique name for the database.
-s service_name

Service name.
-n

Uses only the instances named for this service (unnamed instances already assigned to the service are removed).
-i avail_inst_name

List of preferred instances.
-a avail_inst_list

List of available instances.
-f

Disconnect all sessions during stop or relocate service operations.


Example
An example of this command to exchange a preferred and available instance is:
srvctl modify service -d crm -s crm -n -i crm1 -a crm2

srvctl modify nodeapps
Applies a new Oracle home or virtual IP address to nodeapps.
Syntax and Options
Use the srvctl modify nodeapps command with the following syntax:
srvctl modify nodeapps -n node_name [-o oracle_home] [-A new_vip_address]

srvctl status
Displays the current state of a named database, instances, services, or node applications.
srvctl status Summary

Command

Description
srvctl status database

Obtains the status of a database.
srvctl status instance

Obtains the status of a instance.
srvctl status service

Obtains the status of services.
srvctl status nodeapps

Obtains the status of node applications.
srvctl status asm


Obtains the status of ASM instances.


srvctl status database
Obtains the status of instances and their services.
Syntax and Options
Use the srvctl status database command with the following syntax:
srvctl status database -d db_unique_name [-f] [-v]

srvctl status database Options

Option

Description
-d db_unique_name

Unique name for the database
-f

Include disabled applications
-v

Verbose output


Example
An example of this command is:
srvctl status database -d crm -v

srvctl status instance
Obtains the status of instances.
Syntax and Options
Use the srvctl status instance command with the following syntax:
srvctl status instance -d db_unique_name -i inst_name_list [-f] [-v]


srvctl status instance Options

Option

Description
-d db_unique_name

Unique name for the database
-i inst_name_list

Comma-delimited list of instance names
-f

Include disabled applications
-v

Verbose output


Example
An example of this command is:
srvctl status instance -d crm -i "crm1,crm2" -v

srvctl status service
Obtains the status of a service.
Syntax and Options
Use the srvctl status service command with the following syntax:
srvctl status service -d db_unique_name -s service_name_list [-f] [-v]

srvctl status service Options

Option

Description
-d db_unique_name

Unique name for the database
-s service_name_list

Comma-delimited list of service names
-f

Include disabled applications
-v

Verbose output


Example
The following example obtains the status of a named service globally across the database:
srvctl status service -d crm -s crm -v

srvctl status nodeapps
Obtains the status of node applications on a particular node.
Syntax and Options
Use the srvctl status nodeapps command with the following syntax:
srvctl status nodeapps -n node_name

The only option available for this command is -n to specify the node name.
Example
An example of this command to obtain the status of all nodes supporting database applications is:
srvctl status nodeapps -n mynode1

srvctl status asm
Obtains the status of an ASM instance.
Syntax and Options
Use the srvctl status asm command with the following syntax:
srvctl status asm -n node_name

The only option available for this command is -n to specify the node name.
Example
An example of this command is:
srvctl status asm -n crmnode1

srvctl getenv
Gets and displays values for the environment from the configuration file. Use SRVCTL with the set, get, and unset environment configuration verbs to administer the environment configurations for databases, instances, services, and node applications.

srvctl getenv Summary

Command

Description
srvctl getenv database

Gets the cluster database environment values.
srvctl getenv instance

Gets the instance environment values.
srvctl getenv service

Gets the service environment values.
srvctl getenv nodeapps

Gets the node application environment values.


srvctl getenv database
Displays the cluster database environment values.
Syntax and Options
Use the srvctl getenv database command with the following syntax:
srvctl getenv database -d db_unique_name [-t name_list]

Table E-46 srvctl getenv database Options

Options

Description
-d db_unique_name

Unique name for the database
-t name_list

Names of environment variables


Example
The following example gets the environment configuration for a cluster database:
srvctl getenv database -d crm

srvctl getenv instance
Gets the values for an instance environment configuration.
Syntax and Options
Use the srvctl getenv instance command with the following syntax:
srvctl getenv instance -d db_unique_name -i inst_name [-t name_list]

srvctl getenv database Options

Options

Description
-d db_unique_name

Unique name for the database
-i inst_name

Instance name
-t name_list

Names of environment variables


Example
The following example sets the environment configuration for an instance:
srvctl getenv instance -d -crm -i instance1

srvctl getenv service
Gets the values for a service environment configuration.
Syntax and Options
Use the srvctl getenv service command with the following syntax:
srvctl getenv service -d db_unique_name -s service_name [-t name_list]


srvctl getenv service Options


Options

Description
-d db_unique_name

Unique name for the database
-s service_name

Service name
-t name_list

Names of environment variables


Example
The following example lists all environment variables for a service:
srvctl getenv service -d crm -s crm

srvctl getenv nodeapps
Gets the environment variables for the node application configurations.
Syntax and Options
Use the srvctl getenv nodeapps command with the following syntax:
srvctl getenv nodeapps -n node_name [-t name_list]


srvctl getenv nodeapps Options

Options

Description
-n node_name

Node name
-t name_list

Names of environment variables


Example
The following example lists all environment variables for the node applications:
srvctl getenv nodeapps -n crmnode1

srvctl setenv and unsetenv
The setenv command sets values for the environment in the configuration file. The unsetenv command unsets values for the environment in the configuration file.

srvctl setenv and unsetenv Summary

Command

Description
srvctl setenv database

Administers cluster database environment configurations
srvctl setenv instance

Administers instance environment configurations
srvctl setenv service

Administers service environment configurations
srvctl setenv nodeapps

Administers node application environment configurations
srvctl unsetenv database

Unsets the cluster database environment configuration
srvctl unsetenv instance

Unsets instance environment configurations
srvctl unsetenv service

Unsets service environment configurations
srvctl unsetenv nodeapps

Unsets node application environment configurations


srvctl setenv database
Administers cluster database environment configurations.
Syntax and Options
Use the srvctl setenv database command with the following syntax:
srvctl setenv database -d db_unique_name {-t name=val[,name=val,...] | -T name=val}

srvctl remove
Removes the configuration, the Oracle Clusterware applications for the node (including the virtual IP address, the Oracle Enterprise Manager agent, the GSD, and the Listeners), the database, named instances, or the named services from the cluster database. Environment settings for the object are also removed.
If you do not use the force flag (-f), then Oracle prompts you to confirm whether to proceed. If you use the force (-f) option, then the remove operation proceeds without prompting and continues processing even when it encounters errors. Even when the Oracle Clusterware resources cannot be removed, the OCR configuration is removed, so that the object now appears not to exist, but there are still Oracle Clusterware resources. Use the -f option with extreme caution because this could result in an inconsistent OCR.
To use the remove verb, you must first stop the node applications, database, instance, or service for which you are specifying srvctl remove. Oracle recommends that you perform a disable operation before using this command, but this is not required. You must stop the target object before running the srvctl remove command. The srvctl stop command is described.

srvctl remove Summary

Command

Description
srvctl remove database

Removes a database and configuration.
srvctl remove instance

Removes one or more instances and configurations.
srvctl remove service

Removes services.
srvctl remove nodeapps

Removes node applications.
srvctl remove asm


Removes ASM instances


srvctl remove database
Removes a database configuration.
Syntax and Options
Use the srvctl remove database command with the following syntax:
srvctl remove database -d db_unique_name [-f]


srvctl remove database Options

Options

Description
-d db_unique_name

Unique name for the database.
-f

Force remove.


Example
An example of this command is:
srvctl remove database -d crm

srvctl remove instance
Removes the configurations for an instance.
Syntax and Options
Use the srvctl remove instance command with the following syntax:
srvctl remove instance -d db_unique_name -i inst_name [-f]

srvctl remove instance Options

Options

Description
-d db_unique_name

Unique name for the database.
-i inst_name

Instance name.
-f

Force remove.


Example
An example of this command is:
srvctl remove instance -d crm -i crm01

srvctl remove service
Removes the configuration for a service.
Syntax and Options
Use the srvctl remove service command as follows:
srvctl remove service -d db_unique_name -s service_name [-i inst_name] [-f]

srvctl remove service Options

Options

Description
-d db_unique_name

Unique name for the database.
-s service_name

Service name.
-i inst_name

Instance name.
-f

Force remove.


Examples
An example of this command is:
srvctl remove service -d crm -s sales

The following example removes the services from specific instances:
srvctl remove service -d crm -s sales -i crm01,crm02

srvctl remove nodeapps
Removes the node application configuration from the specified node. You must have full administrative privileges to run this command. On UNIX-based systems, you must be logged in as root and on Windows-based systems, you must be logged in as a user with Administrator privileges.
Syntax
Use the srvctl remove nodeapps command as follows:
srvctl remove nodeapps -n node_name_list [-f]

srvctl remove nodeapps Options

Options

Description
-n node_name_list

Node name or a comma-delimited list of node names.
-f

Force remove.


Example
An example of this command is:
srvctl remove nodeapps -n "mynode1,mynode2,mynode3"
srvctl remove asm
Removes an ASM instance.
Syntax and Options
Use the srvctl remove asm command with the following syntax:
srvctl remove asm -n node_name [-i asm_inst_name]

srvctl remove asm Option

Option

Description
-n node_name

Node name
-i asm_inst_name

ASM instance name.


Example
An example of this command is:
srvctl remove asm -n crmnode1 -i asm1