程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle備份,redo丟失和恢復的實操

Oracle備份,redo丟失和恢復的實操

編輯:Oracle數據庫基礎

我們今天要和大家一起討論的是Oracle備份,redo丟失和恢復的實際操作方案的實際應用,如果你對Oracle備份,redo丟失和恢復的實操感興趣的話,以下的文章就會給你提供相關的知識,望你會有所收獲。

一、先闡述下測試環境

系統數據庫環境:window+Oracle10g R2+archive模式;

模擬Redo文件丟失,數據庫在正常關閉的情況發現Redo丟失了;

二、測試

(1)、倘若丟了一個或多個redo組的一個成員。這種情況最好處理,直接copy其它目錄的成員,重新啟動數據庫即可。此種情況不作太多的說明;

(2)、倘若丟失的是一組或兩組甚至全部Redo日志丟失,則有以下三種方法可以恢復;

A、clear logfile方法(以下的測試均屬於是redo日志全部丟失的環境下)

1、關閉數據庫;

2、手動刪除所有redo文件;

3、啟動數據庫;

SQL> startup

Oracle 例程已經啟動。

  1. Total System Global Area 612368384 bytes  
  2. Fixed Size 1250428 bytes  
  3. Variable Size 255855492 bytes  
  4. Database Buffers 348127232 bytes  
  5. Redo Buffers 7135232 bytes  

數據庫裝載完畢。

ORA-00313: 無法打開日志組 1 (用於線程 1) 的成員

ORA-00312: 聯機日志 1 線程 1:

'E:\Oracle\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'

ORA-00312: 聯機日志 1 線程 1: 'F:\REDO\REDO01_B.LOG'

SQL>

4、查看當前日志狀態;

  1. SQL> select group#,members,archived,status from v$log;  
  2. GROUP# MEMBERS ARC STATUS  
  3. 1 2 YES INACTIVE  
  4. 2 2 NO CURRENT  
  5. 3 2 YES INACTIVE  
  6. SQL> 

5、clear生成非當前的日志;

  1. SQL>alter database clear logfile group1; 

數據庫已更改。

SQL>

6、繼續打開數據庫;

  1. SQL> alter database open;  
  2. alter database open  
  3. *  

第 1 行出現錯誤:

ORA-00313: 無法打開日志組 2 (用於線程 1) 的成員

ORA-00312: 聯機日志 2線程 1:

'E:\Oracle\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'

ORA-00312: 聯機日志 3 線程 1: 'F:\REDO\REDO02_B.LOG'

SQL>

  1. SQL> alter database clear logfile group 2;  
  2. alter database clear logfile group 2*  

第 1 行出現錯誤:

ORA-00350: 日志 2(實例 orcl 的日志, 線程 1) 需要歸檔

ORA-00312: 聯機日志 2 線程 1:

'E:\Oracle\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'

ORA-00312: 聯機日志 2 線程 1: 'F:\REDO\REDO02_B.LOG'

報錯;因為group2是當前狀態;

此時只能從其它目錄copy有效Oracle備份。然後在alter database;

  1. SQL>alter database clear unarchived logfile group2; 

數據庫已更改。

然後再重建Group 3,方法同重建 Group 1;

  1. SQL> alter database clear logfile group 3; 

數據庫已更改。

  1. SQL> alter database open; 

數據庫已更改。

注意:倘若沒有物理有效Oracle備份文件,數據庫則將無法打開;用clear logifle這種方法,對於處於CURRENT狀態的Redo,只能通過COPY有效的物理備份去打開數據庫,否則無法打開;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved