丟失重做日誌怎麼處理
OS:WINDOWS XP SP2
DB:ORACLE 9.2.0.1
聯機日誌分為當前聯機日誌和非當前聯機日誌,非當前聯機日誌的損壞是比較簡單的,一般透過clear命令就可以解決問題。
損壞當前聯機日誌:
歸檔模式下當前日誌的損壞有兩種情況,
一、是資料庫是正常關閉,日誌檔案中沒有未決的事務需要例項恢復,當前日誌組的損壞就可以直接用alter database clear unarchived logfile group n來重建。
二、是日誌組中有活動的事務,資料庫需要媒體恢復,日誌組需要用來同步,有兩種補救辦法
A. 最好的辦法就是透過不完全恢復,可以保證資料庫的一致性,但是這種辦法要求在歸檔方式下,並且有可用的備份
B. 透過強制性恢復,但是可能導致資料庫不一致。
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\zero>sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.1.0 - Production on 星期日 1月 27 16:24:56 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
已連線。
SP2-0614: 伺服器版本太低,不能實現此功能
SP2-0614: 伺服器版本太低,不能實現此功能
SQL> shutdown abort;
ORACLE 例程已經關閉。
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。
1、進行非當前重做日誌的故障模擬和恢復
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 226 YES INACTIVE
2 227 NO CURRENT
3 225 YES INACTIVE
4 224 YES INACTIVE
SQL> shutdown abort;
ORACLE 例程已經關閉。
SQL> host move LOGZERO4.ORA logzero04.ora.bak
系統找不到指定的檔案。
SQL> host move D:\oracle\oradata\zero\LOGZERO4.ORA D:\oracle\oradata\zero\logzero04.ora.bak
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
ORA-00313: 無法開啟日誌組 4 (執行緒 1) 的成員
ORA-00312: 聯機日誌 4 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\LOGZERO4.ORA'
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 226 YES INACTIVE
2 227 NO INVALIDATED
3 225 YES INACTIVE
4 224 YES INACTIVE
SQL> alter database clear logfile group 4;
資料庫已更改。
SQL> alter database open;
資料庫已更改。
SQL> host del D:\oracle\oradata\zero\logzero04.ora.bak;
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 226 YES INACTIVE
2 227 YES INACTIVE
3 225 YES INACTIVE
4 228 NO CURRENT
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> select group#,sequence#,archived,status from v$log;
select group#,sequence#,archived,status from v$log
*
ERROR 位於第 1 行:
ORA-01034: ORACLE not available
2、進行當前重做日誌(未歸檔)故障模擬和恢復(有資料庫備份)
SQL> host move D:\oracle\oradata\zero\LOGZERO4.ORA D:\oracle\oradata\zero\logzero04.ora.bak
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
ORA-00313: 無法開啟日誌組 4 (執行緒 1) 的成員
ORA-00312: 聯機日誌 4 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\LOGZERO4.ORA'
SQL> alter database clear unarchived logfile group 4;
alter database clear unarchived logfile group 4
*
ERROR 位於第 1 行:
ORA-00313: 無法開啟日誌組 4 (執行緒 1) 的成員
ORA-00312: 聯機日誌 4 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\LOGZERO4.ORA'
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 226 YES INACTIVE
2 227 YES INACTIVE
3 0 YES UNUSED
4 0 NO CLEARING_CURRENT
SQL> alter database clear unarchived logfile group 1;
資料庫已更改。
SQL> alter database clear unarchived logfile group 4;
alter database clear unarchived logfile group 4
*
ERROR 位於第 1 行:
ORA-00313: 無法開啟日誌組 4 (執行緒 1) 的成員
ORA-00312: 聯機日誌 4 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\LOGZERO4.ORA'
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。
由於之前沒有備份,所以在此處暫時物理恢復。
SQL> host move D:\oracle\oradata\zero\logzero04.ora.bak D:\oracle\oradata\zero\LOGZERO4.ORA
SQL> alter database open;
資料庫已更改。
完成之後,在rman裡面做一次資料庫全備份。然後進行下面操作
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host move D:\oracle\oradata\zero\LOGZERO4.ORA D:\oracle\oradata\zero\logzero04.ora.bak
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> alter database clear unarchived logfile group 4;
資料庫已更改。
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 230 NO CURRENT
2 227 YES INACTIVE
3 229 YES INACTIVE
4 0 YES UNUSED
SQL> host del D:\oracle\oradata\zero\logzero04.ora.bak;
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 230 NO CURRENT
2 227 YES INACTIVE
3 229 YES INACTIVE
4 0 YES UNUSED
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host move D:\oracle\oradata\zero\REDO01.LOG D:\oracle\oradata\zero\REDO01.LOG.BAK
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
ORA-00313: 無法開啟日誌組 1 (執行緒 1) 的成員
ORA-00312: 聯機日誌 1 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\REDO01.LOG'
SQL> alter database clear unarchived logfile group 1;
alter database clear unarchived logfile group 1
*
ERROR 位於第 1 行:
ORA-00313: 無法開啟日誌組 1 (執行緒 1) 的成員
ORA-00312: 聯機日誌 1 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\REDO01.LOG'
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 0 NO CLEARING_CURRENT
2 227 YES INACTIVE
3 229 YES INACTIVE
4 0 YES UNUSED
SQL> recover database until cancel;
完成介質恢復。
SQL> alter database open resetlogs;
資料庫已更改。
SQL> host del D:\oracle\oradata\zero\redo01.log.bak;
SQL>
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 1 YES INACTIVE
2 2 YES INACTIVE
3 3 NO CURRENT
4 0 YES UNUSED
SQL> alter system archive log current;
系統已更改。
SQL> alter system archive log current;
系統已更改。
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 5 NO CURRENT
2 2 YES INACTIVE
3 3 YES INACTIVE
4 4 YES INACTIVE
注意,在使用resetlogs開啟資料庫之後,sequence#重置了。
3、進行當前重做日誌(未歸檔)故障模擬和恢復(無資料庫備份)
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host move D:\oracle\oradata\zero\REDO01.LOG D:\oracle\oradata\zero\REDO01.LOG.BAK
SQL> host move D:\oracle\oradata\zero\REDO01.LOG.BAK D:\oracle\oradata\zero\REDO01.LOG
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 5 YES INACTIVE
2 6 NO CURRENT
3 3 YES INACTIVE
4 4 YES INACTIVE
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host move D:\oracle\oradata\zero\REDO01.LOG D:\oracle\oradata\zero\REDO01.LOG.BAK
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
ORA-00313: 無法開啟日誌組 1 (執行緒 1) 的成員
ORA-00312: 聯機日誌 1 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\REDO01.LOG'
SQL> host move D:\oracle\oradata\zero\REDO01.LOG.BAK D:\oracle\oradata\zero\REDO01.LOG
SQL> alter database open;
資料庫已更改。
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 5 YES INACTIVE
2 6 YES INACTIVE
3 7 NO CURRENT
4 4 YES INACTIVE
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host move D:\oracle\oradata\zero\REDO03.LOG D:\oracle\oradata\zero\REDO03.LOG.BAK
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
ORA-00313: 無法開啟日誌組 3 (執行緒 1) 的成員
ORA-00312: 聯機日誌 3 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\REDO03.LOG'
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 5 YES INACTIVE
2 6 YES INACTIVE
3 7 NO CURRENT
4 4 YES INACTIVE
SQL> alter database clear unarchived logfile group 3;
alter database clear unarchived logfile group 3
*
ERROR 位於第 1 行:
ORA-00313: 無法開啟日誌組 3 (執行緒 1) 的成員
ORA-00312: 聯機日誌 3 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\REDO03.LOG'
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。
SQL> create pfile='d:\init.ora' from spfile;
檔案已建立。
SQL> shutdown immediate;
ORA-01109: 資料庫未開啟
已經解除安裝資料庫。
ORACLE 例程已經關閉。
在init.ora裡面加入_allow_resetlogs_corruption=TRUE引數。然後利用init.ora啟動例項
SQL> startup mount pfile ='d:\init.ora';
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
SQL> recover database until cancel;
完成介質恢復。
SQL> alter database open resetlogs;
資料庫已更改。
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup mount pfile ='d:\init.ora';
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
SQL> create spfile from pfile='d:\init.ora';
檔案已建立。
SQL> shutdown immediate;
ORA-01109: 資料庫未開啟
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> alter system archive log current;
系統已更改。
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 2 YES INACTIVE
2 3 YES ACTIVE
3 1 YES INACTIVE
4 4 NO CURRENT
SQL>
至此,資料庫恢復完成,但是資料庫資料可能會出現不一致。
DB:ORACLE 9.2.0.1
聯機日誌分為當前聯機日誌和非當前聯機日誌,非當前聯機日誌的損壞是比較簡單的,一般透過clear命令就可以解決問題。
損壞當前聯機日誌:
歸檔模式下當前日誌的損壞有兩種情況,
一、是資料庫是正常關閉,日誌檔案中沒有未決的事務需要例項恢復,當前日誌組的損壞就可以直接用alter database clear unarchived logfile group n來重建。
二、是日誌組中有活動的事務,資料庫需要媒體恢復,日誌組需要用來同步,有兩種補救辦法
A. 最好的辦法就是透過不完全恢復,可以保證資料庫的一致性,但是這種辦法要求在歸檔方式下,並且有可用的備份
B. 透過強制性恢復,但是可能導致資料庫不一致。
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\zero>sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.1.0 - Production on 星期日 1月 27 16:24:56 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
已連線。
SP2-0614: 伺服器版本太低,不能實現此功能
SP2-0614: 伺服器版本太低,不能實現此功能
SQL> shutdown abort;
ORACLE 例程已經關閉。
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。
1、進行非當前重做日誌的故障模擬和恢復
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 226 YES INACTIVE
2 227 NO CURRENT
3 225 YES INACTIVE
4 224 YES INACTIVE
SQL> shutdown abort;
ORACLE 例程已經關閉。
SQL> host move LOGZERO4.ORA logzero04.ora.bak
系統找不到指定的檔案。
SQL> host move D:\oracle\oradata\zero\LOGZERO4.ORA D:\oracle\oradata\zero\logzero04.ora.bak
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
ORA-00313: 無法開啟日誌組 4 (執行緒 1) 的成員
ORA-00312: 聯機日誌 4 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\LOGZERO4.ORA'
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 226 YES INACTIVE
2 227 NO INVALIDATED
3 225 YES INACTIVE
4 224 YES INACTIVE
SQL> alter database clear logfile group 4;
資料庫已更改。
SQL> alter database open;
資料庫已更改。
SQL> host del D:\oracle\oradata\zero\logzero04.ora.bak;
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 226 YES INACTIVE
2 227 YES INACTIVE
3 225 YES INACTIVE
4 228 NO CURRENT
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> select group#,sequence#,archived,status from v$log;
select group#,sequence#,archived,status from v$log
*
ERROR 位於第 1 行:
ORA-01034: ORACLE not available
2、進行當前重做日誌(未歸檔)故障模擬和恢復(有資料庫備份)
SQL> host move D:\oracle\oradata\zero\LOGZERO4.ORA D:\oracle\oradata\zero\logzero04.ora.bak
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
ORA-00313: 無法開啟日誌組 4 (執行緒 1) 的成員
ORA-00312: 聯機日誌 4 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\LOGZERO4.ORA'
SQL> alter database clear unarchived logfile group 4;
alter database clear unarchived logfile group 4
*
ERROR 位於第 1 行:
ORA-00313: 無法開啟日誌組 4 (執行緒 1) 的成員
ORA-00312: 聯機日誌 4 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\LOGZERO4.ORA'
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 226 YES INACTIVE
2 227 YES INACTIVE
3 0 YES UNUSED
4 0 NO CLEARING_CURRENT
SQL> alter database clear unarchived logfile group 1;
資料庫已更改。
SQL> alter database clear unarchived logfile group 4;
alter database clear unarchived logfile group 4
*
ERROR 位於第 1 行:
ORA-00313: 無法開啟日誌組 4 (執行緒 1) 的成員
ORA-00312: 聯機日誌 4 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\LOGZERO4.ORA'
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。
由於之前沒有備份,所以在此處暫時物理恢復。
SQL> host move D:\oracle\oradata\zero\logzero04.ora.bak D:\oracle\oradata\zero\LOGZERO4.ORA
SQL> alter database open;
資料庫已更改。
完成之後,在rman裡面做一次資料庫全備份。然後進行下面操作
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host move D:\oracle\oradata\zero\LOGZERO4.ORA D:\oracle\oradata\zero\logzero04.ora.bak
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> alter database clear unarchived logfile group 4;
資料庫已更改。
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 230 NO CURRENT
2 227 YES INACTIVE
3 229 YES INACTIVE
4 0 YES UNUSED
SQL> host del D:\oracle\oradata\zero\logzero04.ora.bak;
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 230 NO CURRENT
2 227 YES INACTIVE
3 229 YES INACTIVE
4 0 YES UNUSED
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host move D:\oracle\oradata\zero\REDO01.LOG D:\oracle\oradata\zero\REDO01.LOG.BAK
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
ORA-00313: 無法開啟日誌組 1 (執行緒 1) 的成員
ORA-00312: 聯機日誌 1 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\REDO01.LOG'
SQL> alter database clear unarchived logfile group 1;
alter database clear unarchived logfile group 1
*
ERROR 位於第 1 行:
ORA-00313: 無法開啟日誌組 1 (執行緒 1) 的成員
ORA-00312: 聯機日誌 1 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\REDO01.LOG'
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 0 NO CLEARING_CURRENT
2 227 YES INACTIVE
3 229 YES INACTIVE
4 0 YES UNUSED
SQL> recover database until cancel;
完成介質恢復。
SQL> alter database open resetlogs;
資料庫已更改。
SQL> host del D:\oracle\oradata\zero\redo01.log.bak;
SQL>
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 1 YES INACTIVE
2 2 YES INACTIVE
3 3 NO CURRENT
4 0 YES UNUSED
SQL> alter system archive log current;
系統已更改。
SQL> alter system archive log current;
系統已更改。
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 5 NO CURRENT
2 2 YES INACTIVE
3 3 YES INACTIVE
4 4 YES INACTIVE
注意,在使用resetlogs開啟資料庫之後,sequence#重置了。
3、進行當前重做日誌(未歸檔)故障模擬和恢復(無資料庫備份)
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host move D:\oracle\oradata\zero\REDO01.LOG D:\oracle\oradata\zero\REDO01.LOG.BAK
SQL> host move D:\oracle\oradata\zero\REDO01.LOG.BAK D:\oracle\oradata\zero\REDO01.LOG
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 5 YES INACTIVE
2 6 NO CURRENT
3 3 YES INACTIVE
4 4 YES INACTIVE
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host move D:\oracle\oradata\zero\REDO01.LOG D:\oracle\oradata\zero\REDO01.LOG.BAK
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
ORA-00313: 無法開啟日誌組 1 (執行緒 1) 的成員
ORA-00312: 聯機日誌 1 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\REDO01.LOG'
SQL> host move D:\oracle\oradata\zero\REDO01.LOG.BAK D:\oracle\oradata\zero\REDO01.LOG
SQL> alter database open;
資料庫已更改。
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 5 YES INACTIVE
2 6 YES INACTIVE
3 7 NO CURRENT
4 4 YES INACTIVE
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host move D:\oracle\oradata\zero\REDO03.LOG D:\oracle\oradata\zero\REDO03.LOG.BAK
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
ORA-00313: 無法開啟日誌組 3 (執行緒 1) 的成員
ORA-00312: 聯機日誌 3 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\REDO03.LOG'
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 5 YES INACTIVE
2 6 YES INACTIVE
3 7 NO CURRENT
4 4 YES INACTIVE
SQL> alter database clear unarchived logfile group 3;
alter database clear unarchived logfile group 3
*
ERROR 位於第 1 行:
ORA-00313: 無法開啟日誌組 3 (執行緒 1) 的成員
ORA-00312: 聯機日誌 3 執行緒 1: 'D:\ORACLE\ORADATA\ZERO\REDO03.LOG'
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。
SQL> create pfile='d:\init.ora' from spfile;
檔案已建立。
SQL> shutdown immediate;
ORA-01109: 資料庫未開啟
已經解除安裝資料庫。
ORACLE 例程已經關閉。
在init.ora裡面加入_allow_resetlogs_corruption=TRUE引數。然後利用init.ora啟動例項
SQL> startup mount pfile ='d:\init.ora';
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
SQL> recover database until cancel;
完成介質恢復。
SQL> alter database open resetlogs;
資料庫已更改。
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup mount pfile ='d:\init.ora';
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
SQL> create spfile from pfile='d:\init.ora';
檔案已建立。
SQL> shutdown immediate;
ORA-01109: 資料庫未開啟
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> alter system archive log current;
系統已更改。
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 2 YES INACTIVE
2 3 YES ACTIVE
3 1 YES INACTIVE
4 4 NO CURRENT
SQL>
至此,資料庫恢復完成,但是資料庫資料可能會出現不一致。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/79499/viewspace-162811/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle DataGuard歸檔日誌丟失處理方法Oracle
- redis資料丟失你怎麼處理?Redis
- OpenSIPS 2.4.2 高併發下,日誌丟失怎麼辦
- 重做日誌管理
- MySQL重做日誌(redo log)MySql
- Oracle11g redo log 建立、新增、刪除(重做日誌組,重做日誌檔案)Oracle
- oracle丟失的是所有的redo日誌組Oracle
- OGG整合抽取模式丟失歸檔處理模式
- shell日誌顏色處理
- orbeon form 的日誌處理ORBORM
- oracle中undo表空間丟失處理方法Oracle
- thinkphp5丟失日誌問題,該如何解決?PHP
- MySQL重做日誌恢復資料的流程MySql
- node錯誤處理與日誌
- DATAGUARD中手工處理日誌GAP
- ELK 處理 Spring Boot 日誌,不錯!Spring Boot
- 如何在zuul上做日誌處理Zuul
- 搭建node服務(1):日誌處理
- SpringBoot第十三篇:日誌處理Spring Boot
- 指令碼處理iOS的Crash日誌指令碼iOS
- 利用 ELK 處理 Percona 審計日誌
- 儲存崩潰導致資料丟失如何處理
- mq要如何處理訊息丟失、重複消費?MQ
- Java:利用BigDecimal類巧妙處理Double型別精度丟失JavaDecimal型別
- 探索 PM2 Cluster 模式下 Log4js 日誌丟失模式JS
- 記錄一則clear重做日誌檔案的案例
- RocketMQ的訊息是怎麼丟失的MQ
- 基於go開發日誌處理包Go
- node專案錯誤處理與日誌
- SQLServer資料庫日誌太大處理方式SQLServer資料庫
- Oracle impdp遷移資料後主鍵丟失故障處理Oracle
- 伺服器資料丟失了怎麼恢復/分割槽丟失恢復教程伺服器
- logback下日誌輸出前處理操作——以日誌脫敏為例
- 『無為則無心』Python日誌 — 67、logging日誌模組處理流程Python
- Archived Redo Logs歸檔重做日誌介紹及其優點Hive
- MySQL 修改InnoDB重做日誌檔案的數量或大小MySql
- 面試官問:Kafka 會不會丟訊息?怎麼處理的?面試Kafka
- GO的日誌怎麼玩Go
- python日誌怎麼儲存Python