1.create testing table and insert record.
SQL> select * from t;
ID
----------
1
2
2.Use oracle's tool RMAN full backup
C:\>rman target
sys/hunter0@hunter catalog
rman/hunter0@yxyupRMAN> run{
2> allocate channel d1 type disk;
3> backup full tag 'dbfull' format 'd:\dbfull_%U.bak' database;
4> sql 'alter system archive log current';
5> release channel d1;}
分配的通道: d1
通道 d1: sid=16 devtype=DISK
启动 backup 于 12-6月 -06
通道 d1: 正在启动 full 数据文件备份集
通道 d1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=D:\ORACLE\ORADATA\HUNTER\SYSTEM01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\ORADATA\HUNTER\UNDOTBS01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\ORADATA\HUNTER\EXAMPLE01.DBF
输入数据文件 fno=00011 name=D:\ORACLE\ORADATA\HUNTER\RMAN_TS.DBF
输入数据文件 fno=00012 name=D:\ORACLE\ORADATA\HUNTER\HUNTER01.DBF
输入数据文件 fno=00010 name=D:\ORACLE\ORADATA\HUNTER\XDB01.DBF
输入数据文件 fno=00006 name=D:\ORACLE\ORADATA\HUNTER\INDX01.DBF
输入数据文件 fno=00009 name=D:\ORACLE\ORADATA\HUNTER\USERS01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\ORADATA\HUNTER\CWMLITE01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\ORADATA\HUNTER\DRSYS01.DBF
输入数据文件 fno=00007 name=D:\ORACLE\ORADATA\HUNTER\ODM01.DBF
输入数据文件 fno=00008 name=D:\ORACLE\ORADATA\HUNTER\TOOLS01.DBF
通道 d1: 正在启动段 1 于 12-6月 -06
通道 d1: 已完成段 1 于 12-6月 -06
段 handle=D:\DBFULL_08HLEV8V_1_1.BAK comment=NONE
通道 d1: 备份集已完成, 经过时间:00:00:46
完成 backup 于 12-6月 -06
sql 语句: alter system archive log current
释放的通道: d1
3.obtain current SCN and drop the testing table
16:32:48 SQL> select max(ktuxescnw*power(2,32)+ktuxescnb) scn from x$ktuxe;
SCN
----------
861769
已用时间: 00: 00: 00.00
SQL> drop table t;
表已丢弃。
SQL> commit;
提交完成。
SQL> drop table t;
drop table t
*
ERROR 位于第 1 行:
ORA-00942: 表或视图不存在
4.shutdown & startup mount
16:34:53 SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
16:35:17 SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 126950220 bytes
Fixed Size 453452 bytes
Variable Size 109051904 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
16:36:10 SQL>
5.restore&recover database to SCN 861769,and use resetlog mode of open database
RMAN> run {
2> allocate channel d1 type disk;
3> restore database;
4> recover database until scn 861769;
5> sql 'alter database open resetlogs';
6> release channel d1;}
分配的通道: d1
通道 d1: sid=14 devtype=DISK
启动 restore 于 12-6月 -06
通道 d1: 正在开始恢复数据文件备份集
通道 d1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORACLE\ORADATA\HUNTER\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\ORADATA\HUNTER\UNDOTBS01.DBF
正将数据文件00003恢复到D:\ORACLE\ORADATA\HUNTER\CWMLITE01.DBF
正将数据文件00004恢复到D:\ORACLE\ORADATA\HUNTER\DRSYS01.DBF
正将数据文件00005恢复到D:\ORACLE\ORADATA\HUNTER\EXAMPLE01.DBF
正将数据文件00006恢复到D:\ORACLE\ORADATA\HUNTER\INDX01.DBF
正将数据文件00007恢复到D:\ORACLE\ORADATA\HUNTER\ODM01.DBF
正将数据文件00008恢复到D:\ORACLE\ORADATA\HUNTER\TOOLS01.DBF
正将数据文件00009恢复到D:\ORACLE\ORADATA\HUNTER\USERS01.DBF
正将数据文件00010恢复到D:\ORACLE\ORADATA\HUNTER\XDB01.DBF
正将数据文件00011恢复到D:\ORACLE\ORADATA\HUNTER\RMAN_TS.DBF
正将数据文件00012恢复到D:\ORACLE\ORADATA\HUNTER\HUNTER01.DBF
通道 d1: 已恢复备份段 1
段 handle=D:\DBFULL_08HLEV8V_1_1.BAK tag=DBFULL params=NULL
通道 d1: 恢复完成
完成 restore 于 12-6月 -06
启动 recover 于 12-6月 -06
正在开始介质的恢复
存档日志线程 1 序列 1 已作为文件 D:\ORACLE\ORADATA\ARCHIVELOG\ARC00001.001 存在于磁盘上
存档日志线程 1 序列 2 已作为文件 D:\ORACLE\ORADATA\ARCHIVELOG\ARC00002.001 存在于磁盘上
存档日志线程 1 序列 3 已作为文件 D:\ORACLE\ORADATA\ARCHIVELOG\ARC00003.001 存在于磁盘上
存档日志线程 1 序列 4 已作为文件 D:\ORACLE\ORADATA\ARCHIVELOG\ARC00004.001 存在于磁盘上
存档日志文件名 =D:\ORACLE\ORADATA\ARCHIVELOG\ARC00001.001 线程 =1 序列 =1
存档日志文件名 =D:\ORACLE\ORADATA\ARCHIVELOG\ARC00002.001 线程 =1 序列 =2
完成介质的恢复
完成 recover 于 12-6月 -06
sql 语句: alter database open resetlogs
释放的通道: d1
RMAN>
6.check data exist is not ?
SQL> select * from t;
ID
----------
1
2
SQL>