SQL> select status from v$instance; STATUS ------------ OPEN SQL> alter database backup controlfile to trace; Database altered.2、查看控制文件的trace备份(udump) CREATE CONTROLFILE REUSE DATABASE "PROD" NORESETLOGS NOARCHIVELOG MAXLOGFILES 192 MAXLOGMEMBERS 3 MAXDATAFILES 1024 MAXINSTANCES 32 MAXLOGHISTORY 292 LOGFILE GROUP 1 "/u01/app/oracle/oradata/prod/log11.log" SIZE 50M, GROUP 2 "/u01/app/oracle/oradata/prod/log12.log" SIZE 50M, GROUP 3 "/u01/app/oracle/oradata/prod/log21.log" SIZE 50M, GROUP 4 "/u01/app/oracle/oradata/prod/log22.log" SIZE 50M -- STANDBY LOGFILE DATAFILE "/u01/app/oracle/oradata/prod/system01.dbf", "/u01/app/oracle/oradata/prod/undotbs01.dbf", "/u01/app/oracle/oradata/prod/sysaux01.dbf", "/u01/app/oracle/oradata/prod/users01.dbf", "/u01/app/oracle/oradata/prod/example01.dbf", "/u01/app/oracle/oradata/prod/undotbs02.dbf" CHARACTER SET ZHS16GBK ;3、关闭database,启动其中一个instance到弄mount SQL> startup nomount; ORACLE instance started. Total System Global Area 612368384 bytes Fixed Size 2022832 bytes Variable Size 184549968 bytes Database Buffers 423624704 bytes Redo Buffers 2170880 bytes
SQL> @/home/oracle/cr_ctr.sql CREATE CONTROLFILE REUSE DATABASE "PROD" NORESETLOGS NOARCHIVELOG * ERROR at line 1: ORA-01503: CREATE CONTROLFILE failed ORA-12720: operation requires database is in EXCLUSIVE mode SQL> show parameter cluster NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ cluster_database boolean TRUE cluster_database_instances integer 2 cluster_interconnects string
---创建失败,原因是在RAC下控制文件时处于共享(share)模式,需启动到独立(exclusive)模式,才能重建;修改cluster_database 为false,然后重建 重新建立控制文件: SQL> alter system set cluster_database =false scope=spfile; System altered. SQL> startup nomount ORACLE instance started. Total System Global Area 612368384 bytes Fixed Size 2022832 bytes Variable Size 184549968 bytes Database Buffers 423624704 bytes Redo Buffers 2170880 bytes
SQL> show parameter cluster NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ cluster_database boolean FALSE cluster_database_instances integer 1 cluster_interconnects string
SQL> @/home/oracle/cr_ctr.sql Control file created.
告警日志: alter.log: Mon Mar 23 16:41:00 2015 CREATE CONTROLFILE REUSE DATABASE "PROD" NORESETLOGS NOARCHIVELOG MAXLOGFILES 192 MAXLOGMEMBERS 3 MAXDATAFILES 1024 MAXINSTANCES 32 MAXLOGHISTORY 292 LOGFILE GROUP 1 "/u01/app/oracle/oradata/prod/log11.log" SIZE 50M, GROUP 2 "/u01/app/oracle/oradata/prod/log12.log" SIZE 50M, GROUP 3 "/u01/app/oracle/oradata/prod/log21.log" SIZE 50M, GROUP 4 "/u01/app/oracle/oradata/prod/log22.log" SIZE 50M -- STANDBY LOGFILE DATAFILE "/u01/app/oracle/oradata/prod/system01.dbf", "/u01/app/oracle/oradata/prod/undotbs01.dbf", "/u01/app/oracle/oradata/prod/sysaux01.dbf", "/u01/app/oracle/oradata/prod/users01.dbf", "/u01/app/oracle/oradata/prod/example01.dbf", "/u01/app/oracle/oradata/prod/undotbs02.dbf" CHARACTER SET ZHS16GBK Mon Mar 23 16:41:00 2015 WARNING: Default Temporary Tablespace not specified in CREATE DATABASE command Default Temporary Tablespace will be necessary for a locally managed database in future release WARNING: You are creating/reusing datafile /u01/app/oracle/oradata/prod/control01.ctl. WARNING: Oracle recommends creating new datafiles on devices with zero offset. The command "/usr/sbin/mklv -y LVname -T O -w n -s n -r n VGname NumPPs" can be used. Please contact Oracle customer support for more details. WARNING: You are creating/reusing datafile /u01/app/oracle/oradata/prod/control01.ctl. WARNING: Oracle recommends creating new datafiles on devices with zero offset. The command "/usr/sbin/mklv -y LVname -T O -w n -s n -r n VGname NumPPs" can be used. Please contact Oracle customer support for more details. WARNING: You are creating/reusing datafile /u01/app/oracle/oradata/prod/control02.ctl. WARNING: Oracle recommends creating new datafiles on devices with zero offset. The command "/usr/sbin/mklv -y LVname -T O -w n -s n -r n VGname NumPPs" can be used. Please contact Oracle customer support for more details. WARNING: You are creating/reusing datafile /u01/app/oracle/oradata/prod/control02.ctl. WARNING: Oracle recommends creating new datafiles on devices with zero offset. The command "/usr/sbin/mklv -y LVname -T O -w n -s n -r n VGname NumPPs" can be used. Please contact Oracle customer support for more details. Setting recovery target incarnation to 1 Mon Mar 23 16:41:05 2015 Successful mount of redo thread 1, with mount id 286981148 Mon Mar 23 16:41:05 2015 Completed: CREATE CONTROLFILE REUSE DATABASE "PROD" NORESETLOGS NOARCHIVELOG MAXLOGFILES 192 MAXLOGMEMBERS 3 MAXDATAFILES 1024 MAXINSTANCES 32 MAXLOGHISTORY 292 LOGFILE GROUP 1 "/u01/app/oracle/oradata/prod/log11.log" SIZE 50M, GROUP 2 "/u01/app/oracle/oradata/prod/log12.log" SIZE 50M, GROUP 3 "/u01/app/oracle/oradata/prod/log21.log" SIZE 50M, GROUP 4 "/u01/app/oracle/oradata/prod/log22.log" SIZE 50M -- STANDBY LOGFILE DATAFILE "/u01/app/oracle/oradata/prod/system01.dbf", "/u01/app/oracle/oradata/prod/undotbs01.dbf", "/u01/app/oracle/oradata/prod/sysaux01.dbf", "/u01/app/oracle/oradata/prod/users01.dbf", "/u01/app/oracle/oradata/prod/example01.dbf", "/u01/app/oracle/oradata/prod/undotbs02.dbf" CHARACTER SET ZHS16GBK4、重建成功,启动到open SQL> select status from v$instance; STATUS ------------ MOUNTED
SQL> alter database open; Database altered.
添加临时表空间数据文件: SQL> select name from v$tempfile; no rows selected
SQL> select tablespace_name from dba_tablespaces; TABLESPACE_NAME ------------------------------ SYSTEM UNDOTBS1 SYSAUX TEMP USERS UNDOTBS2 EXAMPLE 7 rows selected.
SQL> alter tablespace temp add 2 tempfile "/u01/app/oracle/oradata/prod/temp01.dbf" size 100m reuse; Tablespace altered. SQL> select name from v$tempfile; NAME -------------------------------------------------------------------------------- /u01/app/oracle/oradata/prod/temp01.dbf5、修改cluster_database参数,启动所有instance SQL> alter system set cluster_database =true scope=spfile; System altered.启动所有Instance,如果所有instance启动成功,则controlfile重建成功。更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址