由于RAC建立时控制文件没有做冗余,所以需要新增一个 ## 1.备份参数文件 ``` sqlplus / as sysdba SQL> create pfile='/tmp/spfile-bk.ora' from spfile; ``` ## 2. 更新控制文件 ``` sqlplus '/ as sysdba' SQL> select name from v$controlfile; NAME -------------------------------------------------------------------------------- +DATA01/test/controlfile/current.200.165920580 SQL> alter system set control_files='+DATA01/test/controlfile/current.200.165920580','+FRA01' scope=spfile sid='*'; ``` ## 3. 关闭数据库 ``` srvctl stop database -d dwdev ``` ## 4. 启动数据库值nomount **rac其中一节点** ``` rman target / RMAN>restore controlfile from '+DATA1/test/controlfile/current.200.165920580'; Starting restore at 01-APR-15 allocated channel: ORA_DISK_10 channel ORA_DISK_1: sid=testinstance=testdevtype=DISK channel ORA_DISK_1: copied control file copy output filename=+DATA1/test/controlfile/current.200.165920580 output filename=+FRA01/test/controlfile/current.200.693721750 Finished restore at 01-APR-15 ``` ## 5. 修改controlfile参数 ``` sqlplus / as sysdba SQL> alter system set control_files='+DATA01/test/controlfile/current.200.165920580','+FRA01/test/controlfile/current.200.693721750' scope=spfile sid='*'; ``` ## 6. 重新启动数据库 **各个节点** ``` sqlplus / as sysdba SQL> shutdown immediate; SQL>startup ``` 或者 **一个节点** ``` srvctl start database -d dwdev ``` ## 7.检查控制文件状态 ``` SQL> select name from v$controlfile; NAME ------------------------------------------------------------------ +DATA01/test/controlfile/current.200.165920580 +FRA01/test/controlfile/current.200.693721750 ``` ## 8.删除备份的参数文件 ``` rm /tmp/spfile-bk.ora ```