2006年08月7日
noarchive的情況下硬碟壞了,使用rman還原
os:win2000
oracle:10.0.2
在noarchive,檔案損壞,並且存放檔案的hd損壞,採用rman方法進行修複
1、先進行rman備份(因為database為noarchive的情況,所以要把database狀態變為mount才能進行備份,不然會出現錯誤訊 習)
2、我測試的檔案是D:\ORACLE\PRODUCT\10.2.0\BINHU\TEST.DBF,所以我把他刪除後,開到open看看
3、進rman進行還原
4、進oracle查看是否真ok了
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> run { 2> allocate channel tt1 type disk; 3> set newname for datafile 5 to 'D:\ORACLE\PRODUCT\10.2.0\BINHU\new_test1.dbf'; 4> restore datafile 5; 5> switch datafile all; 6> recover database; 7> } 釋出的通道: ORA_DISK_1 配置的通道: tt1 通道 tt1: sid=156 devtype=DISK 執行命令: SET NEWNAME 開始 restore, 於 2006-08-07 11:41:10 通道 tt1: 正在回復資料檔 00005 輸入資料檔複本 recid=2 戳記=597842827 檔案名稱=D:\ORACLE\PRODUCT\10.2.0\BINHU\NEW_TEST.DB 資料檔 00005 回復的目的地: D:\ORACLE\PRODUCT\10.2.0\BINHU\NEW_TEST1.DBF 通道 tt1: 已複製資料檔 00005 的資料檔複本 輸出檔案名稱=D:\ORACLE\PRODUCT\10.2.0\BINHU\NEW_TEST1.DBF recid=3 戳記=597843671 完成 restore, 於 2006-08-07 11:41:12 資料檔 5 已切換成資料檔複本 輸入資料檔複本 recid=4 戳記=597843672 檔案名稱=D:\ORACLE\PRODUCT\10.2.0\BINHU\NEW_TEST1.DF 開始 recover, 於 2006-08-07 11:41:13 啟動媒體恢復 媒體復原完成, 經歷時間: 00:00:02 完成 recover, 於 2006-08-07 11:41:16 釋出的通道: tt1 |
4、進oracle查看是否真ok了
| SQL>
select name from v$datafile; NAME -------------------------------------------------------------------------------- D:\ORACLE\PRODUCT\10.2.0\BINHU\SYSTEM01.DBF D:\ORACLE\PRODUCT\10.2.0\BINHU\UNDOTBS01.DBF D:\ORACLE\PRODUCT\10.2.0\BINHU\SYSAUX01.DBF D:\ORACLE\PRODUCT\10.2.0\BINHU\USERS01.DBF D:\ORACLE\PRODUCT\10.2.0\BINHU\TEST.DBF (還原前的檔名) SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- D:\ORACLE\PRODUCT\10.2.0\BINHU\SYSTEM01.DBF D:\ORACLE\PRODUCT\10.2.0\BINHU\UNDOTBS01.DBF D:\ORACLE\PRODUCT\10.2.0\BINHU\SYSAUX01.DBF D:\ORACLE\PRODUCT\10.2.0\BINHU\USERS01.DBF D:\ORACLE\PRODUCT\10.2.0\BINHU\NEW_TEST1.DBF (還原後的檔名) SQL> alter database open; 已更改資料庫. SQL> select count(*) from test2; COUNT(*) ---------- 1376256 SQL> select status from v$instance; STATUS ------------------------ OPEN |
引用URL
http://cgi.blog.roodo.com/trackback/1983659