2006年08月7日

nocarchive使用rman還原測試

 os:win2000
oracle:10.0.2

在noarchive,檔案損壞,採用rman方法進行修複
1、先進行rman備份(因為database為noarchive的情況,所以要把database狀態變為mount才能進行備份,不然會出現錯誤訊 習)
已連線 目標資料庫: BINHU (DBID=616178683, 未開啟)

RMAN> run {
2> allocate channel t1  type disk;
3> backup full format 'd:/vm/%U' database include current controlfile;
4> release channel t1;
5> }

使用目標資料庫控制檔替代復原目錄
配置的通道: t1
通道 t1: sid=156 devtype=DISK

開始 backup, 於 2006-08-07 11:07:23
通道 t1: 啟動完整資料檔備份集
通道 t1: 正在指定備份集中的資料檔
輸入資料檔 fno=00001 名稱=D:\ORACLE\PRODUCT\10.2.0\BINHU\SYSTEM01.DBF
輸入資料檔 fno=00003 名稱=D:\ORACLE\PRODUCT\10.2.0\BINHU\SYSAUX01.DBF
輸入資料檔 fno=00002 名稱=D:\ORACLE\PRODUCT\10.2.0\BINHU\UNDOTBS01.DBF
輸入資料檔 fno=00004 名稱=D:\ORACLE\PRODUCT\10.2.0\BINHU\USERS01.DBF
輸入資料檔 fno=00005 名稱=D:\ORACLE\PRODUCT\10.2.0\BINHU\TEST.DBF
通道 t1: 啟動部份 1, 在 2006-08-07 11:07:25
通道 t1: 已完成部份 1, 在 2006-08-07 11:08:40
片段處理=D:\VM\0BHQ4LNC_1_1 標記=TAG20060807T110723 註解=NONE
通道 t1: 備份集完成, 經歷時間: 00:01:16
通道 t1: 啟動完整資料檔備份集
通道 t1: 正在指定備份集中的資料檔
包括備份集中目前的控制檔
在備份集中包括目前的 SPFILE
通道 t1: 啟動部份 1, 在 2006-08-07 11:08:42
通道 t1: 已完成部份 1, 在 2006-08-07 11:08:43
片段處理=D:\VM\0CHQ4LPO_1_1 標記=TAG20060807T110723 註解=NONE
通道 t1: 備份集完成, 經歷時間: 00:00:03
完成 backup, 於 2006-08-07 11:08:43

釋出的通道: t1

RMAN> exit

2、我測試的檔案是D:\ORACLE\PRODUCT\10.2.0\BINHU\TEST.DBF,所以我把他刪除後,開到open看看
SQL> alter database open;
alter database open
*
 ERROR 在行 1:
ORA-01157: 無法識別/鎖定資料檔 5 - 請參閱 DBWR 追蹤檔
ORA-01110: 資料檔 5: 'D:\ORACLE\PRODUCT\10.2.0\BINHU\TEST.DBF'

3、進rman進行還原
RMAN> restore datafile 5;

開始 restore, 於 2006-08-07 11:15:40
使用目標資料庫控制檔替代復原目錄
配置的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=159 devtype=DISK

通道 ORA_DISK_1: 正在啟動資料檔備份集回復
通道 ORA_DISK_1: 正在設定要從備份集回復的資料檔
正在將資料檔 00005 回復為 D:\ORACLE\PRODUCT\10.2.0\BINHU\TEST.DBF
通道 ORA_DISK_1: 從備份 D:\VM\0BHQ4LNC_1_1 讀取
通道 ORA_DISK_1: 已回復備份 1
片斷處理=D:\VM\0BHQ4LNC_1_1 標記=TAG20060807T110723
通道 ORA_DISK_1: 回復完成, 經歷時間: 00:00:04
完成 restore, 於 2006-08-07 11:15:46

RMAN> recover database;

開始 recover, 於 2006-08-07 11:16:11
使用通道 ORA_DISK_1

啟動媒體恢復
媒體復原完成, 經歷時間: 00:00:00

完成 recover, 於 2006-08-07 11:16:14


4、進oracle查看是否真ok了
SQL> alter database open;

已更改資料庫.

SQL> select count(*) from test2;

  COUNT(*)
----------
   1376256

SQL> select status from v$instance;

STATUS
------------------------
OPEN

Posted by my_work at 樂多Roodo! │12:00 │回應(0)引用(0)DB
樂多分類:網路/3C 共同主題:Oracle 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/1983647