oracle實驗記錄 (恢復-rman恢復)
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
rman使用備份集 恢復要先
restore backup
基本命令就是
RESTORE
restore database;從backup SET 轉儲整個database備份 (MOUNT下)
restore tablespace xx;從backup SET 轉儲指定tablespace備份(MOUNT下,OPEN下tablespace 需要offline 損壞的datafile or tablespace)
restore datafile XX;從backup SET 轉儲指定datafile備份(MOUNT,OPEN下datafile要offline)
restore spfile xx;從backup SET 轉儲SPFILE備份(nomount)
restore controlfile xx; 從backup SET 轉儲controlfile(NOMOUNT)可以加to
restore archivelog xx;從backup set 轉儲archivelog(MOUNT,OPEN)
接著recover
recover tablespace
recover datafile
recover database
完全恢復(database)
RMAN> shutdown immediate;
資料庫已關閉
資料庫已解除安裝
Oracle 例項已關閉
RMAN> startup mount;
已連線到目標資料庫 (未啟動)
Oracle 例項已啟動
資料庫已裝載
系統全域性區域總計 612368384 位元組
Fixed Size 1250428 位元組
Variable Size 197135236 位元組
Database Buffers 406847488 位元組
Redo Buffers 7135232 位元組
RMAN> restore database;
啟動 restore 於 14-9月 -09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=157 devtype=DISK
.....................
RMAN>
RMAN>
RMAN> recover database;
啟動 recover 於 14-9月 -09
使用通道 ORA_DISK_1
正在開始介質的恢復
介質恢復完成, 用時: 00:00:05
完成 recover 於 14-9月 -09
RMAN>
RMAN> alter database open;
資料庫已開啟
完全恢復(TABLESPACE) MOUNT下
RMAN> restore tablespace TESTTB;
啟動 restore 於 14-9月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00007恢復到D:\TESTTB.DBF
通道 ORA_DISK_1: 正在讀取備份段 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\B~~~~~~~~~~~~~(OPEN 時候不行)
ACKUPSET\2009_09_14\O1_MF_NNNDF_TAG20090914T103430_5BVBXRF5_.BKP
RMAN> startup force mount;
Oracle 例項已啟動
資料庫已裝載
系統全域性區域總計 612368384 位元組
Fixed Size 1250428 位元組
Variable Size 201329540 位元組
Database Buffers 402653184 位元組
Redo Buffers 7135232 位元組
RMAN> restore tablespace TESTTB;
啟動 restore 於 14-9月 -09
分配的通道: ORA_DISK_1
完成 restore 於 14-9月 -09
RMAN> recover tablespace testtb ;
啟動 recover 於 14-9月 -09
使用通道 ORA_DISK_1
正在開始介質的恢復
介質恢復完成, 用時: 00:00:03
完成 recover 於 14-9月 -09
RMAN> alter database open;
資料庫已開啟
RMAN> sql 'alter tablespace testtb online';~~~~~~~~~~~~~~~~~~~~~~~~~應該把這個操作寫到一個run中
sql 語句: alter tablespace testtb online
完全恢復(TABLESPACE) OPEN下
RMAN> sql 'alter tablespace testtb offline';(先將要恢復的tablespace offline) 實際情況中因為datafile損壞而無法offline ,應該alter tablespace XX OFFLINE FOR
RECOVER
sql 語句: alter tablespace testtb offline
RMAN> restore tablespace TESTTB;
啟動 restore 於 14-9月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
.................
完成 restore 於 14-9月 -09
RMAN> recover tablespace testtb;
啟動 recover 於 14-9月 -09
使用通道 ORA_DISK_1
正在開始介質的恢復
介質恢復完成, 用時: 00:00:03
完成 recover 於 14-9月 -09
RMAN> sql 'alter tablespace testtb online';
sql 語句: alter tablespace testtb online
RMAN> run{sql'alter database datafile 7 offline'~~~~~~~~~~~~~~~OFFLINE datafile
2> ;
3> restore tablespace testtb;
4> recover tablespace testtb;
5> sql'alter database datafile 7 online';}
正在開始介質的恢復
介質恢復完成, 用時: 00:00:02
完成 recover 於 14-9月 -09
sql 語句: alter database datafile 7 online
完全恢復(datafile ) mount
RMAN> run{startup force mount;
2> restore datafile 4;
3> recover datafile 4;
4> sql'alter database datafile 4 online';}
Oracle 例項已啟動
資料庫已裝載
系統全域性區域總計 612368384 位元組
Fixed Size 1250428 位元組
Variable Size 205523844 位元組
Database Buffers 398458880 位元組
Redo Buffers 7135232 位元組
啟動 restore 於 14-9月 -09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=157 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00004恢復到E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在讀取備份段 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\B
ACKUPSET\2009_09_14\O1_MF_NNNDF_TAG20090914T103430_5BVBXRF5_.BKP
通道 ORA_DISK_1: 已恢復備份段 1
段控制程式碼 = E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_09_14\O1_
MF_NNNDF_TAG20090914T103430_5BVBXRF5_.BKP 標記 = TAG20090914T103430
通道 ORA_DISK_1: 恢復完成, 用時: 00:00:03
完成 restore 於 14-9月 -09
啟動 recover 於 14-9月 -09
使用通道 ORA_DISK_1
正在開始介質的恢復
介質恢復完成, 用時: 00:00:03
完成 recover 於 14-9月 -09
sql 語句: alter database datafile 4 online
完全恢復(datafile ) OPEN
RMAN> run{sql'alter database datafile 4 offline';
2> restore datafile 4;
3> recover datafile 4;
4> sql'alter database datafile 4 online';}
sql 語句: alter database datafile 4 offline
啟動 restore 於 14-9月 -09
使用通道 ORA_DISK_1
..................
完成 recover 於 14-9月 -09
sql 語句: alter database datafile 4 online
恢復spfile(nomount)
RMAN> list backup of spfile;
備份集列表
===================
BS 關鍵字 型別 LV 大小 裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
71 Full 7.11M DISK 00:00:03 14-9月 -09
BP 關鍵字: 95 狀態: AVAILABLE 已壓縮: NO 標記: TAG20090914T103430
段名:E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_09_14\O1_MF_N
CSNF_TAG20090914T103430_5BVC0COZ_.BKP
包含的 SPFILE: 修改時間: 14-9月 -09
SQL> host del E:\oracle\product\10.2.0\db_1\database\spfileorcl.ora;
RMAN> restore spfile from 'E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUP
SET\2009_09_14\O1_MF_NCSNF_TAG20090914T103430_5BVC0COZ_.BKP';
啟動 restore 於 14-9月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 已找到的自動備份: E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORC
L\BACKUPSET\2009_09_14\O1_MF_NCSNF_TAG20090914T103430_5BVC0COZ_.BKP
通道 ORA_DISK_1: 從自動備份復原 SPFILE 已完成
完成 restore 於 14-9月 -09
RMAN> run{alter database mount;
2> alter database open;}
恢復controlfile (NOMOUNT)
RMAN> shutdown immediate;
資料庫已關閉
資料庫已解除安裝
Oracle 例項已關閉
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`刪除控制檔案
RMAN> restore controlfile from 'E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\B
ACKUPSET\2009_09_14\O1_MF_NCSNF_TAG20090914T103430_5BVC0COZ_.BKP';
啟動 restore 於 14-9月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在復原控制檔案
通道 ORA_DISK_1: 恢復完成, 用時: 00:00:05
輸出檔名=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL
輸出檔名=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL
輸出檔名=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL
完成 restore 於 14-9月 -09
RMAN> alter database mount;
資料庫已裝載
釋放的通道: ORA_DISK_1
RMAN> recover database ;
..............................
使用通道 ORA_DISK_1
正在開始介質的恢復
存檔日誌執行緒 1 序列 3 已作為檔案 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG
存在於磁碟上
存檔日誌執行緒 1 序列 4 已作為檔案 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG
存在於磁碟上
存檔日誌執行緒 1 序列 5 已作為檔案 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG
存在於磁碟上
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG 執行緒 =1 序列 =3
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG 執行緒 =1 序列 =4
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG 執行緒 =1 序列 =5
介質恢復完成, 用時: 00:00:06
完成 recover 於 14-9月 -09
單恢復controlfile的話 必須應用current redofile (可以看恢復controlfile(4)實驗記錄)
RMAN> alter database open resetlogs;(因為備份控制檔案中資訊與logfile中資訊不一樣 所以resetlogs重置redofile ,sequence 為1,scn+1)
rman 不完全恢復
基於時間
基於SCN
基於sequence
基於控制檔案恢復
正常情況下恢復完後以前的備份將無法使用 ,要重新備份(其實也可以使用 後面會實驗)
RMAN> backup database;
啟動 backup 於 14-9月 -09
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=136 devtype=DISK
SQL> set time on
15:01:28 SQL>
15:02:43 SQL> conn xh/a831115
已連線。
15:02:50 SQL> select count(*) from t2;
COUNT(*)
----------
1001
15:02:51 SQL> truncate table t2;
表被截斷。
15:02:59 SQL> select count(*) from t2;
COUNT(*)
----------
0
C:\>rman target '/ as sysdba'
恢復管理器: Release 10.2.0.1.0 - Production on 星期一 9月 14 15:11:57 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已連線到目標資料庫: ORCL (DBID=1223510333, 未開啟)
RMAN> run{startup force mount;
2> set until time='2009-09-14 15:01:28';~~~~~~~~~~~~~~~~基於scn就是until scn= ,基於sequence就是until sequece=
3> restore database;
4> recover database;
5> alter database open resetlogs;
6> }
介質恢復完成, 用時: 00:00:04
完成 recover 於 2009-09-14 15:14:04
資料庫已開啟
SQL> conn xh/a831115
已連線。
SQL> select count(*) from t2;
COUNT(*)
----------
1001
~~~~~~~~~~~~~~~~~~~~~~~`
恢復時候改變檔案位置
比如原來DISK不能用了 改變下位置
RMAN> backup datafile 6;
RMAN> run{sql'alter database datafile 6 offline';
2> set newname for datafile 6 to 'e:\test.dbf';~~~~~~~~~讓restore到這個位置
3> restore datafile 6;
4> switch datafile 6;~~~~~~~~~~~~~改變controlfile中記錄
5> recover datafile 6;
6> sql 'alter database 6 online';
7> }
sql 語句: alter database datafile 6 offline
sql 語句: alter database datafile 6 offline
正在執行命令: SET NEWNAME
啟動 restore 於 18-9月 -09
使用通道 ORA_DISK_1
另外
在oracle連線的時候可以直接執行指令碼和讓oracle操作不顯示到螢幕 而寫入指定的log
C:\>rman target '/ as sysdba' nocatalog log='d:\rmanlog.log' (APPEND 追加)
如果下次還是使用這個log將會覆蓋上次的記錄,除非用APPEND將追加在上次記錄的後面
RMAN> backup datafile 6;
RMAN>
~~~~~~~~RMANLOG.LOG中記錄
恢復管理器: Release 10.2.0.1.0 - Production on 星期五 9月 18 17:49:29 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: ORCL (DBID=1223510333)
使用目標資料庫控制檔案替代恢復目錄
RMAN>
啟動 backup 於 18-9月 -09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=160 devtype=DISK
通道 ORA_DISK_1: 啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00006 name=E:\TEST.DBF
通道 ORA_DISK_1: 正在啟動段 1 於 18-9月 -09
通道 ORA_DISK_1: 已完成段 1 於 18-9月 -09
段控制程式碼=E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_09_18\O1_MF_NNNDF_TAG20090918T175010_5C6OYLM1_.BKP 標記=TAG20090918T175010 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:01
完成 backup 於 18-9月 -09
執行系統檔案
C:\>rman target '/ as sysdba' cmdfile='d:\test.txt'(TEST.TXT中 是backup datafile 6)
恢復管理器: Release 10.2.0.1.0 - Production on 星期五 9月 18 10:11:28 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: ORCL (DBID=1223510333)
RMAN> backup datafile 6;
2>
啟動 backup 於 18-9月 -09
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
rman target '/ as sysdba' catalog / script=.......
另外也可以執行指令碼 指令碼儲存在catalog中所以要建立catalog
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12020513/viewspace-614961/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle RMAN恢復測試Oracle
- RMAN恢復實踐
- Oracle RMAN 表空間恢復Oracle
- 透過搭建恢復目錄實現RMAN異地備份和恢復
- RMAN增量恢復
- 【Oracle 恢復表空間】 實驗Oracle
- Oracle 備份恢復篇之RMAN catalogOracle
- ORACLE DG從庫 Rman備份恢復Oracle
- Oracle 12C新特性-RMAN恢復表Oracle
- rman 增量備份恢復
- RMAN備份恢復技巧
- RMAN備份恢復典型案例——異機恢復未知DBID
- RMAN恢復之RMAN-06555處理
- oracle 增量備份恢復驗證Oracle
- NBU恢復oracleOracle
- 查詢RMAN恢復進度
- RMAN備份異機恢復
- oracle ORA-01180 ORA-01110(rman恢復問題)Oracle
- ORACLE 11.2.0.4 RAC RMAN異機恢復之ORA-15001Oracle
- NBU恢復Oracle通道完成後RMAN沒有進度Oracle
- 【RMAN】Oracle12c以後rman 備份恢復命令參考Oracle
- oracle使用小記、刪除恢復Oracle
- RMAN備份恢復效能優化優化
- 在rman恢復中incarnation的概念
- RMAN備份與恢復測試
- oracle冷備恢復Oracle
- oracle 異機恢復Oracle
- 微信聊天記錄的恢復
- 伺服器資料恢復案例:FreeNAS資料恢復過程記錄伺服器資料恢復
- Oracle案例12——NBU Oracle恢復Oracle
- 【資料遷移1】Oracle 10gR2 rman異機恢復實驗(FS->RAW)(1)Oracle 10g
- 【資料遷移1】Oracle 10gR2 rman異機恢復實驗(FS->RAW)(2)Oracle 10g
- 表空間TSPITR恢復-實驗
- rman備份異機恢復(原創)
- Windows oracle 11g rman備份恢復到linux系統WindowsOracleLinux
- Oracle 不完全恢復Oracle
- Oracle9i RMAN 的優缺點及RMAN 備份及恢復步驟Oracle
- Oracle 目錄許可權丟失故障恢復Oracle
- 12 使用RMAN備份和恢復檔案