题目部分
在Oracle中,如何将RAC软件转换为单实例软件?
♣
答案部分
在RAC环境中,只有在集群正常启动的情况下才能创建和启动单实例的数据库,否则报错:
[oracle@raclhr-11gR2-N1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Tue Jun 5 09:40:26 2018
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
SYS@OGGS> startup
ORA-29702: error occurred in Cluster Group Service operation
SYS@OGGS>
解决办法就是,根据MOS文档(ID 433310.1)按照以下步骤来禁用RAC特性:
NON-RAC Database Startup Giving Error ORA-29702 (文档 ID 433310.1)
1. 完全关闭数据库
2. 使用oracle用户重新编译RAC环境:
$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk rac_off
$ make -f ins_rdbms.mk ioracle
3. 启动数据库
需要注意的是,在执行编译后,集群仍然能正常启动,但是集群中的RAC数据库不能正常启动,会报错:
SYS@lhrrac11> startup
ORA-01078: failure in processing system parameters
ORA-00439: feature not enabled: Real Application Clusters
以上编译操作是可逆的,所以,可以执行以下操作进行恢复:
$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk rac_on
$ make -f ins_rdbms.mk ioracle
& 说明:
有关RAC软件转换为单实例软件的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2155632/。
本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗