CRS-1006: No more members to consider 南辕北辙

http://inthirties.com:90/thread-1359-2-1.html

这次的solaris有单实例迁移到RAC上不是很顺利。呵呵呵,放假了,小女儿在家里,家里热闹的多了。一下要你 给她拿剪刀,一下要你给他画画,做手工,这样的也就是断断续续的。本已经结束了,在节点上也都注册好了database和instance。并且也已经试 过了一次,整个rac都搞好了,可以运用了。11点带着小女儿去万佳的儿童游乐场力去玩了。到晚上回来。ssh连接不上去了,机器又出问题了。把服务器看 了一下,还好是vm的服务器 suspend,这个环境是在服务器的vm里安装的,可能是小女儿催的急,hide vm的时候,没看清楚,默认的选项就是suspend,所以就这样suspend了。然后resume以后,vm失去响应,也不知道是不是vm的bug, 在我的这个机器里出现了好多次这样的情况了。这次也没有幸免, 这样就在shutdown然后start吧。

机器重启,crs_stat -t,发现问题了。
instance,database的状态不对了。 显示为
Name Type Target State Host
————————————————————
ora.soldb.db application ONLINE OFFLINE
ora….b1.inst application ONLINE OFFLINE
很明显,crs已经视图启动这两个application,所以traget是ONLINE,不过启动都失败了 所以State仍然还是OFFLINE。
自动的crs启动,看来是没有成功叻。

手工启动试试吧,见证奇迹的时候还是没有出现。依然失败。
不过可以看到启动失败的信息叻
CRS-1006: No more members to consider
CRS-0215: Could not start resource ‘ora.soldb.db’.

看样子是ocr里的注册出现问题。以前在vip改ip以后,出现够这样的问题,把vip重新注册以后就可以了。这里难道也是这样的吗,想当然的, 按照以前的处理vip经验,不过没有用modify,简单的处理就是先remove,然后在add。
srvctl remove database -d soldb
srvctl remove instance -d soldb -i soldb1
srvctl add database -d soldb -o /u01/app/oracle/product/10.2.0/db_1
srvctl add instance -d soldb -i soldb1 -n solaris

马上启动这两个application,还是报错,和以前一样。

这可打击到我叻,原本觉得这么一搞就可以马上陪孩子看电视去了,看来还是要多仔细进行分析才行。

StartResource error for ora.soldb.soldb1.inst error code = 1
Start of `ora.soldb.soldb1.inst` on member `solaris` failed.
CRS-1006: No more members to consider
StartResource error for ora.soldb.db error code = 1

也没有特别的信息,既然是启动不成功,那就还要查查实例的日志, 其他的日志就不需要看,和这里没有关系
alert日志里没有让人眼前一亮的信息,甚至连启动的信息都还没有,也就是说这里数据库连nomount都没有成功,如果有nomount,那 么保证 alert.log一定是有更新的。所以这样一来。还是把问题定位在注册方面。

srvctl config database -d soldb -a
看看database的注册信息,咦DB NAME和Spfile都是空的,在srvctl里多加了-n -p的参数,再看看config,这次不错,db name和spfile都已经看到了。

再启动一下,奇迹见证了没有呀,还是没有。

不过确定问题应该就在实例的启动和注册这块了。

马上搜工计入sqlplus,然后startup,提示熟悉的spfile找不到的问题。

眼前一亮,spfile不在,而crs_stat里,ASM明明是存在的呀。

难道是ASM里的盘没有mount成功

ORACLE_SID=+ASM1 进入ASM实例,
SQL> select path, mount_status from v$asm_disk;
都是close状态,也就是disk都没有mount,这样的话,当然就找不到,spfie了呀。spfile是存在在asm disk里的,所以启动实例当然失败,由于nomount都没有成功,所以实例的alert日志文件当然也不会有任何记录呀。alert是nomount 可以打开才开始记录日志的。

检查asm的asm_diskgroups的设置,asm_diskgroups是空的,所以asm实例启动的时候不会mount所有的盘了。检 查 asm_diskgroup视图,dg1的状态还是nomount的,问题确定了。解决,指定asm_diskgroups参数即可,不过这里需要注意, 由于asm是以pfile启动的,所以alter system set asm_diskgroups仅仅只是修改memory,下次启动asm就有会失效了。这就是我上次可以,而重启机器以后实例无法启动的原因了。 应该是修改asm的pfile文件,这里asm的pfile是在$ORACLE_BASE/admin/+ASM/pfile/init.ora下的,你 可以看看$ORACLE_HOME/dbs/下有一个init+ASM1.ora文件,不过这个文件是一个link,源地址就是 在$ORACLE_BASE/admin/+ASM/pfile/init.ora
[oracle@solaris ~]ls -al $ORACLE_HOME/dbs/init+ASM1.ora
lrwxrwxrwx 1 oracle oinstall 41 Apr 3 21:48 /u01/app/oracle/product/10.2.0/db_1/dbs/init+ASM1.ora -> /u01/app/oracle/admin/+ASM/pfile/init.ora
重启asm实例,然后启动ora.soldb.db,tail +100f打开实例的alert文件,看到alert文件在发生启动的日志,知道这次问题应该解决了。
数据库实例正常启动成功。

回想这次故障,确实,在迁移这个RAC的时候,用叻最快的方法。是用了asm的最小启动,asm里是以前的单机实例的数据文件和其他的文件,然后 手工注册到RAC,注册以后,用alter system set asm_diskgroups手工mount的dg,而后疏忽掉asm是pfile启动的,从而导致这个问题。

不过Oracle这里给出的错误号,确实有些南辕北辙了,没有给我一个明确的方向,导致自己开始怀疑是srvctl add的问题。还有一个Oracle应该提供的是,就是当我还没有启动spfile实例到nomount的时候,这里的失败日志在哪里可以查到踪影呀。
首先,nomount不成功,可能是实例alert是应该没有信息的,然后这里很显然和cssd是没有关系的,所以ocssd.log也没有信息 的,这个也说的过,crsd这里是crs里各节点resource的注册和通知信息,这里感觉到确实好像和这个也没有关系。 那么crs的alert信息,是crs的运行的日志,这里也确实不应该有实例启动失败的信息,那么/var/adm/message视乎就更不会有实例启 动命令的反馈信息叻。比较这是os的日志。那么诸如此类的信息性,Oracle你到底记录到哪里去了叻。是不是应该给我们一个解释呀。要不对我们对故障的 排除可以提高更大的效率。
  • 提供Oracle管理/故障处理/优化/安装/RAC/备份恢复技术服务,提供专业的Oracle培训和咨询服务。
  • 邮件: [email protected]
  • MSN: [email protected]
  • QQ: [email protected]
  • 电话: 13828706466
  • 技术博客 http://blog.csdn.net/inthirties
  • 个人站点 http://blog.inthirties.com

你可能感兴趣的:(CRS-1006: No more members to consider 南辕北辙)