備份&恢復之十一:損壞當前聯機日誌
2008/05/08
備份&恢復之十一:損壞當前聯機日誌
歸檔模式下當前日誌的損壞有兩種情況,
一、是資料庫是正常關閉,日誌檔案中沒有未決的事務需要例項恢復,當前日誌組的損壞就可以直接用alter database clear unarchived logfile group n來重建。
二、是日誌組中有活動的事務,資料庫需要媒體恢復,日誌組需要用來同步,有兩種補救辦法
A. 最好的辦法就是透過不完全恢復,可以保證資料庫的一致性,但是這種辦法要求在歸檔方式下,並且有可用的備份
B. 透過強制性恢復,但是可能導致資料庫不一致。
下面分別用來說明這兩種恢復方法
測試環境:
1 作業系統:Redhat Linux 5
[oracle@mzl proc]$ cat /proc/version
Linux version 2.6.18-8.el5 (brewbuilder@ls20-bc2-14.build.redhat.com) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #1 SMP Fri Jan 26 14:15:21 EST 2007
2 資料庫版本:Oracle10g
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
3 設定成歸檔模式.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 268435456 bytes
Fixed Size 1218868 bytes
Variable Size 88082124 bytes
Database Buffers 171966464 bytes
Redo Buffers 7168000 bytes
Database mounted.
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 16
Current log sequence 18
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
Database altered.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 16
Next log sequence to archive 18
Current log sequence 18
SQL>
4 當前的redo日誌為1
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 2 NO CURRENT
2 1 YES INACTIVE
3 0 YES UNUSED
5 把日誌1移走,移動到資料夾“Old“中
[oracle@mzl orcl]$ mv redo01.log Old
6 關閉資料庫
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
7 啟動
SQL> startup
ORACLE instance started.
Total System Global Area 268435456 bytes
Fixed Size 1218868 bytes
Variable Size 88082124 bytes
Database Buffers 171966464 bytes
Redo Buffers 7168000 bytes
Database mounted.
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/orcl/redo01.log'
查v$log檢視
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 2 NO CURRENT
3 0 YES UNUSED
2 1 YES INACTIVE
8 恢復
SQL> recover database until cancel;
Media recovery complete.
9 開啟資料庫
SQL> alter database open resetlogs;
Database altered.
說明:
1、這種辦法恢復的資料庫是一致的不完全恢復,會丟失當前聯機日誌中的事務資料
2、這種方法適合於歸檔資料庫並且有可用的資料庫全備份。
3、恢復成功之後,記得再做一次資料庫的全備份。
4、建議聯機日誌檔案一定要實現鏡相在不同的磁碟上,避免這種情況的發生,因為任何資料的丟失對於生產來說都是不容許的。
參考itpub上piner的備份與恢復案例:
http://www.itpub.net/viewthread.php?tid=126320&extra=page%3D4%26amp%3Bfilter%3Ddigest
在伺服器測試成功
備份&恢復之十一:損壞當前聯機日誌
歸檔模式下當前日誌的損壞有兩種情況,
一、是資料庫是正常關閉,日誌檔案中沒有未決的事務需要例項恢復,當前日誌組的損壞就可以直接用alter database clear unarchived logfile group n來重建。
二、是日誌組中有活動的事務,資料庫需要媒體恢復,日誌組需要用來同步,有兩種補救辦法
A. 最好的辦法就是透過不完全恢復,可以保證資料庫的一致性,但是這種辦法要求在歸檔方式下,並且有可用的備份
B. 透過強制性恢復,但是可能導致資料庫不一致。
下面分別用來說明這兩種恢復方法
測試環境:
1 作業系統:Redhat Linux 5
[oracle@mzl proc]$ cat /proc/version
Linux version 2.6.18-8.el5 (brewbuilder@ls20-bc2-14.build.redhat.com) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #1 SMP Fri Jan 26 14:15:21 EST 2007
2 資料庫版本:Oracle10g
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
3 設定成歸檔模式.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 268435456 bytes
Fixed Size 1218868 bytes
Variable Size 88082124 bytes
Database Buffers 171966464 bytes
Redo Buffers 7168000 bytes
Database mounted.
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 16
Current log sequence 18
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
Database altered.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 16
Next log sequence to archive 18
Current log sequence 18
SQL>
4 當前的redo日誌為1
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 2 NO CURRENT
2 1 YES INACTIVE
3 0 YES UNUSED
5 把日誌1移走,移動到資料夾“Old“中
[oracle@mzl orcl]$ mv redo01.log Old
6 關閉資料庫
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
7 啟動
SQL> startup
ORACLE instance started.
Total System Global Area 268435456 bytes
Fixed Size 1218868 bytes
Variable Size 88082124 bytes
Database Buffers 171966464 bytes
Redo Buffers 7168000 bytes
Database mounted.
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/orcl/redo01.log'
查v$log檢視
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 2 NO CURRENT
3 0 YES UNUSED
2 1 YES INACTIVE
8 恢復
SQL> recover database until cancel;
Media recovery complete.
9 開啟資料庫
SQL> alter database open resetlogs;
Database altered.
說明:
1、這種辦法恢復的資料庫是一致的不完全恢復,會丟失當前聯機日誌中的事務資料
2、這種方法適合於歸檔資料庫並且有可用的資料庫全備份。
3、恢復成功之後,記得再做一次資料庫的全備份。
4、建議聯機日誌檔案一定要實現鏡相在不同的磁碟上,避免這種情況的發生,因為任何資料的丟失對於生產來說都是不容許的。
參考itpub上piner的備份與恢復案例:
http://www.itpub.net/viewthread.php?tid=126320&extra=page%3D4%26amp%3Bfilter%3Ddigest
在伺服器測試成功
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12778571/viewspace-263334/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 備份&恢復之十:損壞非當前聯機日誌
- 損壞聯機日誌 恢復
- 當前聯機日誌檔案損壞
- 聯機日誌損壞恢復實驗
- 損壞聯機日誌的恢復方法
- 當前聯機日誌和其他聯機日誌恢復的區別
- 【備份與恢復】恢復受損的複用聯機重做日誌檔案
- Oracle online redo log日誌 (當前或非當前日誌) 損壞之後的DB恢復Oracle
- 聯機日誌檔案損壞後的恢復方法[轉帖]
- 【備份與恢復】重建受損的聯機重做日誌檔案成員
- 當前日誌組全部損壞的恢復
- 備份&恢復之十三:損壞全部控制檔案
- 備份&恢復之十二:損壞單個控制檔案
- Oracle塊損壞恢復(有rman備份)Oracle
- 聯機日誌檔案損壞問題
- 【備份恢復】 恢復重做日誌組成員
- MySQL日誌管理,備份和恢復MySql
- MySQL 日誌管理、備份與恢復MySql
- Oracle備份恢復之熱備份恢復及異機恢復Oracle
- 一次日誌檔案損壞的恢復
- Sql server日誌損壞後的資料恢復(轉)SQLServer資料恢復
- 非系統表空間損壞,rman備份恢復
- 備份與恢復--從備份的歸檔日誌中恢復資料
- 磁碟損壞造成RMAN備份檔案有壞塊的恢復案例
- Oracle中的聯機日誌檔案發生不同程度損壞的恢Oracle
- Oracle 聯機備份 離線備份 物理備份 恢復Oracle
- 【備份恢復】set newname切換日誌
- 冷備份+歸檔日誌的恢復
- inactive狀態日誌組檔案損壞的恢復
- 非系統資料檔案損壞,rman備份恢復
- 備份與恢復--資料檔案損壞或丟失
- 備份恢復之redo日誌組member成員丟失
- rman恢復--丟失聯機重做日誌的恢復
- 線上日誌檔案損壞恢復方法
- 備份與恢復--重建控制檔案後資料檔案損壞的恢復
- 備份與恢復系列 十一 控制檔案的備份與恢復
- 【備份恢復】恢復inactive狀態的日誌檔案
- Oracle資料庫恢復:歸檔日誌損壞案例一則Oracle資料庫