报错现象
今天在操作RAC某个节点重启,结果重启的时候报错:
SQL> startup mount;
ORACLE instance started.
Total System Global Area 9.4869E+10 bytes
Fixed Size 2264056 bytes
Variable Size 5.0197E+10 bytes
Database Buffers 4.4560E+10 bytes
Redo Buffers 109174784 bytes
ORA-01105: mount is incompatible with mounts by other instances
ORA-01606: parameter not identical to that of another mounted instance
错误说明:
$ oerr ora 1105
01105, 00000, "mount is incompatible with mounts by other instances"
// *Cause: An attempt to mount the database discovered that another instance
// mounted a database by the same name, but the mount is not
// compatible. Additional errors are reported explaining why.
// *Action: See accompanying errors.
$ oerr ora 1606
01606, 00000, "parameter not identical to that of another mounted instance"
// *Cause: A parameter was different on two instances.
// *Action: Modify the initialization parameter and restart.
这个错误的意识是说:如果两个节点的参数不一致的话,有可能在启动到mount状态的时候,就会报错:
ORA-01105,ORA-01606
解决办法
解决办法是查看初始化参数和隐藏参数在两个节点的值,看哪些不一致
参考隐藏参数
set linesize 333
col name for a35
col description for a66
col value for a30
SELECT i.ksppinm name,
i.ksppdesc description,
CV.ksppstvl VALUE
FROM sys.x$ksppi i, sys.x$ksppcv CV
WHERE i.inst_id = USERENV ('Instance')
AND CV.inst_id = USERENV ('Instance')
AND i.indx = CV.indx
AND i.ksppinm LIKE '/_gc%' ESCAPE '/'
ORDER BY REPLACE (i.ksppinm, '_', '');
查看不同的参数
col name format a25
col value format a55
set lines 210
select * from (select name,value,inst_id from gv$parameter where inst_id=1) a full join (select name,value,inst_id from gv$parameter where inst_id=2) b
on a.name = b.name where a.value <> b.value;
找到不一致的参数后,修改为两个节点一致,再重启其中报错的实例