CRS-2501
CRS-2501 means that the resource you want to manipulate is in the disabled mode, you should make sure its status before enabling it.
Let's see some types of resource.
1. Database
When we tried to startup a disabled database, we got the error.
[oracle@primary01 ~]$ srvctl start database -d orclcdb
PRCR-1079 : Failed to start resource ora.orclcdb.db
CRS-2501: Resource 'ora.orclcdb.db' is disabled
Database is a resource which the most commonly needs to be disabled for maintenance.
2. Resources Beside Database
Resources could be varying in types, here we take a SCAN VIP as an example and tried to start it.
[oracle@primary01 ~]$ srvctl start scan -i 2
PRCR-1079 : Failed to start resource ora.scan2.vip
CRS-2501: Resource 'ora.scan2.vip' is disabled
We got CRS-2501 again.
Solutions
We'll talk about the solutions according to their types as below.
1. Database
First, we need to know who is the owner of the resource before enabling it again.
[grid@primary01 ~]$ crsctl status resource ora.orclcdb.db -p -attr ACL
NAME=ora.orclcdb.db
ACL=owner:oracle:rwx,pgrp:oinstall:r--,other::r--,group:dba:r-x,group:oper:r-x,group:racdba:r-x,user:grid:r-x
Since the owner of database resource is oracle, we should use oracle to make the database enabled.
[oracle@primary01 ~]$ srvctl enable database -d orclcdb
Then we make sure that the resource is enabled.
[grid@primary01 ~]$ crsctl status resource ora.orclcdb.db -p -attr ENABLED
NAME=ora.orclcdb.db
ENABLED=1
1 means enabled, while 0 means disabled. The database is ready for startup.
[oracle@primary01 ~]$ srvctl start database -d orclcdb
[oracle@primary01 ~]$ srvctl status database -d orclcdb
Instance ORCLCDB1 is running on node primary01
Instance ORCLCDB2 is running on node primary02
To disable it again, you may use srvctl disable database to put the database in maintenance mode.
2. Resources Beside Database
First, we need to know who is the owner of the resource before enabling it again.
[grid@primary01 ~]$ crsctl status resource ora.scan2.vip -p -attr ACL
NAME=ora.scan2.vip
ACL=owner:root:rwx,pgrp:root:r-x,other::r--,group:oinstall:r-x,user:grid:r-x
Since the owner of resource is root, we should use root to make the resource enabled.
[root@primary01 ~]# . /home/grid/.bash_profile
[root@primary01 ~]# srvctl enable scan -i 2
[root@primary01 ~]# crsctl status resource ora.scan2.vip -p -attr ENABLED
NAME=ora.scan2.vip
ENABLED=1
To start SCAN VIP, user oracle has the right to execute it.
[oracle@primary01 ~]$ srvctl start scan -i 2
[oracle@primary01 ~]$ srvctl status scan -i 2
SCAN VIP scan2 is enabled
SCAN VIP scan2 is running on node primary01