非归档模式下重做日志覆盖后的rman恢复
非歸檔模式下重做日志覆蓋后的rman恢復
實驗原理:在非歸檔模式下,數據庫的重做日志不會寫入歸檔日志中,對數據庫的恢復只能依靠3個聯機重做日志。當第一個重做日志滿了,就切換第二個重做日志中,以此類推,3個文件循環使用。我們在添加表信息之后備份數據庫。假設目前正在使用的是1號重做日志,那么切換3次日志之后重做日志已經重新切換到1號。此后開始覆蓋以前的重做日志。這時我們刪除添加的表,再刪除所有數據文件,然后再恢復,發現新添加的表還存在。實驗說明:如果在數據庫備份之后的重做日志內容已經被覆蓋,那么當數據文件出現介質失敗時,只能恢復到過去的完全備份點。
1.確保歸檔模式為非歸檔。
SQL> archive log list;
數據庫日志模式非存檔模式
自動存檔啟用
存檔終點 ? ? ? ? ? c:\oracle\orcl\arch
最早的聯機日志序列 ? ? 5
當前日志序列 ? ? ? ? ? 7
如若已修改為歸檔模式,需要修改過來。
SQL> alter databasenoarchivelog;
數據庫已更改。
2.首先通過向test用戶下創建新的表。
SQL> create table tbl_test as select *from testtable; ?
SQL> select * from tbl_test;
? DEPTNO DNAME ? ? ? ? ?LOC
---------- -------------- -------------
? ? ? 90 tec ? ? ? ? ? ?guangzhou
? ? ? 70 tec ? ? ? ? ? ?beijing
? ? ? 10 ACCOUNTING ? ? NEW YORK
? ? ? 20 RESEARCH ? ? ? DALLAS
? ? ? 30 SALES ? ? ? ? ?CHICAGO
? ? ? 40 OPERATIONS ? ? BOSTON
? ? ? 60 tec ? ? ? ? ? ?jinan
? ? ? 80 Development ? ?xianggang
已選擇8行。
3.使用rman備份數據庫。
RMAN> backup databaseformat "c:\oradata\rmanbak\ora%T_%t.bak" filesperset 5;
啟動 backup 于28-5月 -13
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
使用通道 ORA_DISK_3
使用通道 ORA_DISK_4
通道 ORA_DISK_1: 正在啟動全部數據文件備份集
通道 ORA_DISK_1: 正在指定備份集內的數據文件
輸入數據文件: 文件號=00001名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
通道 ORA_DISK_1: 正在啟動段1 于 28-5月 -13
通道 ORA_DISK_2: 正在啟動全部數據文件備份集
通道 ORA_DISK_2: 正在指定備份集內的數據文件
輸入數據文件: 文件號=00002名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
輸入數據文件: 文件號=00003名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
輸入數據文件: 文件號=00004名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_2: 正在啟動段1 于 28-5月 -13
通道 ORA_DISK_3: 正在啟動全部數據文件備份集
通道 ORA_DISK_3: 正在指定備份集內的數據文件
輸入數據文件: 文件號=00006名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM02.DBF
輸入數據文件: 文件號=00008名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS02.DBF
輸入數據文件: 文件號=00010名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE02.DBF
通道 ORA_DISK_3: 正在啟動段1 于 28-5月 -13
通道 ORA_DISK_4: 正在啟動全部數據文件備份集
通道 ORA_DISK_4: 正在指定備份集內的數據文件
輸入數據文件: 文件號=00007名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX02.DBF
輸入數據文件: 文件號=00009名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS02.DBF
輸入數據文件: 文件號=00005名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF
通道 ORA_DISK_4: 正在啟動段1 于 28-5月 -13
RMAN-03009: backup 命令 (ORA_DISK_2 通道上,在 05/28/2013 18:50:23 上) 失敗
ORA-19504: 無法創建文件"C:\ORADATA\RMANBAK\ORA20130528_816634186.BAK"
ORA-27038: 所創建的文件已存在
OSD-04010: 指定了 <create> 選項, 但文件已經存在
通道 ORA_DISK_2 已禁用,將在另一個通道上運行該通道上失敗的作業
通道 ORA_DISK_3: 已完成段1 于 28-5月 -13
段句柄=C:\ORADATA\RMANBAK\ORA20130528_816634202.BAK標記=TAG20130528T184945 注釋
=NONE
通道 ORA_DISK_3: 備份集已完成, 經過時間:00:00:11
通道 ORA_DISK_3: 正在啟動全部數據文件備份集
通道 ORA_DISK_3: 正在指定備份集內的數據文件
輸入數據文件: 文件號=00002名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
輸入數據文件: 文件號=00003名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
輸入數據文件: 文件號=00004名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_3: 正在啟動段1 于 28-5月 -13
通道 ORA_DISK_4: 已完成段1 于 28-5月 -13
段句柄=C:\ORADATA\RMANBAK\ORA20130528_816634212.BAK標記=TAG20130528T184945 注釋
=NONE
通道 ORA_DISK_4: 備份集已完成, 經過時間:00:00:15
通道 ORA_DISK_1: 已完成段1 于 28-5月 -13
段句柄=C:\ORADATA\RMANBAK\ORA20130528_816634186.BAK標記=TAG20130528T184945 注釋
=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:56
通道 ORA_DISK_3: 已完成段1 于 28-5月 -13
段句柄=C:\ORADATA\RMANBAK\ORA20130528_816634223.BAK標記=TAG20130528T184945 注釋
=NONE
通道 ORA_DISK_3: 備份集已完成, 經過時間:00:00:35
完成 backup 于28-5月 -13
啟動 Control File and SPFILE Autobackup 于 28-5月-13
段handle=C:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2013_05_28\O1
_MF_S_816634122_8T930ZVN_.BKPcomment=NONE
完成 Control File and SPFILE Autobackup 于 28-5月-13
4.進行3次日志切換。
SQL> alter system switchlogfile;
系統已更改。
SQL> alter system switchlogfile;
系統已更改。
SQL> alter system switchlogfile;
系統已更改。
5.刪除表信息。
SQL> truncate table tbl_test;
表被截斷。
6.刪除所有數據文件之后恢復數據庫。
RMAN> startup mount;
Oracle 實例已啟動
數據庫已裝載
系統全局區域總計 ? ?778387456 字節
Fixed Size ? ? ? ? ? ? ? ? ? ? 1374808 字節
Variable Size ? ? ? ? ? ? ? ?260048296 字節
Database Buffers ? ? ? ? ? ? 511705088 字節
Redo Buffers ? ? ? ? ? ? ? ? ? 5259264 字節
RMAN> restore database;
啟動 restore 于28-5月 -13
使用目標數據庫控制文件替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=18 設備類型=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: SID=19 設備類型=DISK
分配的通道: ORA_DISK_3
通道 ORA_DISK_3: SID=21 設備類型=DISK
分配的通道: ORA_DISK_4
通道 ORA_DISK_4: SID=22 設備類型=DISK
通道 ORA_DISK_1: 正在開始還原數據文件備份集
通道 ORA_DISK_1: 正在指定從備份集還原的數據文件
通道 ORA_DISK_1: 將數據文件00006 還原到C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTE
M02.DBF
通道 ORA_DISK_1: 將數據文件00008 還原到C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOT
BS02.DBF
通道 ORA_DISK_1: 將數據文件00010 還原到C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMP
LE02.DBF
通道 ORA_DISK_1: 正在讀取備份片段 C:\ORADATA\RMANBAK\ORA20130528_816634202.BAK
通道 ORA_DISK_2: 正在開始還原數據文件備份集
通道 ORA_DISK_2: 正在指定從備份集還原的數據文件
通道 ORA_DISK_2: 將數據文件00005 還原到 C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMP
LE01.DBF
通道 ORA_DISK_2: 將數據文件00007 還原到C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAU
X02.DBF
通道 ORA_DISK_2: 將數據文件00009 還原到C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS
02.DBF
通道 ORA_DISK_2: 正在讀取備份片段 C:\ORADATA\RMANBAK\ORA20130528_816634212.BAK
通道ORA_DISK_3: 正在開始還原數據文件備份集
通道 ORA_DISK_3: 正在指定從備份集還原的數據文件
通道 ORA_DISK_3: 將數據文件00001 還原到C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTE
M01.DBF
通道 ORA_DISK_3: 正在讀取備份片段 C:\ORADATA\RMANBAK\ORA20130528_816634186.BAK
通道 ORA_DISK_4: 正在開始還原數據文件備份集
通道 ORA_DISK_4: 正在指定從備份集還原的數據文件
通道 ORA_DISK_4: 將數據文件00002 還原到C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAU
X01.DBF
通道 ORA_DISK_4: 將數據文件00003 還原到C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOT
BS01.DBF
通道 ORA_DISK_4: 將數據文件00004 還原到C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS
01.DBF
通道ORA_DISK_4: 正在讀取備份片段 C:\ORADATA\RMANBAK\ORA20130528_816634223.BAK
通道 ORA_DISK_1: 段句柄= C:\ORADATA\RMANBAK\ORA20130528_816634202.BAK 標記= TA
G20130528T184945
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 還原完成,用時: 00:01:21
通道 ORA_DISK_2: 段句柄= C:\ORADATA\RMANBAK\ORA20130528_816634212.BAK 標記= TA
G20130528T184945
通道 ORA_DISK_2: 已還原備份片段 1
通道 ORA_DISK_2: 還原完成,用時: 00:01:39
通道 ORA_DISK_3: 段句柄= C:\ORADATA\RMANBAK\ORA20130528_816634186.BAK 標記= TA
G20130528T184945
通道 ORA_DISK_3: 已還原備份片段 1
通道 ORA_DISK_3: 還原完成,用時: 00:01:54
通道 ORA_DISK_4: 段句柄= C:\ORADATA\RMANBAK\ORA20130528_816634223.BAK 標記= TA
G20130528T184945
通道 ORA_DISK_4: 已還原備份片段 1
通道 ORA_DISK_4: 還原完成,用時: 00:02:01
完成 restore 于28-5月 -13
RMAN> recover database;
啟動 recover 于28-5月 -13
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
使用通道 ORA_DISK_3
使用通道 ORA_DISK_4
正在開始介質的恢復
線程 1 序列8 的歸檔日志已作為文件C:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG
存在于磁盤上
線程 1 序列9 的歸檔日志已作為文件C:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG
存在于磁盤上
線程 1 序列10 的歸檔日志已作為文件C:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG
存在于磁盤上
RMAN-08187: 警告: 完成到SCN 2477744 的介質恢復
完成 recover 于 28-5月-13
7.以resetlogs啟動數據庫。
SQL> alter databaseopen resetlog;
SQL> conn test/szc12345
已連接。
SQL> select * from tbl_test;
? DEPTNO DNAME ? ? ? ? ?LOC
---------- ---------------------------
? ? ? ?90 tec ? ? ? ? ? ?guangzhou
? ? ? ?70 tec ? ? ? ? ? ?beijing
? ? ? ?10 ACCOUNTING ? ? NEW YORK
? ? ? ?20 RESEARCH ? ? ? DALLAS
? ? ? ?30 SALES ? ? ? ? ?CHICAGO
? ? ? ?40 OPERATIONS ? ? BOSTON
? ? ? ?60 tec ? ? ? ? ? ?jinan
? ? ? ?80 Development ? ?xianggang
已選擇8行。
有上述結果可發現:非歸檔模式下,3次切換日志之后,刪除的表依然存在,說明重做日志被覆蓋之后,數據只能恢復到最近的一次完全備份。
轉載于:https://blog.51cto.com/greetwin/1212424
總結
以上是生活随笔為你收集整理的非归档模式下重做日志覆盖后的rman恢复的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spread for WinRT 7新功
- 下一篇: MVC新手教程三:Entity Fram