当对一张表进行误操作,比如删除了数据、drop表,或者truncate表,我们可以通过使用闪回表、闪回drop,或者TSPITR可以进行恢复,但在以下场景下,上面的恢复技术将会束手无策:
- 表逻辑损坏或使用了purge选项的删除;
- UNDO不可用时,便不可使用闪回技术对表进行恢复;
- 对表误操作后,执行了DDL操作;
- 使用TSPITR,将会恢复表空间里的所有对象,不利于只恢复某些表的场景。
从Oracle 12c版本开始,Oracle引入了可以从RMAN备份中进行表和表分区的恢复,这样可大大简化了对表和表分区的恢复,本篇将对这一新特性进行演示。
1 备份数据库
[oracle@odd ~]$ rman target /
Recovery Manager: Release 12.1.0.2.0 - Production on Sun May 3 16:15:03 2020
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=1567069190)
RMAN> backup database;
------------------------------------------------备份过程省略----------------------------------------------
2 创建测试数据
SQL> create table alen(id number,name varchar