一步一步學RMAN第九篇 實戰rman恢復(1)丟失控制檔案的恢復

junsansi發表於2007-07-19

  無數次我對自己說,可以了,足夠了,你已經明白了,需要學習的東西還很多,趕緊衝著下個目標去吧。尤幸的是在下一刻,另一個聲音在腦海中響起,再加把勁,真的搞明白了,親手去做個測試吧。

一步一步學RMAN第一篇 進入RMAN
http://junsansi.itpub.net/post/29894/307688

一步一步學RMAN第二篇 RMAN命令知多少
http://junsansi.itpub.net/post/29894/308749

一步一步學RMAN第三篇 RMAN備份演練初級篇
http://junsansi.itpub.net/post/29894/308751

一步一步學RMAN第四篇 RMAN備份演練進階篇
http://junsansi.itpub.net/post/29894/308752

一步一步學RMAN第五篇 RMAN基礎知識補充 一
http://junsansi.itpub.net/post/29894/308753

一步一步學RMAN第六篇 實戰RMAN備份
http://junsansi.itpub.net/post/29894/308756

一步一步學RMAN第七篇 RMAN基礎知識補充 二
http://junsansi.itpub.net/post/29894/309783

一步一步學RMAN第八篇 演練rman恢復
http://junsansi.itpub.net/post/29894/309785


前面說過的,在非恢復目錄(catalog)模式下,rman的備份資訊都將儲存在目標資料庫的控制檔案中,所以一旦控制檔案丟失,不僅目標資料庫崩潰,而且rman備份資訊也盡數丟失,這種情況下,如果您有控制檔案備份,那還有救(沒有備份的話,也並非完全沒有希望,如果您對自己的oracle結構非常瞭解,可以通過寫指令碼的方式自已重建控制檔案。看看oracle是不是考慮的很周全了,很多情況下你認為沒救了的時候,也並非完全陷入絕境)。
本章將模擬歸檔模式下,控制檔案丟失情況下的恢復,在本例中,我們仍然藉助上節中建立的備份做恢復,大家應該還記的。
在應用備份恢復時,必須知道目標資料庫的DBID,有多種方式可查,比如我們建立自動備份時,如果沒有更改其命名方式,檔名中會包含DBID;或者檢視之前的rman備份日誌,其中登陸到rman之後會顯示出目標資料庫的DBID


SQL> select *from jss.tmp3;

COL
--------------------------------------------------
test4
test1
test2
test3

SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL>host del F:OraHome1oradatajsswebCONTROL*;

SQL> EXIT;

C:Documents and SettingsAdministrator>rman target /

恢復管理器: 版本9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

連線到目標資料庫: jssweb(未安裝)

RMAN> set dbid 3391142503
#####由於目標資料庫控制檔案丟失,在此處必須指定dbid
正在執行命令: SET DBID

RMAN> restore controlfile from 'd:ackupC-3391142503-20070718-04';
########如果開啟了自動備份,通過restore controlfile from autobackup也可以
########不過需要注意,如果以前修改過AUTOBACKUP的格式和路徑,那麼在恢復之前需要進行重新設定指明自動備份所在路徑。不然RMAN有可能會找不著自動備份的檔案喲
啟動 restore 於 18-7月 -07

使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在恢復控制檔案
通道 ORA_DISK_1: 恢復完成
正在複製控制檔案
輸出檔名=F:ORAHOME1ORADATAJSSWEBCONTROL01.CTL
輸出檔名=F:ORAHOME1ORADATAJSSWEBCONTROL02.CTL
輸出檔名=F:ORAHOME1ORADATAJSSWEBCONTROL03.CTL
完成 restore 於 18-7月 -07

RMAN> sql 'alter database mount';
#######控制檔案已恢復,將目標資料庫置為載入狀態
正在使用目標資料庫控制檔案替代恢復目錄
sql 語句: alter database mount

RMAN> restore database;
########修復資料庫
啟動 restore 於 18-7月 -07

分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=12 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00001恢復到F:ORAHOME1ORADATAJSSWEBSYSTEM01.DBF
正將資料檔案00002恢復到F:ORAHOME1ORADATAJSSWEBUNDOTBS01.DBF
正將資料檔案00003恢復到F:ORAHOME1ORADATAJSSWEBDRSYS01.DBF
正將資料檔案00004恢復到F:ORAHOME1ORADATAJSSWEBEXAMPLE01.DBF
正將資料檔案00005恢復到F:ORAHOME1ORADATAJSSWEBINDX01.DBF
正將資料檔案00006恢復到F:ORAHOME1ORADATAJSSWEBODM01.DBF
正將資料檔案00007恢復到F:ORAHOME1ORADATAJSSWEBTOOLS01.DBF
正將資料檔案00008恢復到F:ORAHOME1ORADATAJSSWEBUSERS01.DBF
正將資料檔案00009恢復到F:ORAHOME1ORADATAJSSWEBXDB01.DBF
正將資料檔案00010恢復到F:ORAHOME1ORADATAJSSWEBJWEB.ORA
通道 ORA_DISK_1: 已恢復備份段 1
段 handle=D:BACKUP1AIN4JU5_1_1 tag=TAG20070718T092837 params=NULL
通道 ORA_DISK_1: 恢復完成
完成 restore 於 18-7月 -07

RMAN> recover database;
########恢復資料庫
啟動 recover 於 18-7月 -07
使用通道 ORA_DISK_1

正在開始介質的恢復

存檔日誌執行緒 1 序列 7 已作為檔案 F:ORAHOME1ORADATAJSSWEBREDOC02.LOG 存在於
盤上
存檔日誌執行緒 1 序列 8 已作為檔案 F:ORAHOME1ORADATAJSSWEBREDOA01.LOG 存在於
盤上
存檔日誌執行緒 1 序列 9 已作為檔案 F:ORAHOME1ORADATAJSSWEBREDOB02.LOG 存在於
盤上
通道 ORA_DISK_1: 正在啟動到預設目標的存檔日誌恢復
通道 ORA_DISK_1: 正在恢復存檔日誌
存檔日誌執行緒 =1 序列=5
通道 ORA_DISK_1: 已恢復備份段 1
段 handle=D:BACKUP1BIN4K16_1_1 tag=TAG20070718T093014 params=NULL
通道 ORA_DISK_1: 恢復完成
存檔日誌檔名 =F:ORAHOME1RDBMSARC00005.001 執行緒 =1 序列 =5
存檔日誌檔名 =F:ORAHOME1RDBMSARC00006.001 執行緒 =1 序列 =6
存檔日誌檔名 =F:ORAHOME1ORADATAJSSWEBREDOC02.LOG 執行緒 =1 序列 =7
存檔日誌檔名 =F:ORAHOME1ORADATAJSSWEBREDOA01.LOG 執行緒 =1 序列 =8
存檔日誌檔名 =F:ORAHOME1ORADATAJSSWEBREDOB02.LOG 執行緒 =1 序列 =9
完成介質的恢復
完成 recover 於 18-7月 -07

RMAN> sql 'alter database open resetlogs';
######由於使用備份的控制檔案恢復,該檔案內不包含目標資料庫redologs和資料檔案頭部scn資訊,所以必須通過resetlogs方式open。
sql 語句: alter database open resetlogs

RMAN> host;

Microsoft Windows [版本 5.2.3790]
(C) 版權所有 1985-2003 Microsoft Corp.

C:Documents and SettingsAdministrator>sqlplus jss/jss

SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 7月 18 17:40:28 2007

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


連線到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

SQL> select *from tmp3;

COL
--------------------------------------------------
test4
test1
test2
test3
#######成功恢復,資料也沒有丟失
SQL> exit
從Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中斷開

C:Documents and SettingsAdministrator>exit
主機命令完成

RMAN>

注意,恢復之後表忘了重建臨時表空間。另外,由於resetlogs,建議立即對資料庫進行一次完全備份。

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

相關文章