實驗環境:
一、首先進行全庫數據備份:
在非歸檔模式下,rman備份需要在mount模式下進行
SQL> select status from v$instance; STATUS ------------ OPEN SQL> shutdown immediate; 數據庫已經關閉。 已經卸載數據庫。 ORACLE 例程已經關閉。 SQL> startup mount; ORACLE 例程已經啟動。 Total System Global Area 535662592 bytes Fixed Size 1375792 bytes Variable Size 327156176 bytes Database Buffers 201326592 bytes Redo Buffers 5804032 bytes 數據庫裝載完畢。 SQL> select status from v$instance; STATUS ------------ MOUNTED
登錄rman,進行數據庫全庫備份:
恢復管理器: Release 11.2.0.1.0 - Production on 星期一 9月 21 12:13:44 2015 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 已連接到目標數據庫: ORCL (DBID=1362531435, 未打開) RMAN> backup database; 啟動 backup 於 21-9月 -15 使用目標數據庫控制文件替代恢復目錄 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=10 設備類型=DISK 通道 ORA_DISK_1: 正在啟動全部數據文件備份集 通道 ORA_DISK_1: 正在指定備份集內的數據文件 輸入數據文件: 文件號=00006 名稱=D:\APP\FX\ORADATA\ORCL\UNDOTBS02.DBF 輸入數據文件: 文件號=00002 名稱=D:\APP\FX\ORADATA\ORCL\SYSAUX01.DBF 輸入數據文件: 文件號=00001 名稱=D:\APP\FX\ORADATA\ORCL\SYSTEM01.DBF 輸入數據文件: 文件號=00003 名稱=D:\APP\FX\ORADATA\ORCL\UNDOTBS01.DBF 輸入數據文件: 文件號=00005 名稱=D:\APP\FX\ORADATA\ORCL\EXAMPLE01.DBF 輸入數據文件: 文件號=00009 名稱=D:\APP\FX\ORADATA\ORCL\USERS06.DBF 輸入數據文件: 文件號=00008 名稱=D:\APP\FX\ORADATA\ORCL\USERS04.DBF 輸入數據文件: 文件號=00010 名稱=D:\APP\FX\ORADATA\ORCL\TEST1.DBF 輸入數據文件: 文件號=00011 名稱=D:\APP\FX\ORADATA\ORCL\TEST2.DBF 輸入數據文件: 文件號=00012 名稱=D:\APP\FX\ORADATA\ORCL\TEST3.DBF 輸入數據文件: 文件號=00013 名稱=D:\APP\FX\ORADATA\ORCL\TEST4.DBF 輸入數據文件: 文件號=00004 名稱=D:\APP\FX\ORADATA\ORCL\USERS01.DBF 輸入數據文件: 文件號=00007 名稱=D:\APP\FX\ORADATA\ORCL\USERS02.DBF 輸入數據文件: 文件號=00014 名稱=D:\APP\FX\ORADATA\ORCL\READONLY.DBF 通道 ORA_DISK_1: 正在啟動段 1 於 21-9月 -15 通道 ORA_DISK_1: 已完成段 1 於 21-9月 -15 段句柄=D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NNNDF_TAG20150921T121354_BZZ106LK_.BKP 標記=TAG2015 0921T121354 注釋=NONE 通道 ORA_DISK_1: 備份集已完成, 經過時間:00:01:35 通道 ORA_DISK_1: 正在啟動全部數據文件備份集 通道 ORA_DISK_1: 正在指定備份集內的數據文件 備份集內包括當前控制文件 備份集內包括當前的 SPFILE 通道 ORA_DISK_1: 正在啟動段 1 於 21-9月 -15 通道 ORA_DISK_1: 已完成段 1 於 21-9月 -15 段句柄=D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NCSNF_TAG20150921T121354_BZZ136TV_.BKP 標記=TAG2015 0921T121354 注釋=NONE 通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:01 完成 backup 於 21-9月 -15
備份完成
二、刪除某個數據文件,數據庫無法打開
SQL> startup; ORACLE 例程已經啟動。 Total System Global Area 535662592 bytes Fixed Size 1375792 bytes Variable Size 327156176 bytes Database Buffers 201326592 bytes Redo Buffers 5804032 bytes 數據庫裝載完畢。 ORA-01157: 無法標識/鎖定數據文件 13 - 請參閱 DBWR 跟蹤文件 ORA-01110: 數據文件 13: 'D:\APP\FX\ORADATA\ORCL\TEST4.DBF' SQL> select status from v$instance; STATUS ------------ MOUNTED
三、通過Rman,根據備份恢復數據庫
備份列表中最新的備份為全庫備份,所以只需執行restore database。
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 已連接到目標數據庫: ORCL (DBID=1362531435, 未打開) RMAN> restore database; 啟動 restore 於 21-9月 -15 使用目標數據庫控制文件替代恢復目錄 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=10 設備類型=DISK 正在略過數據文件 14; 已還原到文件 D:\APP\FX\ORADATA\ORCL\READONLY.DBF 正在略過數據文件 1; 已還原到文件 D:\APP\FX\ORADATA\ORCL\SYSTEM01.DBF 正在略過數據文件 2; 已還原到文件 D:\APP\FX\ORADATA\ORCL\SYSAUX01.DBF 正在略過數據文件 3; 已還原到文件 D:\APP\FX\ORADATA\ORCL\UNDOTBS01.DBF 正在略過數據文件 4; 已還原到文件 D:\APP\FX\ORADATA\ORCL\USERS01.DBF 正在略過數據文件 5; 已還原到文件 D:\APP\FX\ORADATA\ORCL\EXAMPLE01.DBF 正在略過數據文件 6; 已還原到文件 D:\APP\FX\ORADATA\ORCL\UNDOTBS02.DBF 正在略過數據文件 7; 已還原到文件 D:\APP\FX\ORADATA\ORCL\USERS02.DBF 正在略過數據文件 8; 已還原到文件 D:\APP\FX\ORADATA\ORCL\USERS04.DBF 正在略過數據文件 9; 已還原到文件 D:\APP\FX\ORADATA\ORCL\USERS06.DBF 正在略過數據文件 10; 已還原到文件 D:\APP\FX\ORADATA\ORCL\TEST1.DBF 正在略過數據文件 11; 已還原到文件 D:\APP\FX\ORADATA\ORCL\TEST2.DBF 正在略過數據文件 12; 已還原到文件 D:\APP\FX\ORADATA\ORCL\TEST3.DBF 通道 ORA_DISK_1: 正在開始還原數據文件備份集 通道 ORA_DISK_1: 正在指定從備份集還原的數據文件 通道 ORA_DISK_1: 將數據文件 00013 還原到 D:\APP\FX\ORADATA\ORCL\TEST4.DBF 通道 ORA_DISK_1: 正在讀取備份片段 D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NNNDF_TAG20150921T121354 _BZZ106LK_.BKP 通道 ORA_DISK_1: 段句柄 = D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NNNDF_TAG20150921T121354_BZZ106L K_.BKP 標記 = TAG20150921T121354 通道 ORA_DISK_1: 已還原備份片段 1 通道 ORA_DISK_1: 還原完成, 用時: 00:00:07 完成 restore 於 21-9月 -15 RMAN> alter database open; 數據庫已打開
四:創建表textdel,關閉數據庫
SQL> create table testdel as select * from v$instance where rownum<2; 表已創建。 SQL> shutdown immediate; 數據庫已經關閉。 已經卸載數據庫。 ORACLE 例程已經關閉。
五:使用Rman進行增量備份
RMAN> backup incremental level 1 database; 啟動 backup 於 21-9月 -15 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=10 設備類型=DISK 通道 ORA_DISK_1: 正在啟動增量級別 1 數據文件備份集 通道 ORA_DISK_1: 正在指定備份集內的數據文件 輸入數據文件: 文件號=00006 名稱=D:\APP\FX\ORADATA\ORCL\UNDOTBS02.DBF 輸入數據文件: 文件號=00002 名稱=D:\APP\FX\ORADATA\ORCL\SYSAUX01.DBF 輸入數據文件: 文件號=00001 名稱=D:\APP\FX\ORADATA\ORCL\SYSTEM01.DBF 輸入數據文件: 文件號=00003 名稱=D:\APP\FX\ORADATA\ORCL\UNDOTBS01.DBF 輸入數據文件: 文件號=00005 名稱=D:\APP\FX\ORADATA\ORCL\EXAMPLE01.DBF 輸入數據文件: 文件號=00009 名稱=D:\APP\FX\ORADATA\ORCL\USERS06.DBF 輸入數據文件: 文件號=00008 名稱=D:\APP\FX\ORADATA\ORCL\USERS04.DBF 輸入數據文件: 文件號=00010 名稱=D:\APP\FX\ORADATA\ORCL\TEST1.DBF 輸入數據文件: 文件號=00011 名稱=D:\APP\FX\ORADATA\ORCL\TEST2.DBF 輸入數據文件: 文件號=00012 名稱=D:\APP\FX\ORADATA\ORCL\TEST3.DBF 輸入數據文件: 文件號=00013 名稱=D:\APP\FX\ORADATA\ORCL\TEST4.DBF 輸入數據文件: 文件號=00004 名稱=D:\APP\FX\ORADATA\ORCL\USERS01.DBF 輸入數據文件: 文件號=00007 名稱=D:\APP\FX\ORADATA\ORCL\USERS02.DBF 輸入數據文件: 文件號=00014 名稱=D:\APP\FX\ORADATA\ORCL\READONLY.DBF 略過數據文件 00014, 因為它未更改 通道 ORA_DISK_1: 正在啟動段 1 於 21-9月 -15 通道 ORA_DISK_1: 已完成段 1 於 21-9月 -15 段句柄=D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NNND1_TAG20150921T123914_BZZ2HQWB_.BKP 標記=TAG20 0921T123914 注釋=NONE 通道 ORA_DISK_1: 備份集已完成, 經過時間:00:01:15 通道 ORA_DISK_1: 正在啟動增量級別 1 數據文件備份集 通道 ORA_DISK_1: 正在指定備份集內的數據文件 備份集內包括當前控制文件 備份集內包括當前的 SPFILE 通道 ORA_DISK_1: 正在啟動段 1 於 21-9月 -15 通道 ORA_DISK_1: 已完成段 1 於 21-9月 -15 段句柄=D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NCSN1_TAG20150921T123914_BZZ2L46T_.BKP 標記=TAG20 0921T123914 注釋=NONE 通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:01 完成 backup 於 21-9月 -15
六、刪除某個數據文件,對數據庫進行恢復,由於存在增量備份,所以在restore database之后,還要進行recover database;
RMAN> backup incremental level 1 database; 啟動 backup 於 21-9月 -15 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=10 設備類型=DISK 通道 ORA_DISK_1: 正在啟動增量級別 1 數據文件備份集 通道 ORA_DISK_1: 正在指定備份集內的數據文件 輸入數據文件: 文件號=00006 名稱=D:\APP\FX\ORADATA\ORCL\UNDOTBS02.DBF 輸入數據文件: 文件號=00002 名稱=D:\APP\FX\ORADATA\ORCL\SYSAUX01.DBF 輸入數據文件: 文件號=00001 名稱=D:\APP\FX\ORADATA\ORCL\SYSTEM01.DBF 輸入數據文件: 文件號=00003 名稱=D:\APP\FX\ORADATA\ORCL\UNDOTBS01.DBF 輸入數據文件: 文件號=00005 名稱=D:\APP\FX\ORADATA\ORCL\EXAMPLE01.DBF 輸入數據文件: 文件號=00009 名稱=D:\APP\FX\ORADATA\ORCL\USERS06.DBF 輸入數據文件: 文件號=00008 名稱=D:\APP\FX\ORADATA\ORCL\USERS04.DBF 輸入數據文件: 文件號=00010 名稱=D:\APP\FX\ORADATA\ORCL\TEST1.DBF 輸入數據文件: 文件號=00011 名稱=D:\APP\FX\ORADATA\ORCL\TEST2.DBF 輸入數據文件: 文件號=00012 名稱=D:\APP\FX\ORADATA\ORCL\TEST3.DBF 輸入數據文件: 文件號=00013 名稱=D:\APP\FX\ORADATA\ORCL\TEST4.DBF 輸入數據文件: 文件號=00004 名稱=D:\APP\FX\ORADATA\ORCL\USERS01.DBF 輸入數據文件: 文件號=00007 名稱=D:\APP\FX\ORADATA\ORCL\USERS02.DBF 輸入數據文件: 文件號=00014 名稱=D:\APP\FX\ORADATA\ORCL\READONLY.DBF 略過數據文件 00014, 因為它未更改 通道 ORA_DISK_1: 正在啟動段 1 於 21-9月 -15 通道 ORA_DISK_1: 已完成段 1 於 21-9月 -15 段句柄=D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NNND1_TAG20150921T123914_BZZ2HQWB_.BKP 標記=TAG20 0921T123914 注釋=NONE 通道 ORA_DISK_1: 備份集已完成, 經過時間:00:01:15 通道 ORA_DISK_1: 正在啟動增量級別 1 數據文件備份集 通道 ORA_DISK_1: 正在指定備份集內的數據文件 備份集內包括當前控制文件 備份集內包括當前的 SPFILE 通道 ORA_DISK_1: 正在啟動段 1 於 21-9月 -15 通道 ORA_DISK_1: 已完成段 1 於 21-9月 -15 段句柄=D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NCSN1_TAG20150921T123914_BZZ2L46T_.BKP 標記=TAG20 0921T123914 注釋=NONE 通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:01 完成 backup 於 21-9月 -15
RMAN> recover database; 啟動 recover 於 21-9月 -15 使用通道 ORA_DISK_1 數據文件14未被處理, 因為文件已脫機 通道 ORA_DISK_1: 正在開始還原增量數據文件備份集 通道 ORA_DISK_1: 正在指定從備份集還原的數據文件 數據文件 00001 的還原目標: D:\APP\FX\ORADATA\ORCL\SYSTEM01.DBF 數據文件 00002 的還原目標: D:\APP\FX\ORADATA\ORCL\SYSAUX01.DBF 數據文件 00003 的還原目標: D:\APP\FX\ORADATA\ORCL\UNDOTBS01.DBF 數據文件 00004 的還原目標: D:\APP\FX\ORADATA\ORCL\USERS01.DBF 數據文件 00005 的還原目標: D:\APP\FX\ORADATA\ORCL\EXAMPLE01.DBF 數據文件 00006 的還原目標: D:\APP\FX\ORADATA\ORCL\UNDOTBS02.DBF 數據文件 00007 的還原目標: D:\APP\FX\ORADATA\ORCL\USERS02.DBF 數據文件 00008 的還原目標: D:\APP\FX\ORADATA\ORCL\USERS04.DBF 數據文件 00009 的還原目標: D:\APP\FX\ORADATA\ORCL\USERS06.DBF 數據文件 00010 的還原目標: D:\APP\FX\ORADATA\ORCL\TEST1.DBF 數據文件 00011 的還原目標: D:\APP\FX\ORADATA\ORCL\TEST2.DBF 數據文件 00012 的還原目標: D:\APP\FX\ORADATA\ORCL\TEST3.DBF 數據文件 00013 的還原目標: D:\APP\FX\ORADATA\ORCL\TEST4.DBF 通道 ORA_DISK_1: 正在讀取備份片段 D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NNND1_TAG20150921T123914 _BZZ2HQWB_.BKP 通道 ORA_DISK_1: 段句柄 = D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NNND1_TAG20150921T123914_BZZ2HQW B_.BKP 標記 = TAG20150921T123914 通道 ORA_DISK_1: 已還原備份片段 1 通道 ORA_DISK_1: 還原完成, 用時: 00:00:07 正在開始介質的恢復 介質恢復完成, 用時: 00:00:01 完成 recover 於 21-9月 -15
由於此種恢復方式為不完全恢復,不完全恢復后,原來的online redo log里面包含的是未做恢復前的數據,而這些數據對於恢復后的數據庫不再有效,所以數據庫會要求在Open之前先對online redo log的sequence置零。因此需要:
RMAN> alter database open resetlogs; 數據庫已打開
至此,非歸檔模式下,數據庫全庫備份下的數據庫恢復及增量備份下的數據庫恢復操作結束。
_____________________________________________________________________________________________________________________
