oracle rac重建控制文件
2016-08-14 16:06 abce 阅读(1300) 评论(0) 编辑 收藏 举报1.使用sqlplus连接到已经mount或open的rac数据库
sql> alter database backup controlfile to trace noresetlogs;
2.找出对应的trace文件
3.编写脚本control.sql
startup nomount create controlfile reuse database "orcl" noresetlogs noarchivelog maxlogfiles 192 maxlogmembers 3 maxdatafiles 1024 maxinstances 32 maxloghistory 292 logfile group 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 logfile datafile '/ocfs01/rac/system01.dbf', '/ocfs01/rac/undotbs01.dbf', '/ocfs01/rac/sysaux01.dbf', '/ocfs01/rac/undotbs02.dbf', '/ocfs01/rac/users01.dbf' character set we8iso8859p1 recover database alter database open; alter tablespace temp add tempfile '/ocfs01/rac/temp01.dbf' size 167772160 reuse autoextend off; recover database alter database open; alter tablespace temp add tempfile '/ocfs01/rac/temp01.dbf' size 524288000 reuse autoextend on next 655360 maxsize 32767m; -- the next step is optional if gv$thread does not show all the threads: -- alter database enable public thread 2; -- repeat for other threads if applicable
4.关闭数据库所有实例
$ srvctl stop database -d orcl -o immediate
5.备份当前的控制文件
6.确保实例设置都是针对thread 1
instance = 1 thread = 1
7.将参数文件中的cluster_database设置为false
如果是使用spfile:
sql> startup nomount sql> alter system set cluster_database=false scope=spfile; sql> shutdown
8.运行脚本创建新的控制文件
sqlplus / as sysdba SQL> @control.sql
9.将参数cluster_database设置为true
sql> alter system set cluster_database=true scope=spfile;
10.关闭数据库
sql> shutdown immediate
11.启动所有实例
$ srvctl start database -d orcl $ srvctl status database -d orcl
12.备份数据库