ARCHIVELOG模式下用户管理恢复控制文件—使用trace文件重建控制文件

首先生成控制文件的sql脚本

  1. SQL> alter database backup controlfile to trace as '/u01/app/oracle/controlfile/control.sql';  
  2.   
  3. 数据库已更改。  
SQL> alter database backup controlfile to trace as '/u01/app/oracle/controlfile/control.sql';

数据库已更改。

其实就是生成了一个控制文件的脚本,去掉注释以后这个sql脚本的内容如下:

  1. --#1. NORESETLOGS case  
  2.   
  3. STARTUP NOMOUNT;  
  4.   
  5. CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG  
  6.     MAXLOGFILES 16  
  7.     MAXLOGMEMBERS 3  
  8.     MAXDATAFILES 100  
  9.     MAXINSTANCES 8  
  10.     MAXLOGHISTORY 292  
  11. LOGFILE  
  12.   GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log'  SIZE 50M,  
  13.   GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log'  SIZE 50M,  
  14.   GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log'  SIZE 50M  
  15. DATAFILE  
  16.   '/u01/app/oracle/oradata/orcl/system01.dbf',  
  17.   '/u01/app/oracle/oradata/orcl/undotbs01.dbf',  
  18.   '/u01/app/oracle/oradata/orcl/sysaux01.dbf',  
  19.   '/u01/app/oracle/oradata/orcl/users01.dbf',  
  20.   '/u01/app/oracle/oradata/orcl/tb1.dbf'  
  21. CHARACTER SET ZHS16GBK;  
  22.   
  23. RECOVER DATABASE;  
  24.   
  25. ALTER SYSTEM ARCHIVE LOG ALL;  
  26.   
  27. ALTER DATABASE OPEN;  
  28.   
  29. ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 20971520  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;  
  30.   
  31. --#2. RESETLOGS case  
  32.   
  33. STARTUP NOMOUNT;  
  34.   
  35. CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS  ARCHIVELOG  
  36.     MAXLOGFILES 16  
  37.     MAXLOGMEMBERS 3  
  38.     MAXDATAFILES 100  
  39.     MAXINSTANCES 8  
  40.     MAXLOGHISTORY 292  
  41. LOGFILE  
  42.   GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log'  SIZE 50M,  
  43.   GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log'  SIZE 50M,  
  44.   GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log'  SIZE 50M  
  45. DATAFILE  
  46.   '/u01/app/oracle/oradata/orcl/system01.dbf',  
  47.   '/u01/app/oracle/oradata/orcl/undotbs01.dbf',  
  48.   '/u01/app/oracle/oradata/orcl/sysaux01.dbf',  
  49.   '/u01/app/oracle/oradata/orcl/users01.dbf',  
  50.   '/u01/app/oracle/oradata/orcl/tb1.dbf'  
  51. CHARACTER SET ZHS16GBK;  
  52.   
  53. RECOVER DATABASE USING BACKUP CONTROLFILE;  
  54.   
  55. ALTER DATABASE OPEN RESETLOGS;  
  56.   
  57. ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 20971520  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;  
--#1. NORESETLOGS case

STARTUP NOMOUNT;

CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log'  SIZE 50M,
  GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log'  SIZE 50M,
  GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log'  SIZE 50M
DATAFILE
  '/u01/app/oracle/oradata/orcl/system01.dbf',
  '/u01/app/oracle/oradata/orcl/undotbs01.dbf',
  '/u01/app/oracle/oradata/orcl/sysaux01.dbf',
  '/u01/app/oracle/oradata/orcl/users01.dbf',
  '/u01/app/oracle/oradata/orcl/tb1.dbf'
CHARACTER SET ZHS16GBK;

RECOVER DATABASE;

ALTER SYSTEM ARCHIVE LOG ALL;

ALTER DATABASE OPEN;

ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 20971520  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;

--#2. RESETLOGS case

STARTUP NOMOUNT;

CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log'  SIZE 50M,
  GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log'  SIZE 50M,
  GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log'  SIZE 50M
DATAFILE
  '/u01/app/oracle/oradata/orcl/system01.dbf',
  '/u01/app/oracle/oradata/orcl/undotbs01.dbf',
  '/u01/app/oracle/oradata/orcl/sysaux01.dbf',
  '/u01/app/oracle/oradata/orcl/users01.dbf',
  '/u01/app/oracle/oradata/orcl/tb1.dbf'
CHARACTER SET ZHS16GBK;

RECOVER DATABASE USING BACKUP CONTROLFILE;

ALTER DATABASE OPEN RESETLOGS;

ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 20971520  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;

然后删除数据库模拟控制控制文件丢失

  1. SQL> conn /as sysdba  
  2. 已连接到空闲例程。  
  3. SQL> startup  
  4. ORACLE 例程已经启动。  
  5.   
  6. Total System Global Area  167772160 bytes  
  7. Fixed Size                  1266392 bytes  
  8. Variable Size              62917928 bytes  
  9. Database Buffers          100663296 bytes  
  10. Redo Buffers                2924544 bytes  
  11. 数据库装载完毕。  
  12. 数据库已经打开。  
  13. SQL> conn u1/u1  
  14. 已连接。  
  15. SQL> select * from t;  
  16.   
  17.         ID VALUE  
  18. ---------- ----------  
  19.          1 a  
  20.   
  21. SQL> insert into t values(2,'b');  
  22.   
  23. 已创建 1 行。  
  24.   
  25. SQL> commit;  
  26.   
  27. 提交完成。  
  28.   
  29. SQL> select * from t;  
  30.   
  31.         ID VALUE  
  32. ---------- ----------  
  33.          1 a  
  34.          2 b  
  35.   
  36. SQL> ! rm -rf /u01/app/oracle/oradata/orcl/*.ctl  
  37.   
  38. SQL> conn /as sysdba  
  39. 已连接。  
  40. SQL> shutdown abort  
  41. ORACLE 例程已经关闭。  
SQL> conn /as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  167772160 bytes
Fixed Size                  1266392 bytes
Variable Size              62917928 bytes
Database Buffers          100663296 bytes
Redo Buffers                2924544 bytes
数据库装载完毕。
数据库已经打开。
SQL> conn u1/u1
已连接。
SQL> select * from t;

        ID VALUE
---------- ----------
         1 a

SQL> insert into t values(2,'b');

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from t;

        ID VALUE
---------- ----------
         1 a
         2 b

SQL> ! rm -rf /u01/app/oracle/oradata/orcl/*.ctl

SQL> conn /as sysdba
已连接。
SQL> shutdown abort
ORACLE 例程已经关闭。


1、下面就删除控制文件用这个脚本来重建控制文件。使用noresetlogs。

  1. SQL> conn /as sysdba  
  2. 已连接到空闲例程。  
  3. SQL> startup nomount  
  4. ORACLE 例程已经启动。  
  5.   
  6. Total System Global Area  167772160 bytes  
  7. Fixed Size                  1266392 bytes  
  8. Variable Size              62917928 bytes  
  9. Database Buffers          100663296 bytes  
  10. Redo Buffers                2924544 bytes  
  11. SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG  
  12.   2      MAXLOGFILES 16  
  13.   3      MAXLOGMEMBERS 3  
  14.   4      MAXDATAFILES 100  
  15.   5      MAXINSTANCES 8  
  16.   6      MAXLOGHISTORY 292  
  17.   7  LOGFILE  
  18.   8    GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log'  SIZE 50M,  
  19.   9    GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log'  SIZE 50M,  
  20.  10    GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log'  SIZE 50M  
  21.  11  DATAFILE  
  22.  12    '/u01/app/oracle/oradata/orcl/system01.dbf',  
  23.  13    '/u01/app/oracle/oradata/orcl/undotbs01.dbf',  
  24.  14    '/u01/app/oracle/oradata/orcl/sysaux01.dbf',  
  25.  15    '/u01/app/oracle/oradata/orcl/users01.dbf',  
  26.  16    '/u01/app/oracle/oradata/orcl/tb1.dbf'  
  27.  17  CHARACTER SET ZHS16GBK;  
  28.   
  29. 控制文件已创建。  
  30.   
  31. SQL> select status from v$instance;  
  32.   
  33. STATUS  
  34. ------------  
  35. MOUNTED  
  36.   
  37. SQL> select * from v$recover_file;  
  38.   
  39.      FILE# ONLINE  ONLINE_ ERROR                                                                CHANGE# TIME  
  40. ---------- ------- ------- ----------------------------------------------------------------- ---------- --------------  
  41.          1 ONLINE  ONLINE                                                                        474731 10-10? -11  
  42.          2 ONLINE  ONLINE                                                                        474731 10-10? -11  
  43.          3 ONLINE  ONLINE                                                                        474731 10-10? -11  
  44.          4 ONLINE  ONLINE                                                                        474731 10-10? -11  
  45.          5 ONLINE  ONLINE                                                                        474731 10-10? -11  
  46.   
  47. SQL> alter database open;  
  48. alter database open  
  49. *  
  50. 第 1 行出现错误:  
  51. ORA-01113: ?? 1 ??????  
  52. ORA-01110: ???? 1: '/u01/app/oracle/oradata/orcl/system01.dbf'  
  53.   
  54.   
  55. SQL> RECOVER DATABASE;  
  56. 完成介质恢复。  
  57. SQL> ALTER SYSTEM ARCHIVE LOG ALL;  
  58.   
  59. 系统已更改。  
  60.   
  61. SQL> ALTER DATABASE OPEN;  
  62.   
  63. 数据库已更改。  
  64.   
  65. SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 20971520  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;  
  66.   
  67. 表空间已更改。  
  68.   
  69. SQL> select status from v$instance;  
  70.   
  71. STATUS  
  72. ------------  
  73. OPEN  
  74.   
  75. SQL> select * from v$recover_file;  
  76.   
  77. 未选定行  
  78.   
  79. SQL> conn u1/u1  
  80. 已连接。  
  81. SQL> select * from t;  
  82.   
  83.         ID VALUE  
  84. ---------- ----------  
  85.          1 a  
SQL> conn /as sysdba
已连接到空闲例程。
SQL> startup nomount
ORACLE 例程已经启动。

Total System Global Area  167772160 bytes
Fixed Size                  1266392 bytes
Variable Size              62917928 bytes
Database Buffers          100663296 bytes
Redo Buffers                2924544 bytes
SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG
  2      MAXLOGFILES 16
  3      MAXLOGMEMBERS 3
  4      MAXDATAFILES 100
  5      MAXINSTANCES 8
  6      MAXLOGHISTORY 292
  7  LOGFILE
  8    GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log'  SIZE 50M,
  9    GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log'  SIZE 50M,
 10    GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log'  SIZE 50M
 11  DATAFILE
 12    '/u01/app/oracle/oradata/orcl/system01.dbf',
 13    '/u01/app/oracle/oradata/orcl/undotbs01.dbf',
 14    '/u01/app/oracle/oradata/orcl/sysaux01.dbf',
 15    '/u01/app/oracle/oradata/orcl/users01.dbf',
 16    '/u01/app/oracle/oradata/orcl/tb1.dbf'
 17  CHARACTER SET ZHS16GBK;

控制文件已创建。

SQL> select status from v$instance;

STATUS
------------
MOUNTED

SQL> select * from v$recover_file;

     FILE# ONLINE  ONLINE_ ERROR                                                                CHANGE# TIME
---------- ------- ------- ----------------------------------------------------------------- ---------- --------------
         1 ONLINE  ONLINE                                                                        474731 10-10? -11
         2 ONLINE  ONLINE                                                                        474731 10-10? -11
         3 ONLINE  ONLINE                                                                        474731 10-10? -11
         4 ONLINE  ONLINE                                                                        474731 10-10? -11
         5 ONLINE  ONLINE                                                                        474731 10-10? -11

SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01113: ?? 1 ??????
ORA-01110: ???? 1: '/u01/app/oracle/oradata/orcl/system01.dbf'


SQL> RECOVER DATABASE;
完成介质恢复。
SQL> ALTER SYSTEM ARCHIVE LOG ALL;

系统已更改。

SQL> ALTER DATABASE OPEN;

数据库已更改。

SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 20971520  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;

表空间已更改。

SQL> select status from v$instance;

STATUS
------------
OPEN

SQL> select * from v$recover_file;

未选定行

SQL> conn u1/u1
已连接。
SQL> select * from t;

        ID VALUE
---------- ----------
         1 a


2、重复前面的实验环境。使用resetlogs。

  1. SQL> conn /as sysdba  
  2. 已连接到空闲例程。  
  3. SQL> startup nomount;  
  4. ORACLE 例程已经启动。  
  5.   
  6. Total System Global Area  167772160 bytes  
  7. Fixed Size                  1266392 bytes  
  8. Variable Size              62917928 bytes  
  9. Database Buffers          100663296 bytes  
  10. Redo Buffers                2924544 bytes  
  11. SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS  ARCHIVELOG  
  12.   2      MAXLOGFILES 16  
  13.   3      MAXLOGMEMBERS 3  
  14.   4      MAXDATAFILES 100  
  15.   5      MAXINSTANCES 8  
  16.   6      MAXLOGHISTORY 292  
  17.   7  LOGFILE  
  18.   8    GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log'  SIZE 50M,  
  19.   9    GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log'  SIZE 50M,  
  20.  10    GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log'  SIZE 50M  
  21.  11  DATAFILE  
  22.  12    '/u01/app/oracle/oradata/orcl/system01.dbf',  
  23.  13    '/u01/app/oracle/oradata/orcl/undotbs01.dbf',  
  24.  14    '/u01/app/oracle/oradata/orcl/sysaux01.dbf',  
  25.  15    '/u01/app/oracle/oradata/orcl/users01.dbf',  
  26.  16    '/u01/app/oracle/oradata/orcl/tb1.dbf'  
  27.  17  CHARACTER SET ZHS16GBK;  
  28.   
  29. 控制文件已创建。  
  30.   
  31. SQL> select status from v$instance;  
  32.   
  33. STATUS  
  34. ------------  
  35. MOUNTED  
  36.   
  37. SQL> select * from v$recover_file;  
  38.   
  39.      FILE# ONLINE  ONLINE_ ERROR                                                                CHANGE# TIME  
  40. ---------- ------- ------- ----------------------------------------------------------------- ---------- --------------  
  41.          1 ONLINE  ONLINE                                                                        474731 10-10? -11  
  42.          2 ONLINE  ONLINE                                                                        474731 10-10? -11  
  43.          3 ONLINE  ONLINE                                                                        474731 10-10? -11  
  44.          4 ONLINE  ONLINE                                                                        474731 10-10? -11  
  45.          5 ONLINE  ONLINE                                                                        474731 10-10? -11  
  46.   
  47. SQL> select * from v$log;  
  48.   
  49.     GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME  
  50. ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------  
  51.          1          1          0   52428800          1 YES UNUSED                       0  
  52.          3          1          0   52428800          1 YES CURRENT                      0  
  53.          2          1          0   52428800          1 YES UNUSED                       0  
  54.   
  55. SQL> select member from v$logfile;  
  56.   
  57. MEMBER  
  58. --------------------------------------------------------------------------------  
  59. /u01/app/oracle/oradata/orcl/redo03.log  
  60. /u01/app/oracle/oradata/orcl/redo02.log  
  61. /u01/app/oracle/oradata/orcl/redo01.log  
  62.   
  63. SQL> RECOVER DATABASE USING BACKUP CONTROLFILE;  
  64. ORA-00279: ?? 474731 (? 10/10/2011 02:31:58 ??) ???? 1 ????  
  65. ORA-00289: ??: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_10/o1_mf_1_14_%u_.arc  
  66. ORA-00280: ?? 474731 (???? 1) ??? #14 ?  
  67.   
  68.   
  69. 指定日志: {<RET>=suggested | filename | AUTO | CANCEL}  
  70. /u01/app/oracle/oradata/orcl/redo03.log  
  71. ORA-00310: ???????? 12; ???? 14  
  72. ORA-00334: ????: '/u01/app/oracle/oradata/orcl/redo03.log'  
  73.   
  74.   
  75. SQL> RECOVER DATABASE USING BACKUP CONTROLFILE;  
  76. ORA-00279: ?? 474731 (? 10/10/2011 02:31:58 ??) ???? 1 ????  
  77. ORA-00289: ??: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_10/o1_mf_1_14_%u_.arc  
  78. ORA-00280: ?? 474731 (???? 1) ??? #14 ?  
  79.   
  80.   
  81. 指定日志: {<RET>=suggested | filename | AUTO | CANCEL}  
  82. /u01/app/oracle/oradata/orcl/redo01.log  
  83. ORA-00310: ???????? 13; ???? 14  
  84. ORA-00334: ????: '/u01/app/oracle/oradata/orcl/redo01.log'  
  85.   
  86.   
  87. SQL> RECOVER DATABASE USING BACKUP CONTROLFILE;  
  88. ORA-00279: ?? 474731 (? 10/10/2011 02:31:58 ??) ???? 1 ????  
  89. ORA-00289: ??: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_10/o1_mf_1_14_%u_.arc  
  90. ORA-00280: ?? 474731 (???? 1) ??? #14 ?  
  91.   
  92.   
  93. 指定日志: {<RET>=suggested | filename | AUTO | CANCEL}  
  94. /u01/app/oracle/oradata/orcl/redo02.log  
  95. 已应用的日志。  
  96. 完成介质恢复。  
  97. SQL> select * from v$recover_file;  
  98.   
  99. 未选定行  
  100.   
  101. SQL> ALTER DATABASE OPEN RESETLOGS;  
  102.   
  103. 数据库已更改。  
  104.   
  105. SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 20971520  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;  
  106.   
  107. 表空间已更改。  
  108.   
  109. SQL> select status from v$instance;  
  110.   
  111. STATUS  
  112. ------------  
  113. OPEN  
  114.   
  115. SQL> conn u1/u1  
  116. 已连接。  
  117. SQL> select * from t;  
  118.   
  119.         ID VALUE  
  120. ---------- ----------  
  121.          1 a  
  122.          2 b  
SQL> conn /as sysdba
已连接到空闲例程。
SQL> startup nomount;
ORACLE 例程已经启动。

Total System Global Area  167772160 bytes
Fixed Size                  1266392 bytes
Variable Size              62917928 bytes
Database Buffers          100663296 bytes
Redo Buffers                2924544 bytes
SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS  ARCHIVELOG
  2      MAXLOGFILES 16
  3      MAXLOGMEMBERS 3
  4      MAXDATAFILES 100
  5      MAXINSTANCES 8
  6      MAXLOGHISTORY 292
  7  LOGFILE
  8    GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log'  SIZE 50M,
  9    GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log'  SIZE 50M,
 10    GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log'  SIZE 50M
 11  DATAFILE
 12    '/u01/app/oracle/oradata/orcl/system01.dbf',
 13    '/u01/app/oracle/oradata/orcl/undotbs01.dbf',
 14    '/u01/app/oracle/oradata/orcl/sysaux01.dbf',
 15    '/u01/app/oracle/oradata/orcl/users01.dbf',
 16    '/u01/app/oracle/oradata/orcl/tb1.dbf'
 17  CHARACTER SET ZHS16GBK;

控制文件已创建。

SQL> select status from v$instance;

STATUS
------------
MOUNTED

SQL> select * from v$recover_file;

     FILE# ONLINE  ONLINE_ ERROR                                                                CHANGE# TIME
---------- ------- ------- ----------------------------------------------------------------- ---------- --------------
         1 ONLINE  ONLINE                                                                        474731 10-10? -11
         2 ONLINE  ONLINE                                                                        474731 10-10? -11
         3 ONLINE  ONLINE                                                                        474731 10-10? -11
         4 ONLINE  ONLINE                                                                        474731 10-10? -11
         5 ONLINE  ONLINE                                                                        474731 10-10? -11

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
         1          1          0   52428800          1 YES UNUSED                       0
         3          1          0   52428800          1 YES CURRENT                      0
         2          1          0   52428800          1 YES UNUSED                       0

SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/redo03.log
/u01/app/oracle/oradata/orcl/redo02.log
/u01/app/oracle/oradata/orcl/redo01.log

SQL> RECOVER DATABASE USING BACKUP CONTROLFILE;
ORA-00279: ?? 474731 (? 10/10/2011 02:31:58 ??) ???? 1 ????
ORA-00289: ??: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_10/o1_mf_1_14_%u_.arc
ORA-00280: ?? 474731 (???? 1) ??? #14 ?


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
/u01/app/oracle/oradata/orcl/redo03.log
ORA-00310: ???????? 12; ???? 14
ORA-00334: ????: '/u01/app/oracle/oradata/orcl/redo03.log'


SQL> RECOVER DATABASE USING BACKUP CONTROLFILE;
ORA-00279: ?? 474731 (? 10/10/2011 02:31:58 ??) ???? 1 ????
ORA-00289: ??: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_10/o1_mf_1_14_%u_.arc
ORA-00280: ?? 474731 (???? 1) ??? #14 ?


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
/u01/app/oracle/oradata/orcl/redo01.log
ORA-00310: ???????? 13; ???? 14
ORA-00334: ????: '/u01/app/oracle/oradata/orcl/redo01.log'


SQL> RECOVER DATABASE USING BACKUP CONTROLFILE;
ORA-00279: ?? 474731 (? 10/10/2011 02:31:58 ??) ???? 1 ????
ORA-00289: ??: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_10/o1_mf_1_14_%u_.arc
ORA-00280: ?? 474731 (???? 1) ??? #14 ?


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
/u01/app/oracle/oradata/orcl/redo02.log
已应用的日志。
完成介质恢复。
SQL> select * from v$recover_file;

未选定行

SQL> ALTER DATABASE OPEN RESETLOGS;

数据库已更改。

SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 20971520  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;

表空间已更改。

SQL> select status from v$instance;

STATUS
------------
OPEN

SQL> conn u1/u1
已连接。
SQL> select * from t;

        ID VALUE
---------- ----------
         1 a
         2 b
指定RESETLOGS会执行下列操作:归档当前的在线重做日志文件(如果能访问到的话),然后清空内容并将日志文件序号重置为1(如果在线重做日志文件不存在,则重建)。重置控制文件中关于在线日志文件的元数据。更新数据文件和在线重做日志文件中的RESETLOGS SCN和重置时间信息。
  1. SQL> conn /as sysdba  
  2. 已连接。  
  3. SQL> alter system switch logfile;  
  4.   
  5. 系统已更改。  
  6.   
  7. SQL> /  
  8.   
  9. 系统已更改。  
  10.   
  11. SQL> /  
  12.   
  13. 系统已更改。  
  14.   
  15. SQL> select * from v$log;  
  16.   
  17.     GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME  
  18. ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------  
  19.          1          1          4   52428800          1 NO  CURRENT                 474954 10-10月-11  
  20.          2          1          2   52428800          1 YES INACTIVE                474948 10-10月-11  
  21.          3          1          3   52428800          1 YES INACTIVE                474950 10-10月-11  

猜你喜欢

转载自blog.csdn.net/lufei051/article/details/40681529