1. Connect to a RAC database that already has mount or open using Sqlplus
sql> ALTER DATABASE backup controlfile to trace noresetlogs;
2. Find the corresponding trace file
3. Scripting Control.sql
Startup nomountcreate Controlfile Reuse Database "ORCL" Noresetlogs noarchivelogmaxlogfiles 192maxlogmembers 3maxdatafiles 1024maxinstances 32maxloghistory 292logfilegroup 1 '/ocfs01/rac/redo01.log ' size 50m,group 2 '/ocfs01/rac /redo02.log ' size 50m,group 3 '/ocfs01/rac/redo03.log ' size 50m,group 4 '/ocfs01/rac/redo04.log ' size 50m--standby logfil Edatafile '/ocfs01/rac/system01.dbf ', '/ocfs01/rac/undotbs01.dbf ', '/ocfs01/rac/sysaux01.dbf ', '/ocfs01/rac/ Undotbs02.dbf ', '/ocfs01/rac/users01.dbf ' character set we8iso8859p1recover databasealter database Open;alter Tablespace temp Add tempfile '/ocfs01/rac/temp01.dbf ' size 167772160 reuse autoextend off;recover databasealter database o Pen;alter tablespace temp Add tempfile '/ocfs01/rac/temp01.dbf ' size 524288000 reuse autoextend on next 655360 maxsize 3276 7m;--The next step is optional if Gv$thread does don't show all the threads:--ALTER DATABASE enable public thread 2;--rep Eat for other threads if applicable
4. Close all instances of the database
$ srvctl Stop database-d Orcl-o Immediate
5. Back up the current control file
6. Make sure that the instance settings are for thread 1
Instance = 1thread = 1
7. Set the cluster_database in the parameter file to False
If you are using SPFile:
Sql> startup nomountsql> alter system set CLUSTER_DATABASE=FALSE scope=spfile;sql> shutdown
8. Run the script to create a new control file
Sqlplus/as sysdbasql> @control. sql
9. Set the parameter cluster_database to True
Sql> alter system set CLUSTER_DATABASE=TRUE Scope=spfile;
10. Close the database
sql> shutdown Immediate
11. Start all instances
$ srvctl Start database-d orcl$ srvctl status database-d ORCL
12. Backing Up the database
Oracle RAC Rebuild Control file