最近自己搭了一套 11g rac的环境,基于redhat 6, 11g 用了11.2.0.3.0的cluster和db的安装包。 共享存储基于nfs,没有用asm. 环境打完以后,crs_stat -t看到相应的服务都起了,但是第二个节点上的实例不知道怎么回事却没起来。 手工尝试启动,报了如下的错误。
SQL> startup mount ORACLE instance started. Total System Global Area 835104768 bytes Fixed Size 2232960 bytes Variable Size 503319936 bytes Database Buffers 322961408 bytes Redo Buffers 6590464 bytes
ORA-01105: mount is incompatible with mounts by other instances ORA-01606: parameter not identical to that of another mounted instance 我尝试把Node2,node1的实例都down了,换成从node2开始起,node竟然起来了,node1再起用报了同样的错误。 首先检查spfile是否两个实例一致。 SQL*Plus: Release 11.2.0.3.0 Production on Wed Jan 15 03:02:51 2014 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Real Application Clusters, Oracle Label Security, OLAP, Data Mining and Real Application Testing options SQL> show parameter spfile NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string /u04/app/11.2.0/db/product/11.2.0/dbhome_1/dbs/spfileRACDB2.ora 发现node1,node2所使用的spfile不是同一个目录,修改设置。 从有问题的node2上重建pfile,然后生成spfile,修改以后,把修改后的spfile替换共享目录的spfile即可。 SQL> create pfile from spfile; File created. 修改pfile的一个参数,修改为共享存储的目录。 SPFILE='/u04/db/oradata/RACDB/spfileRACDB.ora' 然后重启node1,node2,重启后spfile显示共享了, show parameter spfile,但是还是报同样的错误。貌似修改spfile还没有解决。 网上查询,说在11.2.0.2.0之前的版本,修改修改隐含参数 ._gc_read_mostly_locking为FALSE,但是我这个是11.2.0.3.0的版本,在11.2.0.2.0已经修复。 我把node1,node2的实例启动到nomount,然后比较有什么差别,发现sga,memory_target的设置不太一样。 node1上安装了一些其他的东西,空闲内存已经很紧张了。node2上内存还比较充裕。 可以用free -m来查看大体的内存情况。 最后把memory_target,sga的参数都调低了些,然后重启,就没有问题了。