使用RMAN備份集和過時的控制檔案進行資料庫的恢復(2/2)

djb1008發表於2010-09-20

3.2.12 查詢最新的資料庫SCN

然後我們查詢一下最新的資料庫的SCN 和資料檔案的SCN,都是最新的SCN,而且具有相同值。

SQL> select ts#,file#,name,checkpoint_change#,sysdate from v$datafile order by ts#,file#

FILE# NAME CHECKPOINT_CHANGE# SYSDATE

---------- ------------------------------ ------------------ -------------------

1 C:ORADATAAIDUSYSTEM01.DBF 1224188 2006-06-23 16:18:46

2 C:ORADATAAIDUUNDOTBS01.DBF 1224188 2006-06-23 16:18:46

3 C:ORADATAAIDUSYSAUX01.DBF 1224188 2006-06-23 16:18:46

4 C:ORADATAAIDUUSERS01.DBF 1224188 2006-06-23 16:18:46

SQL> select sysdate,dbid,db_unique_name,checkpoint_change# from v$database;

DBID DB_UNIQUE_NAME CHECKPOINT_CHANGE#

------------------- ---------- ------------------------------ ------------------

2006-06-23 16:31:40 451307475 aidu 1224188

我們看到RMAN 全備份前,後的資料都成功的恢復,試驗是成功的.

3.2.13 手工維護臨時表空間

檢視是否已經存在臨時表空間

[@more@]

SQL> select tablespace_name,status,contents from dba_tablespaces;

TABLESPACE_NAME STATUS CONTENTS

------------------------------ --------- ---------

SYSTEM ONLINE PERMANENT

UNDOTBS1 ONLINE UNDO

SYSAUX ONLINE PERMANENT

TEMP ONLINE TEMPORARY

USERS ONLINE PERMANENT

不同版本的ORACLE在處理TEMP 表空間有不同的方法,10.2以後,系統發現不存在臨時表空間,將會自動建立,但不自動為臨時表空間設定檔案,需要手工增加;如果為臨時表空間增加了臨時檔案(TEMPFILE),如果使用者不小心刪除了臨時表空間的檔案,資料庫將在重新啟動時自動按照資料字典定義,自動生成新的控制檔案(刪除幾個,就自動生成幾個)

為臨時表空間增加臨時檔案

SQL>ALTER TABLESPACE TEMP ADD TEMPFILE 'C:oradataaiduTEMP01.DBF' SIZE 20M;

舊版本中手工增加臨時表空間

SQL>CREATE TEMPORARY TABLESPACE TEMP TEMPFILE ‘C:ORADATAAIDUTEMP01.DBF’ SIZE 20M;

SQL>ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;

  1. 試驗總結

  1. 儘量使用RMAN進行資料庫備份,同時開啟控制檔案的自動備份。
  2. RMAN備份集應該同時儲存到不同的儲存介質上。
  3. 本次試驗幸運的是有一箇舊的控制檔案,可以用於RMAN恢復檔案、SQLPLUS重新建立控制檔案。如果沒有的話或者舊的控制檔案備份後資料庫的結構發生了變化,將只能夠透過修改生成控制檔案的模板來建立新的控制檔案,如果對資料庫的結構不熟悉,將會給恢復工作帶來很大的困難,所以強烈建議當資料庫結構發生改變時,應及時備份控制檔案。
  4. 本次試驗沒有檢驗REDO 資料的丟失,應該可以加進來測試一下。
  5. 本試驗可以作為只有RMAN備份集,資料庫的檔案全部丟失(包括控制檔案)的情況下進行資料庫的恢復工作的指導,恢復的關鍵是要將RMANSQLPLUS組合起來進行恢復,有比較大的難度,需要操作者具有一定的資料庫知識,並對資料庫的結構有較清楚的理解。

  1. 附件:C:TEMPCREATE_CONTROLFILE.TXT:

CREATE CONTROLFILE REUSE DATABASE "AIDU" RESETLOGS ARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 292

LOGFILE

GROUP 1 (

'C:ORADATAAIDUREDO01.LOG',

'C:ORADATAAIDUREDO01B.LOG'

) SIZE 10M,

GROUP 2 (

'C:ORADATAAIDUREDO02.ORA',

'C:ORADATAAIDUREDO02B.ORA'

) SIZE 10M,

GROUP 3 (

'C:ORADATAAIDUREDO03.LOG',

'C:ORADATAAIDUREDO03B.LOG'

) SIZE 10M

-- STANDBY LOGFILE

DATAFILE

'C:ORADATAAIDUSYSTEM01.DBF',

'C:ORADATAAIDUUNDOTBS01.DBF',

'C:ORADATAAIDUSYSAUX01.DBF',

'C:ORADATAAIDUUSERS01.DBF'

CHARACTER SET ZHS16GBK;

備註:

如果REDO LOG檔案存在,則使用NORESETLOGS

如果REDO LOG檔案不存在,則使用RESETLOGS,建立控制檔案時,不檢查REDO LOG 檔案是否存在。在資料庫開啟時,自動生成全新的空的REDO LOG檔案。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/32980/viewspace-1038631/,如需轉載,請註明出處,否則將追究法律責任。

相關文章