ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 解决因ocr资源状态为unknown导致CRS-0223

解决因ocr资源状态为unknown导致CRS-0223

原创 Linux操作系统 作者:myownstars 时间:2012-05-04 16:31:56 0 删除 编辑
OS: Linux 2.6.9-89
DB: 2节点RAC  10205
症状:第一个instance无法启动,
justin5077.$ srvctl start instance -d PRE030 -i PRE030N3
PRKP-1001 : Error starting instance PRE030N3 on node justin5077
CRS-1028: Dependency analysis failed because of:
CRS-0223: Resource 'ora.PRE030.PRE030N3.inst' has placement error.
登陆该节点查看
$ crs_stat -t
Name           Type           Target    State     Host       
------------------------------------------------------------
ora....N3.inst application    ONLINE    UNKNOWN   seml...5077
ora....N4.inst application    ONLINE    ONLINE    seml...5078
ora.PRE030.db  application    ONLINE    ONLINE    seml...5077
ora....SM3.asm application    ONLINE    ONLINE    seml...5077
ora....77.lsnr application    ONLINE    UNKNOWN   seml...5077
ora....077.gsd application    ONLINE    ONLINE    seml...5077
ora....077.ons application    ONLINE    ONLINE    seml...5077
ora....077.vip application    ONLINE    ONLINE    seml...5077
ora....SM4.asm application    ONLINE    ONLINE    seml...5078
ora....78.lsnr application    ONLINE    UNKNOWN   seml...5078
ora....078.gsd application    ONLINE    ONLINE    seml...5078
ora....078.ons application    ONLINE    ONLINE    seml...5078
ora....078.vip application    ONLINE    ONLINE    seml...5078
尝试srvctl启动报告上述错误,改用sqlplus
$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.3.0 - Production on Fri May 4 08:11:05 2012
Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.
Connected to an idle instance.
SQL> startup nomount
;ORA-03113: end-of-file on communication channel
alterlog显示错误ora-29702
查看MOS,有篇文章与现有情况类似
OCR由于不正确的使用crs_stop/crs_start出现紊乱,导致ora开头的资源状态变为unkown;
解决方法是以毒攻毒,即使有crs_stop停止unknown的资源,然后在尝试srvctl启动;
操作之前必须确保OCR有最新的备份
$ crs_stop ora.PRE030.PRE030N3.inst
Attempting to stop `ora.PRE030.PRE030N3.inst` on member `justin5077`
Stop of `ora.PRE030.PRE030N3.inst` on member `justin5077` succeeded.
$ srvctl start instance -d PRE030 -i PRE030N3
此时可以成功启动instance


CRS: Resource in UNKNOWN state and srvctl Cannot Start/Stop the Resource [ID 845709.1]
The UNKNOWN state can often be resolved by bringing the resource offline using crs_stop.


Note: crs_stop and crs_start are NOT supported for use on ora.* resources, unless you are explicitly instructed to use them by an Oracle support analyst, or following this note's steps EXACTLY. 
Improper use of crs_stop and crs_start can corrupt your OCR.

Any CRS resource can be in an UNKNOWN state, including vip, gsd, database, or instances.  The following uses an instance resource as an example.
1. Find the proper name for your instance resource.  To find it, do "crs_stat -u | grep inst", this will give the names of all instance resources in the OCR.
$ crs_stat -u | grep inst
NAME=ora.V102.V1021.inst
NAME=ora.V102.V1022.inst
NAME=ora.prod.prod1.inst
NAME=ora.prod.prod2.inst
Pick the instance associated with the node and database in question.
For example, for a database named prod and instance named prod1, the resource name will be "ora.prod.prod1.inst".

2.  Before you go any further, make sure that you have a recent backup of your OCR.
You can check on your OCR automatic backups with the command "ocrconfig -showbackup":
$ ocrconfig -showbackup
oradb1 2009/06/19 07:35:28 /u01/app/oracle/product/10gR2/crs/cdata/temp
oradb1 2009/06/19 03:35:26 /u01/app/oracle/product/10gR2/crs/cdata/temp
oradb1 2009/06/18 23:35:25 /u01/app/oracle/product/10gR2/crs/cdata/temp
oradb1 2009/06/18 03:35:20 /u01/app/oracle/product/10gR2/crs/cdata/temp
oradb1 2009/06/02 07:01:26 /u01/app/oracle/product/10gR2/crs/cdata/temp
If no backup exists, then create one using ocrconfig -export, following the instructions in the documentation:
Oracle� Database Oracle Clusterware and Oracle Real Application Clusters Administration and Deployment Guide - 10g Release 2 (10.2)

3. Restore the instance resource to OFFLINE with this command:
crs_stop [instance resource name]
eg:
$ crs_stop ora.prod.prod1.inst

Note: if the instance is online then this command will stop it.
 
4. Check that instance status is now OFFLINE instead of UNKNOWN
$ crs_stat -u ora.prod.prod1.inst
NAME=ora.prod.prod1.inst
TYPE=application
TARGET=OFFLINE
STATE=OFFLINE
5. If the instance status is OFFLINE, then you can try again to start it with srvctl.
6. If the startup fails again, then open a SR and provide Oracle Support with the following information:
a) Gather a trace by using the following script.
script. /tmp/trace1.out
env
crs_stat -u ora.prod.prod1.inst
crs_stop ora.prod.prod1.inst
crs_stat -u ora.prod.prod1.inst
export SRVM_TRACE=TRUE
srvctl start instance -d prod -i prod1
export SRVM_TRACE=
crs_stat -u ora.prod.prod1.inst
exit
(Replace "ora.prod.prod1.inst" with the name of your actual instance resource; replace prod with the name of your database and prod1 with the name of your instance).
The trace log will be found in /tmp/trace1.out.
b) latest crsd.log from this node
c) the resource log for this instance from $CRS_HOME/log/<>/racg
d) ls -l of $ORACLE_HOME/log/<>/racg
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15480802/viewspace-722738/,如需转载,请注明出处,否则将追究法律责任。

下一篇: vi命令鸟哥详解
请登录后发表评论 登录
全部评论

注册时间:2010-03-18

  • 博文量
    375
  • 访问量
    3042015