CRS-2662: Resource ‘ora.database_name.db’ is Disabled on Node
Title: How to Resolve CRS-2662: Resource ‘ora.database_name.db’ is Disabled on Server ‘server_name’
Introduction:When working in an Oracle Real Application Clusters (RAC) environment, you may encounter errors that prevent Oracle resources from starting correctly. One such error is:
CRS-2662: Resource ‘ora.database_name.db’ is disabled on server ‘server_name’
This issue arises when a resource for an Oracle database instance is disabled on one or more nodes of the cluster, which prevents the instance from running as expected. In this blog, we’ll go through a detailed, step-by-step approach to resolve the CRS-2662 error.
Error Scenario:Imagine you’re working with an Oracle RAC database named database_name, and the resource for this database (ora.database_name.db) is disabled on one of the nodes, say rohit-test. This can prevent the Oracle instance from starting properly on that particular node, resulting in the CRS-2662 error.
Root Cause:The root cause of this error is usually a misconfigured or disabled resource. Specifically, the resource ora.database_name.db has the ENABLED attribute set incorrectly on one or more nodes.
Example of the configuration:
ENABLED=1
ENABLED@SERVERNAME(rohit-test)=0
ENABLED@SERVERNAME(rohit-node2)=1
In this example, the resource is enabled on rohit-node2 but disabled on rohit-test, which causes the instance not to start on rohit-test.
Step-by-Step Solution to Fix Error CRS-2662
Step 1: Check the Current Status of the Resource
The first thing you need to do is check the status of the Oracle database resource across all the nodes. This will help you identify which node has the resource disabled.
Use the crsctl command to get the current status:
crsctl stat res ora.database_name.db -p
Expected Output:The output will show the current status of the resource, including the ENABLED attribute for each node in the cluster.
For example:
ENABLED=1
ENABLED@SERVERNAME(rohit-test)=0
ENABLED@SERVERNAME(rohit-node2)=1
From this, you can see that the resource is disabled on rohit-test (ENABLED@SERVERNAME(rohit-test)=0) and enabled on rohit-node2.
Step 2: Enable the Resource on the Affected Node
Now that you know the resource is disabled on a specific node (rohit-test), you can enable it using the srvctl utility.
Run the following command to enable the resource on the problematic node:
srvctl enable resource ora.database_name.db -n rohit-test
This command will set the ENABLED attribute to 1 for the resource on rohit-test.
Step 3: Start the Resource
Once the resource is enabled on the affected node, the next step is to start the Oracle database on the node. Use the srvctl command to start the database:
srvctl start database -d database_name
This command will attempt to start the database on all the nodes, including the newly enabled one (rohit-test).
Step 4: Verify the Resource Status
After starting the database, you need to verify that the instance is now running properly on all the nodes. To do this, use the following command:
srvctl status database -d database_name -v
Expected Output:You should now see the database instance running on both nodes:
Instance database_name10 is running on node rohit-test
Instance database_name9 is running on node rohit-node2 with online services ...
This indicates that the resource has successfully started on both nodes.
Step 5: Troubleshoot Any Remaining Issues
If the resource still does not start or if you encounter further issues, check the Oracle Clusterware logs for any additional errors or warnings. You can find the logs in the following directory:
$GRID_HOME/log/<node_name>/crsd/crsd.log
Review the logs for any errors that might indicate the root cause of the issue, such as missing dependencies or configuration issues.
Step 6: Preventative Measures
To prevent the CRS-2662 error from happening again, consider the following best practices:
- Monitor Resource Attributes: Regularly check the status of your Oracle database resources on all nodes. Misconfigurations or disabled resources can lead to failures.
- Automate Resource Monitoring: Use Oracle’s Grid Infrastructure or third-party monitoring tools to automatically check the status of resources. Set up alerts to notify you if any resource is disabled or not running.
- Use srvctl for Resource Management: Always use the
srvctlcommand to manage Oracle resources.srvctlprovides a better interface for managing RAC resources compared tocrsctl.
Conclusion:The CRS-2662 error can cause significant disruption in an Oracle RAC environment if resources are disabled on specific nodes. However, by enabling the resource on the affected node using the srvctl utility and ensuring that the database starts properly, this issue can be quickly resolved.
Follow the steps outlined in this blog to troubleshoot and resolve the CRS-2662 error. Regularly monitor your Oracle resources to prevent such issues from recurring and ensure that your Oracle RAC environment runs smoothly. error CRS-2662 on oracle rac on rac node 2 unable to start db database rac crs prcr-1064 failed oracle rac db oracle crs exadata crs
Author: Rohit Mishri
