在RAC 环境多节点数据库,只能启动一个节点上的数据库,当启动另一节点时,报ORA-01102错误,如下:
SQL> startup
ORACLE instance started.
Total System Global Area 536870912 bytes
Fixed Size 2022144 bytes
Variable Size 176162048 bytes
Database Buffers 356515840 bytes
Redo Buffers 2170880 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode
去网上查看资料,发现很多网友都是删除$ORACLE_HOME/dbs/ 下面的一些文件,我按照他们的说法,并没有实现预期的结果。
经过不断摸索实验,终于找到了解决办法,如下:
1)我查看alter日志,提示如下错误:
Sun Aug 31 22:09:26 2014
Error: can not register my instance state - -1
Sun Aug 31 22:09:27 2014
ALTER DATABASE MOUNT
Sun Aug 31 22:09:37 2014
ORA-1102 signalled during: ALTER DATABASE MOUNT...
2)当我轮番打开一个数据库实例的时候,查看参数cluster_database发现为flase,记得之前设置了此参数,感觉可能是此参数引起的,我尝试着在一个节点上将此参数设置为true,然后重启该节点,如下:
SQL> show parameter cluster_database;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cluster_database boolean FALSE
cluster_database_instances integer 1
SQL> alter system set cluster_database=true scope=spfile; --两个节点都做修改
System altered.
SQL> shutdown immediate
3)验证是否能在两个节点上同时打开数据库,结果是可以的,如下:
SQL> select instance_name,status from gv$instance;
INSTANCE_NAME STATUS
---------------- ------------
HHPEN11 OPEN
HHPEN12 OPEN
SQL> startup
ORACLE instance started.
Total System Global Area 536870912 bytes
Fixed Size 2022144 bytes
Variable Size 176162048 bytes
Database Buffers 356515840 bytes
Redo Buffers 2170880 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode
去网上查看资料,发现很多网友都是删除$ORACLE_HOME/dbs/ 下面的一些文件,我按照他们的说法,并没有实现预期的结果。
经过不断摸索实验,终于找到了解决办法,如下:
1)我查看alter日志,提示如下错误:
Sun Aug 31 22:09:26 2014
Error: can not register my instance state - -1
Sun Aug 31 22:09:27 2014
ALTER DATABASE MOUNT
Sun Aug 31 22:09:37 2014
ORA-1102 signalled during: ALTER DATABASE MOUNT...
2)当我轮番打开一个数据库实例的时候,查看参数cluster_database发现为flase,记得之前设置了此参数,感觉可能是此参数引起的,我尝试着在一个节点上将此参数设置为true,然后重启该节点,如下:
SQL> show parameter cluster_database;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cluster_database boolean FALSE
cluster_database_instances integer 1
SQL> alter system set cluster_database=true scope=spfile; --两个节点都做修改
System altered.
SQL> shutdown immediate
3)验证是否能在两个节点上同时打开数据库,结果是可以的,如下:
SQL> select instance_name,status from gv$instance;
INSTANCE_NAME STATUS
---------------- ------------
HHPEN11 OPEN
HHPEN12 OPEN
SQL> show parameter cluster_database;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cluster_database boolean TRUE
cluster_database_instances integer 2
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cluster_database boolean TRUE
cluster_database_instances integer 2
总结:对于多实例数据库,cluster_database参数一定要设置为true,如下是参考ORACLE官方文档
![](http://img.blog.itpub.net/blog/attachment/201409/1/29634949_14095417867prA.png?x-oss-process=style/bb)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29634949/viewspace-1261234/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29634949/viewspace-1261234/