ARCHIVELOG模式下使用者管理恢復聯機重做日誌檔案—非活動組所有成員全部損壞
阿新 • • 發佈:2018-11-10
聯機重做日誌檔案至少需要兩組,oracle建議每組的成員至少要兩個,也需要多路複用的。因為每組的成員的內容的都是一樣的。同一組內只要有一個成員還存在就可以保證不丟資料的。
1、在open狀態下非活動組所有成員全部損壞,可以重建一個成員。
[sql] view plain copy print ?- SQL> conn /as sysdba
- 已連線到空閒例程。
- SQL> startup
- ORACLE 例程已經啟動。
- Total System Global Area 167772160 bytes
- Fixed Size 1266392 bytes
- Variable Size
- 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;
- 系統已更改。
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> 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> shutdown immediate
- 資料庫已經關閉。
- 已經解除安裝資料庫。
- ORACLE 例程已經關閉。
- SQL> ! rm -rf /u01/app/oracle/oradata/orcl/redo03.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: 無法開啟日誌組 3 (用於執行緒 1) 的成員
- ORA-00312: 聯機日誌 3 執行緒 1: '/u01/app/oracle/oradata/orcl/redo03.log'
- SQL> alter database add logfile group 4('/u01/app/oracle/oradata/orcl/redo04.log') size 50m;
- 資料庫已更改。
- SQL> alter database drop logfile group 3;
- 資料庫已更改。
- 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
- 4 1 0 52428800 1 YES UNUSED 0
- 2 1 14 52428800 1 NO CURRENT 474585 10-10月-11
- SQL> select member from v$logfile;
- MEMBER
- --------------------------------------------------------------------------------
- /u01/app/oracle/oradata/orcl/redo02.log
- /u01/app/oracle/oradata/orcl/redo01.log
- /u01/app/oracle/oradata/orcl/redo04.log
- SQL> alter database open;
- 資料庫已更改。
- SQL> select status from v$instance;
- STATUS
- ------------
- OPEN
- <span style="font-family: Arial; background-color: rgb(255, 255, 255);"></span>