1. 程式人生 > >ARCHIVELOG模式下使用者管理恢復聯機重做日誌檔案—當前活動組所有成員全部損壞

ARCHIVELOG模式下使用者管理恢復聯機重做日誌檔案—當前活動組所有成員全部損壞

1、在關閉狀態下 當前活動組所有成員全部損壞,需要不完全恢復然後resetlogs開啟資料庫。恢復完成後會自動建立一個丟失了的online redo logfile。

[sql] view plain copy print ?
  1. SQL> startup  
  2. ORACLE 例程已經啟動。  
  3.   
  4. Total System Global Area  167772160 bytes  
  5. Fixed Size                  1266392 bytes  
  6. Variable Size              62917928 bytes  
  7. Database
     Buffers          100663296 bytes  
  8. Redo Buffers                2924544 bytes  
  9. 資料庫裝載完畢。  
  10. 資料庫已經開啟。  
  11.   
  12. SQL> select * from v$log;  
  13.   
  14.     GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME  
  15. ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------  
  16.          1          1         13   52428800          1 YES INACTIVE                474583 10-10月-11  
  17.          2          1         14   52428800          1 NO  CURRENT                 474585 10-10月-11  
  18.          3          1         12   52428800          1 YES INACTIVE                474581 10-10月-11  
  19.   
  20. SQL> select member from v$logfile;  
  21.   
  22. MEMBER  
  23. ------------------------------------------------------------  
  24. /u01/app/oracle/oradata/orcl/redo03.log  
  25. /u01/app/oracle/oradata/orcl/redo02.log  
  26. /u01/app/oracle/oradata/orcl/redo01.log  
  27.   
  28. SQL> shutdown immediate  
  29. 資料庫已經關閉。  
  30. 已經解除安裝資料庫。  
  31. ORACLE 例程已經關閉。  
  32. SQL> ! rm -rf /u01/app/oracle/oradata/orcl/redo02.log  
  33.   
  34. SQL> startup  
  35. ORACLE 例程已經啟動。  
  36.   
  37. Total System Global Area  167772160 bytes  
  38. Fixed Size                  1266392 bytes  
  39. Variable Size              62917928 bytes  
  40. Database Buffers          100663296 bytes  
  41. Redo Buffers                2924544 bytes  
  42. 資料庫裝載完畢。  
  43. ORA-00313: 無法開啟日誌組 2 (用於執行緒 1) 的成員  
  44. ORA-00312: 聯機日誌 2 執行緒 1: '/u01/app/oracle/oradata/orcl/redo02.log'  
  45.   
  46.   
  47. SQL> select status from v$instance;  
  48.   
  49. STATUS  
  50. ------------  
  51. MOUNTED  
  52.   
  53. SQL> select * from v$recover_file;  
  54.   
  55. 未選定行  
  56.   
  57. SQL> recover database until cancel;  
  58. 完成介質恢復。  
  59. SQL> alter database open resetlogs;  
  60.   
  61. 資料庫已更改。  
  62.   
  63. SQL> select status from v$instance;  
  64.   
  65. STATUS  
  66. ------------  
  67. OPEN  
  68.   
  69. SQL> conn u1/u1  
  70. 已連線。  
  71. SQL> select * from t;  
  72.   
  73.         ID VALUE  
  74. ---------- ----------  
  75.          1 a  
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> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
         1          1         13   52428800          1 YES INACTIVE                474583 10-10月-11
         2          1         14   52428800          1 NO  CURRENT                 474585 10-10月-11
         3          1         12   52428800          1 YES INACTIVE                474581 10-10月-11

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> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> ! rm -rf /u01/app/oracle/oradata/orcl/redo02.log

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
資料庫裝載完畢。
ORA-00313: 無法開啟日誌組 2 (用於執行緒 1) 的成員
ORA-00312: 聯機日誌 2 執行緒 1: '/u01/app/oracle/oradata/orcl/redo02.log'


SQL> select status from v$instance;

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

SQL> select * from v$recover_file;

未選定行

SQL> recover database until cancel;
完成介質恢復。
SQL> alter database open resetlogs;

資料庫已更改。

SQL> select status from v$instance;

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

SQL> conn u1/u1
已連線。
SQL> select * from t;

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

 

2、在open狀態下 當前活動組所有成員全部損壞,那就重新建立一個,會丟失online redo logfile裡面的一些資料。

[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> select * from v$log;  
  14.   
  15.     GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME  
  16. ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------  
  17.          1          1         13   52428800          1 YES INACTIVE                474583 10-10月-11  
  18.          2          1         14   52428800          1 NO  CURRENT                 474585 10-10月-11  
  19.          3          1         12   52428800          1 YES INACTIVE                474581 10-10月-11  
  20.   
  21. SQL> select member from v$logfile;  
  22.   
  23. MEMBER  
  24. ------------------------------------------------------------  
  25. /u01/app/oracle/oradata/orcl/redo03.log  
  26. /u01/app/oracle/oradata/orcl/redo02.log  
  27. /u01/app/oracle/oradata/orcl/redo01.log  
  28.   
  29. SQL> ! rm -rf /u01/app/oracle/oradata/orcl/redo02.log  
  30.   
  31. SQL> alter system archive log current;  
  32. alter system archive log current  
  33. *  
  34. 第 1 行出現錯誤:  
  35. ORA-16038: 日誌 2 sequence# 14 無法歸檔  
  36. ORA-00312: 聯機日誌 2 執行緒 1: '/u01/app/oracle/oradata/orcl/redo02.log'  
  37.   
  38. SQL> alter database clear unarchived logfile group 2;  
  39.   
  40. 資料庫已更改。  
  41.   
  42. SQL> shutdown immediate  
  43. 資料庫已經關閉。  
  44. 已經解除安裝資料庫。  
  45. ORACLE 例程已經關閉。  
  46. SQL> startup  
  47. ORACLE 例程已經啟動。  
  48.   
  49. Total System Global Area  167772160 bytes  
  50. Fixed Size                  1266392 bytes  
  51. Variable Size              62917928 bytes  
  52. Database Buffers          100663296 bytes  
  53. Redo Buffers                2924544 bytes  
  54. 資料庫裝載完畢。  
  55. 資料庫已經開啟。