oracle11g非归档模式下恢复控制文件
Steps to recover the control files in NOARCHIVELOG mode
Environment for testing:
OS: Oracle Linux Server 6.4
Linux DGPrimary01 2.6.39-400.17.1.el6uek.i686 #1 SMP Fri Feb
22 18:17:46 PST 2013 i686 i686 i386 GNU/Linux
Database: Oracle Database 11g Enterprise Edition Release
11.2.0.4.0
Method 1:
All of the control files are lost. All of the online redo log
files and data files are intact.
1. Shuting down the database cleanly
SQL> SHUTODWN IMMEDIATE
2. Removing all of the control files
[oracle@DGPrimary01 ~]$ rm -f
/u01/app/oracle/fast_recovery_area/PRI11G/controlfile/*
[oracle@DGPrimary01 ~]$ rm -f
/u01/app/oracle/oradata/PRI11G/controlfile/*
3. Creating Control files
SQL> CREATE CONTROLFILE REUSE DATABASE pri11g NORESETLOGS
NOARCHIVELOG
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 226
LOGFILE
GROUP
1 '/u01/app/oracle/oradata/PRI11G/onlinelog/o1_mf_1_f2nj7wvx_.log'
SIZE 50M,
GROUP
2 '/u01/app/oracle/oradata/PRI11G/onlinelog/o1_mf_2_f2nj7z3n_.log'
SIZE 50M,
GROUP
3 '/u01/app/oracle/oradata/PRI11G/onlinelog/o1_mf_3_f2nj81fx_.log'
SIZE 50M
DATAFILE
'/u01/app/oracle/oradata/PRI11G/datafile/o1_mf_example_f2nj8n6o_.dbf',
'/u01/app/oracle/oradata/PRI11G/datafile/o1_mf_sysaux_f2nj5c23_.dbf',
'/u01/app/oracle/oradata/PRI11G/datafile/o1_mf_system_f2nj5bz2_.dbf',
'/u01/app/oracle/oradata/PRI11G/datafile/o1_mf_undotbs1_f2nj5c27_.dbf',
'/u01/app/oracle/oradata/PRI11G/datafile/o1_mf_users_f2nj5c2r_.dbf'
CHARACTER SET
ZHS16GBK;
4. Opening the database for nomal access
SQL> ALTER DATABASE OPEN;
Method 2:
All of the control files and the online redo log files are
lost. All of the data files are intact.
1. Shuting down the database cleanly
SQL> SHUTODWN IMMEDIATE
2. Removing all of the control files and the online redo log
files
[oracle@DGPrimary01 ~]$ rm -f
/u01/app/oracle/fast_recovery_area/PRI11G/controlfile/*
[oracle@DGPrimary01 ~]$ rm -f
/u01/app/oracle/oradata/PRI11G/controlfile/*
[oracle@DGPrimary01 ~]$ rm -f
/u01/app/oracle/fast_recovery_area/PRI11G/onlinelog/*
[oracle@DGPrimary01 ~]$ rm -f
/u01/app/oracle/oradata/PRI11G/onlinelog/*
3. Creating Control files with RESETLOGS
CREATE CONTROLFILE REUSE DATABASE pri11g RESETLOGS
NOARCHIVELOG
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 226
LOGFILE
GROUP
1 '/u01/app/oracle/oradata/PRI11G/onlinelog/redo11.log' SIZE
50M,
GROUP
2 '/u01/app/oracle/oradata/PRI11G/onlinelog/redo21.log' SIZE
50M,
GROUP
3 '/u01/app/oracle/oradata/PRI11G/onlinelog/redo31.log' SIZE
50M
DATAFILE
'/u01/app/oracle/oradata/PRI11G/datafile/o1_mf_example_f2nj8n6o_.dbf',
'/u01/app/oracle/oradata/PRI11G/datafile/o1_mf_sysaux_f2nj5c23_.dbf',
'/u01/app/oracle/oradata/PRI11G/datafile/o1_mf_system_f2nj5bz2_.dbf',
'/u01/app/oracle/oradata/PRI11G/datafile/o1_mf_undotbs1_f2nj5c27_.dbf',
'/u01/app/oracle/oradata/PRI11G/datafile/o1_mf_users_f2nj5c2r_.dbf'
CHARACTER SET
ZHS16GBK;
4. Opening the database with RESETLOGS for nomal access
SQL> ALTER DATABASE OPEN RESETLOGS;
5. Adding additional log file members in anoter location
SQL> ALTER DATABASE ADD LOGFILE MEMBER
'/u01/app/oracle/fast_recovery_area/PRI11G/onlinelog/redo12.log' TO
GROUP 1;
SQL> ALTER DATABASE ADD LOGFILE MEMBER
'/u01/app/oracle/fast_recovery_area/PRI11G/onlinelog/redo22.log' TO
GROUP 2;
SQL> ALTER DATABASE ADD LOGFILE MEMBER
'/u01/app/oracle/fast_recovery_area/PRI11G/onlinelog/redo32.log' TO
GROUP 3;
!!The End!!