Recently I tried to drop a datagroup from RAC cluster. It was previously registered with cluster while creating a RAC database:
HA Resource Target State
ora.FRA.dg ONLINE OFFLINE
I moved all database files from this datagroup to an other. Then when i tried to drop it, following error occured:
srvctl remove diskgroup -g FRA
PRCA-1002 : Failed to remove CRS resource ora.FRA.dg for ASM Disk Group FRA
PRCR-1028 : Failed to remove resource ora.FRA.dg
PRCR-1072 : Failed to unregister resource ora.FRA.dg
CRS-0222: Resource 'ora.FRA.dg' has dependency error.
The right thing was to remove datagroup as told in here.
1-) srvctl modify database -d MYDB -a “DATA,OTHER_DG,...”
2-) srvctl disable diskgroup -g FRA
3-) srvctl remove diskgroup -g FRA –f
However, I removed datagroup first:
srvctl remove diskgroup -g FRA -f
Then, when i tried to open database, It gave me fallowing error:
srvctl start database -d mydb
PRCR-1079 : Failed to start resource ora.mydb.db
CRS-2640: Required resource 'ora.FRA.dg' is missing.
That was because altough i removed datagroup with force option, dependency was remained. You can see it with similar command:
./crsctl status resource ora.mydb.db -f|grep FRA
START_DEPENDENCIES=hard(ora.DATA.dg,ora.FRA.dg) weak(type:ora.listener.type,global:type:ora.scan_listener.type,uniform:ora.ons,uniform:ora.eons) pullup(ora.DATA.dg)
STOP_DEPENDENCIES=hard(intermediate:ora.asm,shutdown:ora.DATA.dg,shutdown:ora.FRA.dg)
I run fallowing command to remove FRA dependency:
srvctl modify database -d MYDB -a “DATA” (step 1)
When i check dependency again, i saw that FRA was gone:
./crsctl status resource ora.mydb.db -f|grep FRA
(nothing)
./crsctl status resource ora.mydb.db -f|grep DATA
START_DEPENDENCIES=hard(ora.DATA.dg) weak(type:ora.listener.type,global:type:ora.scan_listener.type,uniform:ora.ons,uniform:ora.eons) pullup(ora.DATA.dg)
STOP_DEPENDENCIES=hard(intermediate:ora.asm,shutdown:ora.DATA.dg)
After that, i could able to open my database
srvctl start database -d mydb
2 comments:
You need to modify attributes START_DEPENDENCIES and STOP_DEPENDENCIES simultaneously. In other case modification will be failed.
Extend your example of command "srvctl modify" if you like, please.
I run command:
srvctl modify database -d MYDB -a “DATA”
in order to make my database only depend on diskgroup DATA. Because this command seems modify all start and stop dependencies at the same time, i did not have any problem. I am sure you can also modify it in some other way like setting both START_DEPENDENCIES and STOP_DEPENDENCIES manually.
Post a Comment