基於SCN的不完全恢復使用情況跟基於時間一樣,只是這裏是根據scn值來恢復的。
首先模擬數據庫故障。
- SQL> select current_scn from v$database;
- CURRENT_SCN
- -----------
- 475351
- SQL> select file_name from dba_data_files;
- FILE_NAME
- ------------------------------------------------------------
- /u01/app/oracle/oradata/orcl/users01.dbf
- /u01/app/oracle/oradata/orcl/sysaux01.dbf
- /u01/app/oracle/oradata/orcl/undotbs01.dbf
- /u01/app/oracle/oradata/orcl/system01.dbf
- /u01/app/oracle/oradata/orcl/tb1.dbf
- SQL> ! rm -rf /u01/app/oracle/oradata/orcl/tb1.dbf
- SQL> shutdown abort;
- ORACLE 例程已經關閉。
- SQL> startup mount;
- ORACLE 例程已經啓動。
- Total System Global Area 167772160 bytes
- Fixed Size 1266392 bytes
- Variable Size 88083752 bytes
- Database Buffers 75497472 bytes
- Redo Buffers 2924544 bytes
- 數據庫裝載完畢。
然後使用rman基於scn來恢復數據庫
- [oracle@linux ~]$ rman target /
- 恢復管理器: Release 10.2.0.4.0 - Production on 星期二 10月 18 05:19:51 2011
- Copyright (c) 1982, 2007, Oracle. All rights reserved.
- 已連接到目標數據庫: ORCL (DBID=1292118315, 未打開)
- RMAN> run {
- 2> set until scn=475351;
- 3> restore database;
- 4> recover database;
- 5> alter database open resetlogs; }
- 正在執行命令: SET until clause
- 使用目標數據庫控制文件替代恢復目錄
- 啓動 restore 於 18-10月-11
- 分配的通道: ORA_DISK_1
- 通道 ORA_DISK_1: sid=155 devtype=DISK
- 通道 ORA_DISK_1: 正在開始恢復數據文件備份集
- 通道 ORA_DISK_1: 正在指定從備份集還原的數據文件
- 正將數據文件00001還原到/u01/app/oracle/oradata/orcl/system01.dbf
- 正將數據文件00002還原到/u01/app/oracle/oradata/orcl/undotbs01.dbf
- 正將數據文件00003還原到/u01/app/oracle/oradata/orcl/sysaux01.dbf
- 正將數據文件00004還原到/u01/app/oracle/oradata/orcl/users01.dbf
- 正將數據文件00005還原到/u01/app/oracle/oradata/orcl/tb1.dbf
- 通道 ORA_DISK_1: 正在讀取備份片段 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_18/o1_mf_nnndf_TAG20111018T045948_79s5t51d_.bkp
- 通道 ORA_DISK_1: 已還原備份片段 1
- 段句柄 = /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_18/o1_mf_nnndf_TAG20111018T045948_79s5t51d_.bkp 標記 = TAG20111018T045948
- 通道 ORA_DISK_1: 還原完成, 用時: 00:00:35
- 完成 restore 於 18-10月-11
- 啓動 recover 於 18-10月-11
- 使用通道 ORA_DISK_1
- 正在開始介質的恢復
- 存檔日誌線程 1 序列 8 已作爲文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_8_79s5w7pt_.arc 存在於磁盤上
- 存檔日誌線程 1 序列 9 已作爲文件 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_9_79s6h7gh_.arc 存在於磁盤上
- 存檔日誌文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_8_79s5w7pt_.arc 線程 =1 序列 =8
- 存檔日誌文件名 =/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_18/o1_mf_1_9_79s6h7gh_.arc 線程 =1 序列 =9
- 介質恢復完成, 用時: 00:00:05
- 完成 recover 於 18-10月-11
- 數據庫已打開
最後可以看見數據庫已經打開
- SQL> select status from v$instance;
- STATUS
- ------------
- OPEN