非归档模式下重做日志覆盖后的rman恢复
非歸檔模式下重做日志覆蓋后的rman恢復(fù)
實(shí)驗(yàn)原理:在非歸檔模式下,數(shù)據(jù)庫的重做日志不會寫入歸檔日志中,對數(shù)據(jù)庫的恢復(fù)只能依靠3個聯(lián)機(jī)重做日志。當(dāng)?shù)谝粋€重做日志滿了,就切換第二個重做日志中,以此類推,3個文件循環(huán)使用。我們在添加表信息之后備份數(shù)據(jù)庫。假設(shè)目前正在使用的是1號重做日志,那么切換3次日志之后重做日志已經(jīng)重新切換到1號。此后開始覆蓋以前的重做日志。這時我們刪除添加的表,再刪除所有數(shù)據(jù)文件,然后再恢復(fù),發(fā)現(xiàn)新添加的表還存在。實(shí)驗(yàn)說明:如果在數(shù)據(jù)庫備份之后的重做日志內(nèi)容已經(jīng)被覆蓋,那么當(dāng)數(shù)據(jù)文件出現(xiàn)介質(zhì)失敗時,只能恢復(fù)到過去的完全備份點(diǎn)。
1.確保歸檔模式為非歸檔。
SQL> archive log list;
數(shù)據(jù)庫日志模式非存檔模式
自動存檔啟用
存檔終點(diǎn) ? ? ? ? ? c:\oracle\orcl\arch
最早的聯(lián)機(jī)日志序列 ? ? 5
當(dāng)前日志序列 ? ? ? ? ? 7
如若已修改為歸檔模式,需要修改過來。
SQL> alter databasenoarchivelog;
數(shù)據(jù)庫已更改。
2.首先通過向test用戶下創(chuàng)建新的表。
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備份數(shù)據(jù)庫。
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: 正在啟動全部數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定備份集內(nèi)的數(shù)據(jù)文件
輸入數(shù)據(jù)文件: 文件號=00001名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
通道 ORA_DISK_1: 正在啟動段1 于 28-5月 -13
通道 ORA_DISK_2: 正在啟動全部數(shù)據(jù)文件備份集
通道 ORA_DISK_2: 正在指定備份集內(nèi)的數(shù)據(jù)文件
輸入數(shù)據(jù)文件: 文件號=00002名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
輸入數(shù)據(jù)文件: 文件號=00003名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
輸入數(shù)據(jù)文件: 文件號=00004名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_2: 正在啟動段1 于 28-5月 -13
通道 ORA_DISK_3: 正在啟動全部數(shù)據(jù)文件備份集
通道 ORA_DISK_3: 正在指定備份集內(nèi)的數(shù)據(jù)文件
輸入數(shù)據(jù)文件: 文件號=00006名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM02.DBF
輸入數(shù)據(jù)文件: 文件號=00008名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS02.DBF
輸入數(shù)據(jù)文件: 文件號=00010名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE02.DBF
通道 ORA_DISK_3: 正在啟動段1 于 28-5月 -13
通道 ORA_DISK_4: 正在啟動全部數(shù)據(jù)文件備份集
通道 ORA_DISK_4: 正在指定備份集內(nèi)的數(shù)據(jù)文件
輸入數(shù)據(jù)文件: 文件號=00007名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX02.DBF
輸入數(shù)據(jù)文件: 文件號=00009名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS02.DBF
輸入數(shù)據(jù)文件: 文件號=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: 無法創(chuàng)建文件"C:\ORADATA\RMANBAK\ORA20130528_816634186.BAK"
ORA-27038: 所創(chuàng)建的文件已存在
OSD-04010: 指定了 <create> 選項(xiàng), 但文件已經(jīng)存在
通道 ORA_DISK_2 已禁用,將在另一個通道上運(yùn)行該通道上失敗的作業(yè)
通道 ORA_DISK_3: 已完成段1 于 28-5月 -13
段句柄=C:\ORADATA\RMANBAK\ORA20130528_816634202.BAK標(biāo)記=TAG20130528T184945 注釋
=NONE
通道 ORA_DISK_3: 備份集已完成, 經(jīng)過時間:00:00:11
通道 ORA_DISK_3: 正在啟動全部數(shù)據(jù)文件備份集
通道 ORA_DISK_3: 正在指定備份集內(nèi)的數(shù)據(jù)文件
輸入數(shù)據(jù)文件: 文件號=00002名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
輸入數(shù)據(jù)文件: 文件號=00003名稱=C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
輸入數(shù)據(jù)文件: 文件號=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標(biāo)記=TAG20130528T184945 注釋
=NONE
通道 ORA_DISK_4: 備份集已完成, 經(jīng)過時間:00:00:15
通道 ORA_DISK_1: 已完成段1 于 28-5月 -13
段句柄=C:\ORADATA\RMANBAK\ORA20130528_816634186.BAK標(biāo)記=TAG20130528T184945 注釋
=NONE
通道 ORA_DISK_1: 備份集已完成, 經(jīng)過時間:00:00:56
通道 ORA_DISK_3: 已完成段1 于 28-5月 -13
段句柄=C:\ORADATA\RMANBAK\ORA20130528_816634223.BAK標(biāo)記=TAG20130528T184945 注釋
=NONE
通道 ORA_DISK_3: 備份集已完成, 經(jīng)過時間: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.進(jìn)行3次日志切換。
SQL> alter system switchlogfile;
系統(tǒng)已更改。
SQL> alter system switchlogfile;
系統(tǒng)已更改。
SQL> alter system switchlogfile;
系統(tǒng)已更改。
5.刪除表信息。
SQL> truncate table tbl_test;
表被截?cái)唷?/span>
6.刪除所有數(shù)據(jù)文件之后恢復(fù)數(shù)據(jù)庫。
RMAN> startup mount;
Oracle 實(shí)例已啟動
數(shù)據(jù)庫已裝載
系統(tǒng)全局區(qū)域總計(jì) ? ?778387456 字節(jié)
Fixed Size ? ? ? ? ? ? ? ? ? ? 1374808 字節(jié)
Variable Size ? ? ? ? ? ? ? ?260048296 字節(jié)
Database Buffers ? ? ? ? ? ? 511705088 字節(jié)
Redo Buffers ? ? ? ? ? ? ? ? ? 5259264 字節(jié)
RMAN> restore database;
啟動 restore 于28-5月 -13
使用目標(biāo)數(shù)據(jù)庫控制文件替代恢復(fù)目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=18 設(shè)備類型=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: SID=19 設(shè)備類型=DISK
分配的通道: ORA_DISK_3
通道 ORA_DISK_3: SID=21 設(shè)備類型=DISK
分配的通道: ORA_DISK_4
通道 ORA_DISK_4: SID=22 設(shè)備類型=DISK
通道 ORA_DISK_1: 正在開始還原數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定從備份集還原的數(shù)據(jù)文件
通道 ORA_DISK_1: 將數(shù)據(jù)文件00006 還原到C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTE
M02.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件00008 還原到C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOT
BS02.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件00010 還原到C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMP
LE02.DBF
通道 ORA_DISK_1: 正在讀取備份片段 C:\ORADATA\RMANBAK\ORA20130528_816634202.BAK
通道 ORA_DISK_2: 正在開始還原數(shù)據(jù)文件備份集
通道 ORA_DISK_2: 正在指定從備份集還原的數(shù)據(jù)文件
通道 ORA_DISK_2: 將數(shù)據(jù)文件00005 還原到 C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMP
LE01.DBF
通道 ORA_DISK_2: 將數(shù)據(jù)文件00007 還原到C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAU
X02.DBF
通道 ORA_DISK_2: 將數(shù)據(jù)文件00009 還原到C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS
02.DBF
通道 ORA_DISK_2: 正在讀取備份片段 C:\ORADATA\RMANBAK\ORA20130528_816634212.BAK
通道ORA_DISK_3: 正在開始還原數(shù)據(jù)文件備份集
通道 ORA_DISK_3: 正在指定從備份集還原的數(shù)據(jù)文件
通道 ORA_DISK_3: 將數(shù)據(jù)文件00001 還原到C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTE
M01.DBF
通道 ORA_DISK_3: 正在讀取備份片段 C:\ORADATA\RMANBAK\ORA20130528_816634186.BAK
通道 ORA_DISK_4: 正在開始還原數(shù)據(jù)文件備份集
通道 ORA_DISK_4: 正在指定從備份集還原的數(shù)據(jù)文件
通道 ORA_DISK_4: 將數(shù)據(jù)文件00002 還原到C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAU
X01.DBF
通道 ORA_DISK_4: 將數(shù)據(jù)文件00003 還原到C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOT
BS01.DBF
通道 ORA_DISK_4: 將數(shù)據(jù)文件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 標(biāo)記= TA
G20130528T184945
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 還原完成,用時: 00:01:21
通道 ORA_DISK_2: 段句柄= C:\ORADATA\RMANBAK\ORA20130528_816634212.BAK 標(biāo)記= TA
G20130528T184945
通道 ORA_DISK_2: 已還原備份片段 1
通道 ORA_DISK_2: 還原完成,用時: 00:01:39
通道 ORA_DISK_3: 段句柄= C:\ORADATA\RMANBAK\ORA20130528_816634186.BAK 標(biāo)記= TA
G20130528T184945
通道 ORA_DISK_3: 已還原備份片段 1
通道 ORA_DISK_3: 還原完成,用時: 00:01:54
通道 ORA_DISK_4: 段句柄= C:\ORADATA\RMANBAK\ORA20130528_816634223.BAK 標(biāo)記= 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
正在開始介質(zhì)的恢復(fù)
線程 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 的介質(zhì)恢復(fù)
完成 recover 于 28-5月-13
7.以resetlogs啟動數(shù)據(jù)庫。
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行。
有上述結(jié)果可發(fā)現(xiàn):非歸檔模式下,3次切換日志之后,刪除的表依然存在,說明重做日志被覆蓋之后,數(shù)據(jù)只能恢復(fù)到最近的一次完全備份。
轉(zhuǎn)載于:https://blog.51cto.com/greetwin/1212424
總結(jié)
以上是生活随笔為你收集整理的非归档模式下重做日志覆盖后的rman恢复的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spread for WinRT 7新功
- 下一篇: java基础-类加载学习笔记