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

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

聯機重做日誌檔案至少需要兩組,oracle建議每組的成員至少要兩個,也需要多路複用的。因為每組的成員的內容的都是一樣的。同一組內只要有一個成員還存在就可以保證不丟資料的。

 

1、在open狀態下非活動組所有成員全部損壞,可以重建一個成員。

[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/redo03.log  
  30.   
  31. SQL> alter system switch logfile;  
  32.   
  33. 系統已更改。  
  34.   
  35. SQL> alter system archive log current;  
  36. alter system archive log current  
  37. *  
  38. 第 1 行出現錯誤:  
  39. ORA-16038: 日誌 3 sequence# 15 無法歸檔  
  40. ORA-00312: 聯機日誌 3 執行緒 1: '/u01/app/oracle/oradata/orcl/redo03.log'  
  41.   
  42. SQL> alter database clear unarchived logfile group 3;  
  43.   
  44. 資料庫已更改。  
  45.   
  46. SQL> alter system archive log current;  
  47.   
  48. 系統已更改。  
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> 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> ! rm -rf /u01/app/oracle/oradata/orcl/redo03.log

SQL> alter system switch logfile;

系統已更改。

SQL> alter system archive log current;
alter system archive log current
*
第 1 行出現錯誤:
ORA-16038: 日誌 3 sequence# 15 無法歸檔
ORA-00312: 聯機日誌 3 執行緒 1: '/u01/app/oracle/oradata/orcl/redo03.log'

SQL> alter database clear unarchived logfile group 3;

資料庫已更改。

SQL> alter system archive log current;

系統已更改。


2、在關閉狀態下非活動組所有成員全部損壞,可以新增一個新組,刪除舊組。

[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> shutdown immediate  
  30. 資料庫已經關閉。  
  31. 已經解除安裝資料庫。  
  32. ORACLE 例程已經關閉。  
  33. SQL> ! rm -rf /u01/app/oracle/oradata/orcl/redo03.log  
  34.   
  35. SQL> startup  
  36. ORACLE 例程已經啟動。  
  37.   
  38. Total System Global Area  167772160 bytes  
  39. Fixed Size                  1266392 bytes  
  40. Variable Size              62917928 bytes  
  41. Database Buffers          100663296 bytes  
  42. Redo Buffers                2924544 bytes  
  43. 資料庫裝載完畢。  
  44. ORA-00313: 無法開啟日誌組 3 (用於執行緒 1) 的成員  
  45. ORA-00312: 聯機日誌 3 執行緒 1: '/u01/app/oracle/oradata/orcl/redo03.log'  
  46.   
  47. SQL> alter database add logfile group 4('/u01/app/oracle/oradata/orcl/redo04.log'size 50m;  
  48.   
  49. 資料庫已更改。  
  50.   
  51. SQL> alter database drop logfile group 3;  
  52.   
  53. 資料庫已更改。  
  54.   
  55. SQL> select * from v$log;  
  56.   
  57.     GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME  
  58. ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------  
  59.          1          1         13   52428800          1 YES INACTIVE                474583 10-10月-11  
  60.          4          1          0   52428800          1 YES UNUSED                       0  
  61.          2          1         14   52428800          1 NO  CURRENT                 474585 10-10月-11  
  62.   
  63. SQL> select member from v$logfile;  
  64.   
  65. MEMBER  
  66. --------------------------------------------------------------------------------  
  67. /u01/app/oracle/oradata/orcl/redo02.log  
  68. /u01/app/oracle/oradata/orcl/redo01.log  
  69. /u01/app/oracle/oradata/orcl/redo04.log  
  70.   
  71. SQL> alter database open;  
  72.   
  73. 資料庫已更改。  
  74.   
  75. SQL> select status from v$instance;  
  76.   
  77. STATUS  
  78. ------------  
  79. OPEN  
  80. <span style="font-family: Arial; background-color: rgb(255, 255, 255);"></span>