oracle+prko+2006,PRKO-2007 : Invalid instance name\" using \"srvctl remove instance-aaron8219-ChinaU...

ISSUE

"One Click Extend Cluster Database" was used to add TWO additional nodes to an

existing cluster with an existing database named ORASID

Procedure completed and created two instances called:

bash-3.00$ crs_stat | grep orasid

NAME=ora.orasid.ORASID3.inst

NAME=ora.orasid.ORASID4.inst

bash-3.00$

NOTE the database name is in lower case "orasid" -- it should have been upper

case "ORASID" (this is caused by a bug in EM Grid Control).

Attempt to remove these instances results in the following error message:

bash-3.00$ srvctl remove instance -d orasid -i ORASID3

PRKO-2007 : Invalid instance name: ORASID3

bash-3.00$ srvctl remove instance -d orasid -i ORASID4

PRKO-2007 : Invalid instance name: ORASID4

SOLUTION

Use crs_unregister to remove erroneous instances with lowercase database name:

bash-3.00$ crs_stat | grep orasid

NAME=ora.orasid.ORASID3.inst

NAME=ora.orasid.ORASID4.inst

bash-3.00$ crs_unregister ora.orasid.ORASID3.inst

bash-3.00$ crs_unregister ora.orasid.ORASID4.inst

bash-3.00$ crs_stat | grep orasid

Then if you already removed the database (srvctl remove database -d ORASID

)-- re-register it with correct instance names:

bash-3.00$ srvctl add database -d ORASID \

> -o /u01/app/oracle/product/10.2.0/db_1 \

> -p +SYS/ORASID/spfileORASID.ora

bash-3.00$ srvctl add instance -d ORASID -i ORASID1 -n qarac1

bash-3.00$ srvctl add instance -d ORASID -i ORASID2 -n qarac2

bash-3.00$ srvctl add instance -d ORASID -i ORASID3 -n qarac4

bash-3.00$ srvctl add instance -d ORASID -i ORASID4 -n qarac3

bash-3.00$ srvctl modify instance -d ORASID -i ORASID1 -s +ASM1

bash-3.00$ srvctl modify instance -d ORASID -i ORASID2 -s +ASM2

bash-3.00$ srvctl modify instance -d ORASID -i ORASID3 -s +ASM3

bash-3.00$ srvctl modify instance -d ORASID -i ORASID4 -s +ASM4

bash-3.00$ srvctl start database -d ORASID

bash-3.00$ srvctl status database -d ORASID

Instance ORASID1 is running on node qarac1

Instance ORASID2 is running on node qarac2

Instance ORASID3 is running on node qarac4

Instance ORASID4 is running on node qarac3

bash-3.00$ srvctl config database -d ORASID -a

qarac1 ORASID1 /u01/app/oracle/product/10.2.0/db_1

qarac2 ORASID2 /u01/app/oracle/product/10.2.0/db_1

qarac4 ORASID3 /u01/app/oracle/product/10.2.0/db_1

qarac3 ORASID4 /u01/app/oracle/product/10.2.0/db_1

DB_NAME: null

ORACLE_HOME: /u01/app/oracle/product/10.2.0/db_1

SPFILE: +SYS/ORASID/spfileORASID.ora

DOMAIN: null

DB_ROLE: null

START_OPTIONS: null

POLICY: AUTOMATIC

ENABLE FLAG: DB ENABLED

bash-3.00$

bash-3.00$ crs_stat -t

Name Type Target State

Host

------------------------------------------------------------

ora....D1.inst application ONLINE ONLINE qarac1

ora....D2.inst application ONLINE ONLINE qarac2

ora....D3.inst application ONLINE ONLINE qarac4

ora....D4.inst application ONLINE ONLINE qarac3

ora.ORASID.db application ONLINE ONLINE qarac1

ora....SM1.asm application ONLINE ONLINE qarac1

ora....C1.lsnr application ONLINE ONLINE qarac1

ora.qarac1.gsd application ONLINE ONLINE qarac1

ora.qarac1.ons application ONLINE ONLINE qarac1

ora.qarac1.vip application ONLINE ONLINE qarac1

ora....SM2.asm application ONLINE ONLINE qarac2

ora....C2.lsnr application ONLINE ONLINE qarac2

ora.qarac2.gsd application ONLINE ONLINE qarac2

ora.qarac2.ons application ONLINE ONLINE qarac2

ora.qarac2.vip application ONLINE ONLINE qarac2

ora....SM4.asm application ONLINE ONLINE qarac3

ora....C3.lsnr application ONLINE ONLINE qarac3

ora.qarac3.gsd application ONLINE ONLINE qarac3

ora.qarac3.ons application ONLINE ONLINE qarac3

ora.qarac3.vip application ONLINE ONLINE qarac3

ora....SM3.asm application ONLINE ONLINE qarac4

ora....C4.lsnr application ONLINE ONLINE qarac4

ora.qarac4.gsd application ONLINE ONLINE qarac4

ora.qarac4.ons application ONLINE ONLINE qarac4

ora.qarac4.vip application ONLINE ONLINE qarac4

bash-3.00$

It's also very easy to reproduce this issue with a simple test case:

## 1) NOTE the database name is upper case ORASID

##

bash-3.00$ srvctl config database

ORASID

## 2) create a bogus instance "ORASID5" but

## register it under database "orasid" in lower-case

##

bash-3.00$ srvctl add instance -d orasid -i ORASID5 -n qarac4

## Q1: why is this being allowed?

## 3) attempt to remove "ORASID5" using the same

## syntax that was created with the lower case

## database name "orasid"

##

bash-3.00$ srvctl remove instance -d orasid -i ORASID5

Remove instance ORASID5 from the database orasid? (y/[n]) y

CRS-0210: Could not find resource ora.ORASID.ORASID5.inst.

## Q2: why here ORASID is being converted to upper case?

## 4) verify the real name for this instance in CRS

##

bash-3.00$ crs_stat | grep ORASID5

NAME=ora.orasid.ORASID5.inst

## 5) the only solution now is to use crs_unregister

##

bash-3.00$ crs_unregister ora.orasid.ORASID5.inst

bash-3.00$

## BUT you are not done yet -- check this out:

##

## NOTE: ORASID5 is still there -- listed under the ORASID database!

##

bash-3.00$ srvctl config database -d ORASID -a

qarac1 ORASID1 /u01/app/oracle/product/10.2.0/db_1

qarac2 ORASID2 /u01/app/oracle/product/10.2.0/db_1

qarac4 ORASID3 /u01/app/oracle/product/10.2.0/db_1

qarac3 ORASID4 /u01/app/oracle/product/10.2.0/db_1

qarac4 ORASID5 /u01/app/oracle/product/10.2.0/db_1

DB_NAME: null

ORACLE_HOME: /u01/app/oracle/product/10.2.0/db_1

SPFILE: +SYS/ORASID/spfileORASID.ora

DOMAIN: null

DB_ROLE: null

START_OPTIONS: null

POLICY: AUTOMATIC

ENABLE FLAG: DB ENABLED

## If you attempt to remove it you get "CRS-0210"

##

bash-3.00$ srvctl remove instance -d ORASID -i ORASID5

Remove instance ORASID5 from the database ORASID? (y/[n]) y

CRS-0210: Could not find resource ora.ORASID.ORASID5.inst.

## you can't even stop the database at this point

##

bash-3.00$ srvctl stop database -d ORASID

CRS-0210: Could not find resource ora.ORASID.ORASID5.inst.

## Solution? Surprisingly it's to add ORASID5 with the

## right database name! This is really messed up!

##

bash-3.00$ srvctl add instance -d ORASID -i ORASID5 -n qarac4

## After ORASID5 is added with the right database name

## CRS will allow you to remove it

##

bash-3.00$ srvctl remove instance -d ORASID -i ORASID5

Remove instance ORASID5 from the database ORASID? (y/[n]) y

bash-3.00$

## And finally the database/instances are in synch

##

bash-3.00$ srvctl config database -d ORASID -a

qarac1 ORASID1 /u01/app/oracle/product/10.2.0/db_1

qarac2 ORASID2 /u01/app/oracle/product/10.2.0/db_1

qarac4 ORASID3 /u01/app/oracle/product/10.2.0/db_1

qarac3 ORASID4 /u01/app/oracle/product/10.2.0/db_1

DB_NAME: null

ORACLE_HOME: /u01/app/oracle/product/10.2.0/db_1

SPFILE: +SYS/ORASID/spfileORASID.ora

DOMAIN: null

DB_ROLE: null

START_OPTIONS: null

POLICY: AUTOMATIC

ENABLE FLAG: DB ENABLED

bash-3.00$

## stop/start/status works fine now ...

##

bash-3.00$ srvctl stop database -d ORASID

bash-3.00$ srvctl start database -d ORASID

bash-3.00$ srvctl status database -d ORASID

Instance ORASID1 is running on node qarac1

Instance ORASID2 is running on node qarac2

Instance ORASID3 is running on node qarac4

Instance ORASID4 is running on node qarac3

bash-3.00$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值