(1) 在09:50:00创建表test1,test;
(2) 后面在9:54:45进行了drop test1的操作导致表test1被删除;
(3) 在9:56:20又再次进行drop test的操作导致表test被删除
要求:(1)第一步要求恢复到表test1被删除那个时刻9:54:45之后的状态
(2)第二步要求恢复表test被删除那个时刻9:56:20之后的状态
SQL> desc test;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
OWNER VARCHAR2(30)
OBJECT_NAME VARCHAR2(128)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
NAMESPACE NUMBER
EDITION_NAME VARCHAR2(30)
SQL> desc test1;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
OWNER VARCHAR2(30)
OBJECT_NAME VARCHAR2(128)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
NAMESPACE NUMBER
EDITION_NAME VARCHAR2(30)
SQL> select count(1) from test1;
COUNT(1)
----------
69382
SQL> select count(1) from test;
COUNT(1)
----------
277524
RMAN> backup database;
启动 backup 于 2013-08-02 09:53:41
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00001 名称=D:\APP\ADMINISTRATOR\ORADATA\MYTEST\SYSTEM01.DBF
输入数据文件: 文件号=00003 名称=D:\APP\ADMINISTRATOR\ORADATA\MYTEST\UNDOTBS01.DB
F
输入数据文件: 文件号=00002 名称=D:\APP\ADMINISTRATOR\ORADATA\MYTEST\SYSAUX01.DBF
输入数据文件: 文件号=00005 名称=D:\APP\ADMINISTRATOR\ORADATA\MYTEST.DBF
输入数据文件: 文件号=00004 名称=D:\APP\ADMINISTRATOR\ORADATA\MYTEST\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 2013-08-02 09:53:42
通道 ORA_DISK_1: 已完成段 1 于 2013-08-02 09:54:17
段句柄=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\MYTEST\BACKUPSET\2013_08_02\O1_M
F_NNNDF_TAG20130802T095341_8ZP496PX_.BKP 标记=TAG20130802T095341 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:35
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
备份集内包括当前控制文件
备份集内包括当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 2013-08-02 09:54:18
通道 ORA_DISK_1: 已完成段 1 于 2013-08-02 09:54:20
段句柄=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\MYTEST\BACKUPSET\2013_08_02\O1_M
F_NCSNF_TAG20130802T095341_8ZP4BBS1_.BKP 标记=TAG20130802T095341 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
完成 backup 于 2013-08-02 09:54:20
SQL> drop table test1;
表已删除。
SQL> alter system switch logfile;
系统已更改。
SQL> desc test1;
ERROR:
ORA-04043: 对象 test1 不存在
SQL> desc test;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
OWNER VARCHAR2(30)
OBJECT_NAME VARCHAR2(128)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
NAMESPACE NUMBER
EDITION_NAME VARCHAR2(30)
SQL> drop table test;
表已删除。
SQL> alter system switch logfile;
系统已更改。
SQL> desc test;
ERROR:
ORA-04043: 对象 test 不存在
RMAN> shutdown immediate;
数据库已关闭
数据库已卸装
Oracle 实例已关闭
RMAN>
RMAN>
RMAN> startup mount;
已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载
系统全局区域总计 6714322944 字节
Fixed Size 2188448 字节
Variable Size 3523218272 字节
Database Buffers 3170893824 字节
Redo Buffers 18022400 字节
RMAN> run
2> {
3> set until time '2013-08-02 09:55:50';
4> restore database;
5> recover database;
6> }
正在执行命令: SET until clause
启动 restore 于 2013-08-02 09:59:10
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=63 设备类型=DISK
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 D:\APP\ADMINISTRATOR\ORADATA\MYTEST\SYS
TEM01.DBF
通道 ORA_DISK_1: 将数据文件 00002 还原到 D:\APP\ADMINISTRATOR\ORADATA\MYTEST\SYS
AUX01.DBF
通道 ORA_DISK_1: 将数据文件 00003 还原到 D:\APP\ADMINISTRATOR\ORADATA\MYTEST\UND
OTBS01.DBF
通道 ORA_DISK_1: 将数据文件 00004 还原到 D:\APP\ADMINISTRATOR\ORADATA\MYTEST\USE
RS01.DBF
通道 ORA_DISK_1: 将数据文件 00005 还原到 D:\APP\ADMINISTRATOR\ORADATA\MYTEST.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\MYTES
T\BACKUPSET\2013_08_02\O1_MF_NNNDF_TAG20130802T095341_8ZP496PX_.BKP
通道 ORA_DISK_1: 段句柄 = D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\MYTEST\BACKUP
SET\2013_08_02\O1_MF_NNNDF_TAG20130802T095341_8ZP496PX_.BKP 标记 = TAG20130802T0
95341
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:46
完成 restore 于 2013-08-02 09:59:57
启动 recover 于 2013-08-02 09:59:57
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:02
完成 recover 于 2013-08-02 10:00:01
RMAN> list incarnation;
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 1 MYTEST 2520448845 PARENT 1 2013-07-20 21:59:41
2 2 MYTEST 2520448845 PARENT 2027406 2013-08-01 18:33:34
3 3 MYTEST 2520448845 ORPHAN 2045831 2013-08-01 22:13:44
4 4 MYTEST 2520448845 CURRENT 2046502 2013-08-01 22:39:10
RMAN> alter database open resetlogs;
数据库已打开
RMAN> list incarnation;
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 1 MYTEST 2520448845 PARENT 1 2013-07-20 21:59:41
2 2 MYTEST 2520448845 PARENT 2027406 2013-08-01 18:33:34
3 3 MYTEST 2520448845 ORPHAN 2045831 2013-08-01 22:13:44
4 4 MYTEST 2520448845 PARENT 2046502 2013-08-01 22:39:10
5 5 MYTEST 2520448845 CURRENT 2070517 2013-08-02 10:01:00
C:\Users\Administrator>sqlplus "/as sysdba"
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 8月 2 10:01:23 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
SQL> desc test;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
OWNER VARCHAR2(30)
OBJECT_NAME VARCHAR2(128)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
NAMESPACE NUMBER
EDITION_NAME VARCHAR2(30)
SQL> desc test1;
ERROR:
ORA-04043: 对象 test1 不存在
发现test表还在,大事test1的表确实删除的状态!!
RMAN> shutdown immediate;
数据库已关闭
数据库已卸装
Oracle 实例已关闭
RMAN> startup mount;
已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载
系统全局区域总计 6714322944 字节
Fixed Size 2188448 字节
Variable Size 3523218272 字节
Database Buffers 3170893824 字节
Redo Buffers 18022400 字节
RMAN> run
2> {
3> set until time '2013-08-02 09:58:50';
4> restore database;
5> recover database;
6> }
正在执行命令: SET until clause
启动 restore 于 2013-08-02 10:03:04
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 08/02/2013 10:03:04 上) 失败
RMAN-20207: UNTIL TIME or RECOVERY WINDOW is before RESETLOGS time
RMAN> list incarnation;
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 1 MYTEST 2520448845 PARENT 1 2013-07-20 21:59:41
2 2 MYTEST 2520448845 PARENT 2027406 2013-08-01 18:33:34
3 3 MYTEST 2520448845 ORPHAN 2045831 2013-08-01 22:13:44
4 4 MYTEST 2520448845 PARENT 2046502 2013-08-01 22:39:10
5 5 MYTEST 2520448845 CURRENT 2070517 2013-08-02 10:01:00
因为之前已经执行过不完全恢复,所以这个时候设置的时间点2013-08-02 09:58:50已经比当前的2013-08-02 10:01:00早,Oracle默认会认为当前时间前的已经是无效的,故会提示失败
RMAN> reset database to incarnation 4;
将数据库重置为原型 4
--恢复到删除表test当时的状态
RMAN> run
2> {
3> set until time '2013-08-02 09:58:50';
4> restore database;
5> recover database;
6> }
正在执行命令: SET until clause
启动 restore 于 2013-08-02 10:04:32
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=63 设备类型=DISK
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 D:\APP\ADMINISTRATOR\ORADATA\MYTEST\SYS
TEM01.DBF
通道 ORA_DISK_1: 将数据文件 00002 还原到 D:\APP\ADMINISTRATOR\ORADATA\MYTEST\SYS
AUX01.DBF
通道 ORA_DISK_1: 将数据文件 00003 还原到 D:\APP\ADMINISTRATOR\ORADATA\MYTEST\UND
OTBS01.DBF
通道 ORA_DISK_1: 将数据文件 00004 还原到 D:\APP\ADMINISTRATOR\ORADATA\MYTEST\USE
RS01.DBF
通道 ORA_DISK_1: 将数据文件 00005 还原到 D:\APP\ADMINISTRATOR\ORADATA\MYTEST.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\MYTES
T\BACKUPSET\2013_08_02\O1_MF_NNNDF_TAG20130802T095341_8ZP496PX_.BKP
通道 ORA_DISK_1: 段句柄 = D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\MYTEST\BACKUP
SET\2013_08_02\O1_MF_NNNDF_TAG20130802T095341_8ZP496PX_.BKP 标记 = TAG20130802T0
95341
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:45
完成 restore 于 2013-08-02 10:05:18
启动 recover 于 2013-08-02 10:05:19
使用通道 ORA_DISK_1
正在开始介质的恢复
线程 1 序列 2 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\MYTE
ST\ARCHIVELOG\2013_08_02\O1_MF_1_2_8ZP4C2DB_.ARC 存在于磁盘上
线程 1 序列 3 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\MYTE
ST\ARCHIVELOG\2013_08_02\O1_MF_1_3_8ZP4G29C_.ARC 存在于磁盘上
线程 1 序列 4 的归档日志已作为文件 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\MYTE
ST\ARCHIVELOG\2013_08_02\O1_MF_1_4_8ZP4PWC4_.ARC 存在于磁盘上
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_0
8_02\O1_MF_1_2_8ZP4C2DB_.ARC 线程=1 序列=2
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_0
8_02\O1_MF_1_3_8ZP4G29C_.ARC 线程=1 序列=3
归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_0
8_02\O1_MF_1_4_8ZP4PWC4_.ARC 线程=1 序列=4
介质恢复完成, 用时: 00:00:03
完成 recover 于 2013-08-02 10:05:24
RMAN>
RMAN> list incarnation;
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 1 MYTEST 2520448845 PARENT 1 2013-07-20 21:59:41
2 2 MYTEST 2520448845 PARENT 2027406 2013-08-01 18:33:34
3 3 MYTEST 2520448845 ORPHAN 2045831 2013-08-01 22:13:44
4 4 MYTEST 2520448845 CURRENT 2046502 2013-08-01 22:39:10
5 5 MYTEST 2520448845 ORPHAN 2070517 2013-08-02 10:01:00
RMAN> alter database open resetlogs;
数据库已打开
RMAN> list incarnation;
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 1 MYTEST 2520448845 PARENT 1 2013-07-20 21:59:41
2 2 MYTEST 2520448845 PARENT 2027406 2013-08-01 18:33:34
3 3 MYTEST 2520448845 ORPHAN 2045831 2013-08-01 22:13:44
4 4 MYTEST 2520448845 PARENT 2046502 2013-08-01 22:39:10
5 5 MYTEST 2520448845 ORPHAN 2070517 2013-08-02 10:01:00
6 6 MYTEST 2520448845 CURRENT 2070778 2013-08-02 10:05:45
RMAN>
C:\Users\Administrator>sqlplus "/as sysdba"
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 8月 2 10:06:18 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
SQL> desc test;
ERROR:
ORA-04043: 对象 test 不存在
SQL> desc test1;
ERROR:
ORA-04043: 对象 test1 不存在
此时已经恢复到删除表test的状态,因为之前表test1早就已经删除掉了,所以test和test1都不存在!!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25269462/viewspace-767691/ ,如需转载,请注明出处,否则将追究法律责任。