1. 程式人生 > >ARCHIVELOG模式下使用者管理恢復控制檔案—使用trace檔案重建控制檔案

ARCHIVELOG模式下使用者管理恢復控制檔案—使用trace檔案重建控制檔案

首先生成控制檔案的sql指令碼

[sql] view plain copy print ?
  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指令碼的內容如下:

[sql] view plain copy print ?
  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;

 

然後刪除資料庫模擬控制控制檔案丟失

[sql] view plain copy print ?
  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。

[sql] view plain copy print ?
  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。

[sql] view plain copy print ?
  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和重置時間資訊。
[sql] view plain copy print ?
  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